OSDN Git Service

* bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-30  Richard Henderson  <rth@cygnus.com>
2
3         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
4
5 2000-05-30  Bruce Korb  <bkorb@gnu.org>
6
7         * fixinc/tests/*:  Added expected result files for fixinc's make check
8         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
9
10 2000-05-30  Richard Henderson  <rth@cygnus.com>
11
12         * config/alpha/alpha.md (*setne_internal): Use match_operator
13         instead of working down from insn.
14
15 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16
17         * invoke.texi (-Wtraditional): Update WRT function macros.
18
19 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
20
21         * except.c (free_exception_table): Do not free NULL.
22
23 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
24
25         * cpplib.c (do_if): Don't save and restore only_seen_white here.
26         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
27         and skipping here.
28
29 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
30
31         * flow.c (mark_used_reg): If a register is unconditionally live, 
32         remove any conditional death information.
33
34 2000-05-29  Richard Henderson  <rth@cygnus.com>
35
36         * final.c (current_output_insn): New.
37         (final_scan_insn): Set it.
38         * output.h: Declare it.
39
40 2000-05-29  Richard Henderson  <rth@cygnus.com>
41
42         * stor-layout.c (finalize_record_size): Fix typo.
43
44         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
45         if nlabel is null.
46
47 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
48
49         * cpplib.h (cpp_reader): Remove if_stack.  Change
50         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
51         * cpphash.h (struct ihash): Change control_macro to a
52         cpp_hashnode * and shorten name to cmacro.
53         Add NEVER_REINCLUDE constant.
54
55         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
56         Examine the cmacro node directly, no need to call cpp_defined.
57         (_cpp_execute_include, read_include_file): Set cmacro to
58         NEVER_REINCLUDE, not U"".
59         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
60         (cpp_get_token): If pfile->skipping is true, discard text and
61         keep scanning until we hit a directive; don't expand macros.
62
63         * cpplib.c (struct if_stack): Remove if_succeeded, add
64         was_skipping. Change control_macro to a cpp_hashnode * and
65         shorten name to cmacro.  Remove typedef IF_STACK.
66         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
67         (conditional_skip, skip_if_group,
68         consider_directive_while_skipping): Delete.
69         (push_conditional): New.
70         (_cpp_handle_directive): Don't process directives other than
71         conditionals if we are skipping.
72
73         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
74         Update to new scheme.
75         (validate_else): Skip rest of line here, unconditionally.
76         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
77         pfile->skipping off.
78
79         (all): Remove `scare quotes' from error messages.
80
81 2000-05-29  Richard Henderson  <rth@cygnus.com>
82
83         * function.c (emit_return_into_block): New line_note arg; emit it.
84         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
85         for the close brace to accompany HAVE_return.  Move all line notes
86         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
87
88 2000-05-29  Richard Henderson  <rth@cygnus.com>
89
90         * longlong.h [__alpha] (count_leading_zeros): New.
91         (count_trailing_zeros): New.
92         (COUNT_LEADING_ZEROS_0): New.
93
94         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
95         (alpha_split_conditional_move): New.
96         * config/alpha/alpha-protos.h: Prototype them.
97         * config/alpha/alpha.h (PREDICATE_CODES): Update.
98         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
99         * config/alpha/alpha.md: Update ffs cix commentary.
100         (*ze_and_ne): New.
101         (*nabssf2, *nabsdf2): New.
102         (*mov[qhsd]icc_internal): Use add_operand.
103         (if_then_else constant splitters): New.
104         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
105         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
106
107 2000-05-29  Richard Henderson  <rth@cygnus.com>
108
109         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
110         a constant to NEG or NOT when conditions allow.
111
112         * combine.c (combine_simplify_rtx): Don't create an if_then_else
113         unless both args are general_operand.  Don't canonicalize plus
114         to ior unless it helps.
115
116         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
117         instead track register_life_up_to_date.  Toggle no_new_pseudos
118         around if_convert.  
119
120 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
121
122         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
123         so output_operand doesn't see them.
124
125 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
126
127         * lcm.c (make_preds_opaque): Fix comment.
128         (optimize_mode_switching): Use NORMAL_MODE instead of 
129         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
130         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
131         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
132         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
133         (MODE_USES_IN_EXIT_BLOCK): Delete.
134         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
135         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
136         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
137         (MODE_NEEDED): Don't look for USE.
138         (EPILOGUE_USES): Define.
139
140 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
141
142         * mklibgcc.in (all): Variable initialised to `libgcc'.
143
144 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
145
146         * toplev.h (skip_leading_substring): New macro.
147         * toplev.c (decode_f_option): Use skip_leading_substring instead
148         of strncmp.
149         (decode_W_option): Likewise.
150
151 2000-05-28  Nick Clifton  <nickc@cygnus.com>
152
153         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
154         modify reg_names.
155
156 2000-05-28  Richard Henderson  <rth@cygnus.com>
157
158         * regclass.c (record_operand_costs): Protect reg_changes_size
159         with CLASS_CANNOT_CHANGE_SIZE.
160
161         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
162
163 2000-05-28  Richard Henderson  <rth@cygnus.com>
164
165         * function.c (diddle_return_value): A pcc-style struct return
166         returns a pointer.
167
168 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
169
170         * cppfiles.c: Read files in, using mmap if possible, then
171         prescan them separately.
172         (read_file, read_with_read): New functions.
173         * cpplex.c: Don't define UCHAR_MAX.
174         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
175         the file here.
176
177         * cppinit.c (handle_option): Automatically define __cplusplus,
178         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
179         the respective -lang switch.
180
181         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
182         prototype): Move to...
183         * cpplib.h: ... here.  Rename struct hashnode to struct
184         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
185         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
186
187 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
188
189         * config/rs6000/rs6000.md (movsi): Constify 'name'.
190
191         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
192         (class_can_change_size): New variable.
193         (reg_changes_size): New variable.
194         (init_reg_sets_1): Initialise class_can_change_size.
195         (record_operand_costs): Remove subreg_changes_size.
196         Don't pass it around.  Instead update reg_changes_size.
197         (regclass): Initialise and free reg_changes_size.  If a register
198         changes size, don't preference it to a class that contains
199         registers that can't change size.
200         (record_reg_classes): Don't look at subreg_changes_size.
201
202 2000-05-27  Richard Henderson  <rth@cygnus.com>
203
204         * print-rtl.c (reg_names): Remove const.
205         * regclass.c (reg_names): Likewise.
206         * regs.h (reg_names): Likewise.
207         * hard-reg-set.h (reg_names): Likewise.
208
209 2000-05-27  Richard Henderson  <rth@cygnus.com>
210
211         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
212
213 2000-05-27  Richard Henderson  <rth@cygnus.com>
214
215         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
216         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
217         (alpha_expand_prologue): Emit prologue_mcount if needed.
218         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
219         * config/alpha/alpha.md (prologue_mcount): New.
220         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
221         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
222         * config/alpha/netbsd.h: Likewise.
223
224 2000-05-27  Richard Henderson  <rth@cygnus.com>
225
226         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
227         change to config/elfos.h.
228
229 2000-05-27  Richard Henderson  <rth@cygnus.com>
230
231         * Makefile.in (resource.o): Depend on except.h.
232         * except.h (output_exception_table_data): Prototype.
233         * genconfig.c (gen_peephole2): Prototype.
234         * genemit.c (main): Include ggc.h.
235         * genoutput.c: Revert parts of last change: include errors.h
236         (main): Set progname.
237         * recog.c: Include hard-reg-set.h before recog.h.
238         * resource.c: Include except.h.
239
240         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
241         with RTX_CODE.
242         (alpha_write_linkage): Protect with BUFSIZ.
243         (alpha_need_linkage): Update prototype.
244         * config/alpha/alpha.c (function_arg): Move VMS code here.
245         (alpha_links_base): Remove.
246         (alpha_links): New.
247         (mark_alpha_links_node, mark_alpha_links): New.
248         (alpha_write_one_linkage): New.
249         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
250         (alpha_write_linkage): Use splay_tree_foreach.
251         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
252         to get the linkage symbol.
253         (call_value_vms): Likewise.
254         * config/alpha/elf.h (output_file_directive): Remove decl.
255         (ctors_section, dtors_section): Prototype.
256         (sbss_section, sdata_section): Prototype.
257         * config/alpha/vms.h (FUNCTION_ARG): Remove.
258         (readonly_section, link_section, literals_section): Prototype.
259         (ctors_section, dtors_section): Prototype.
260         (vms_valid_decl_attribute_p): Remove decl.
261         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
262
263 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
264
265         * reload.c (get_secondary_mem): Don't widen floating-point modes.
266
267         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
268         substituting the REG in a (subreg:X (reg:Y ...)).
269
270 2000-05-28  Neil Booth  <NeilB@earthling.net>
271
272         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
273         first token of a line BOL.  Update EOF code for this.
274         Remove illegal directive check - it appears in the (not
275         yet committed) caller.
276         * cpplib.h (BOL): New flag.
277
278 2000-05-28  Neil Booth  <NeilB@earthling.net>
279
280         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
281         (_cpp_free_toklist): No comment space to free.
282         (expand_comment_space): Remove.
283         (save_comment_space): Place the comment in the current token and
284         not in a separate comment space.
285         (_cpp_lex_line): Save comments during plain code and #define
286         directives only.
287         * cpplib.h (struct _cpp_toklist): Remove comment space.
288
289 2000-05-28  Neil Booth  <NeilB@earthling.net>
290
291         * cppexp.c (parse_assertion): Supply extra argument to
292         _cpp_init_toklist.
293         * cpplib.c (do_assert, do_unassert): Similarly.
294         * cpphash.h (_cpp_init_toklist) Update.
295         (_cpp_expand_token_space): New.
296         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
297         * cpplex.c (_cpp_init_toklist): New argument.
298         (parse_string2): New argument multiline_ok.
299         (spell_token): Take a const cpp_token *.
300         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
301         (SPELL_ macros): Replace with enum.
302         (expand_token_space): Replace with _cpp_expand_token_space.
303         Take COUNT argument.
304         (IS_DIRECTIVE): Update.
305         (_cpp_lex_line): Update token structure before parsing number.
306         Don't assume start at beginning of token list.
307         (save_comment): Use INIT_TOKEN_NAME.
308
309 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
310
311         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
312         -Wmissing-prototypes.
313         * configure: Regenerate.
314         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
315
316         * builtins.c, calls.c: Change all instances of gen_call_* or
317         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
318         * calls.c (struct_value_size_rtx): Separate definition from
319         initialization to avoid unused variable warning.
320
321         * genflags.c (gen_macro): New function.
322         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
323         (gen_nonproto): Delete.
324         (gen_insn): Put all insns on the same obstack.
325         (main): Generate prototypes for everything unconditionally.
326
327         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented 
328         out check for wchar_t.
329         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
330         * system.h: Add infrastructure for defining missing   
331         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback  
332         definitions of UCHAR_MAX and SSIZE_MAX.
333         * configure: Regenerate.
334         * config.in: Regenerate.
335
336         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
337         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
338         headers.
339         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
340         libgcc2.a, or libgcc1.null.
341
342 2000-05-27  Richard Henderson  <rth@cygnus.com>
343
344         * Makefile.in (recog.o): Don't depend on resource.h.
345         * recog.c: Don't include resource.h.
346         (recog_last_allowed_insn): Remove.
347         (recog_next_insn): Remove.
348         (struct peep2_insn_data): New.
349         (peep2_insn_data, peep2_current): New.
350         (peep2_next_insn): New.
351         (peep2_regno_dead_p, peep2_reg_dead_p): New.
352         (peep2_find_free_register): New.
353         (peephole2_optimize): Track life information by insn as we go.
354         * recog.h: Update declarations.
355         * resource.c (find_free_register, reg_dead_p): Remove.
356         * resource.h: Remove their declarations.
357         * toplev.c: Include hard-reg-set.h before recog.h.
358
359         * genconfig.c (max_insns_per_peep2): New.
360         (gen_peephole2): New.
361         (main): Call it.
362         * genemit.c (output_peephole2_scratches): Generate calls to
363         peep2_find_free_register; adjust surrounding code.
364         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
365         * genrecog.c (change_state): Don't track last_insn.
366         (write_action): Write into *_pmatch_len before accepting.
367         (write_tree): Adjust peephole2_insns and subroutines to match.
368
369         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
370
371         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
372         (hard_int_register_operand): New.
373         * config/alpha/alpha-protos.h: Declare it.
374         * config/alpha/alpha.h (PREDICATE_CODES): Update.
375         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
376         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
377
378 2000-05-27  Richard Henderson  <rth@cygnus.com>
379
380         * function.c (thread_prologue_epilogue_insns): Don't move the
381         line note at the head of the chain.  Only force a lineno note
382         before the end of block 0.
383
384 2000-05-27  Richard Henderson  <rth@cygnus.com>
385
386         * gensupport.c (collect_insn_data): Record the maximum number
387         of alternatives, not the last seen.
388
389         * genoutput.c: Don't include errors.h.
390         (struct data): Add lineno member.
391         (have_error): New.
392         (scan_operands): Use message_with_line instead of error.
393         (validate_insn_alternatives): Likewise.
394         (gen_insn): Accept and store the pattern's line number.
395         (gen_peephole, gen_expand, gen_split): Likewise.
396         (main): Don't set progname.  Pass line_no to gen_foo.
397
398 2000-05-27  Richard Henderson  <rth@cygnus.com>
399
400         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
401         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
402         * config/d30v/d30v.md (attr predicable): New.
403         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
404         (andsi3*): Unify into one pattern.
405         (iorsi3*, xorsi3*): Likewise.
406         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
407         conditional return.
408         (old cond_exec patterns): Remove.
409         (define_cond_exec): New.
410
411 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
412
413         * tree.h (TREE_CODE_LENGTH): New macro.
414         * c-common.c (c_find_base_decl): Use it.
415         * expr.c (safe_from_p): Likewise.
416         * print-tree.c (print_node): Likewise.
417         * tree.c (make_node, copy_node, get_identifier): Likewie.
418         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
419         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
420         * fold-const.c (make_range): Likewise.
421         (fold): Likewise; also use first_rtl_op.
422         * c-iterate.c (collect_iterators): Use first_rtl_op.
423         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
424         Use IS_EXPR_CODE_CLASS.
425         (preexpand_calls): Likewise.
426         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
427         and TREE_CODE_LENGTH.
428         * stmt.c (warn_if_unused_value): If no operands, no unused value.
429
430 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
431
432         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
433         than '%1(%*)'.
434         (movdi_internal64): Likewise.
435
436         * config/rs6000/rs6000.md: Correct order of operands for DImode
437         boolean patterns.
438
439         * config/rs6000/rs6000.c (boolean_or_operator): New function.
440         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
441         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
442         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
443         boolean_operator for the boolean patterns without NOTs.
444
445         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
446         from reg_or_u_cint_operand.  Change comment and behaviour.
447         (logical_operand): Clean up, add assertion.
448         (non_logical_cint_operand): Also check for
449         reg_or_logical_cint_operand.
450         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
451         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
452         in the expander.
453         (xorsi3): Likewise.
454         (iordi3): Likewise.
455         (xordi3): Likewise.
456
457 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
458
459         * tree.h (struct record_layout_info): Rename to (struct
460         record_layout_info_s).
461         * stor-layout.c (start_record_layout): Replace
462         `record_layout_info' with `record_layout_info_s'.
463
464 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
465
466         * flow.c (find_label_refs): New function.
467         (find_basic_blocks_1): Call it for each alternative of a call 
468         placeholder.
469
470 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
471
472         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
473         of get_pc.
474
475 2000-05-25  Richard Henderson  <rth@cygnus.com>
476
477         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
478         so strict about DImode.
479         (alpha_swapped_comparison_operator): Likewise.
480         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
481         any integer output mode.
482         (*setcc_internal): Likewise.
483         (*setcc_swapped_internal): Likewise.
484         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
485         (*mov[qhs]icc_internal): New.
486         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
487
488 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
489
490         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
491
492 2000-05-25  Richard Henderson  <rth@cygnus.com>
493
494         * bb-reorder.c (reorder_block_def): Reorder elements for size.
495         Remove add_jump; add next; replace flags with visited.
496         (rbd_init): Remove.
497         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
498         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
499         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
500         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
501         (RBI): New.
502         (reorder_index, reorder_last_visited): Remove.
503         (skip_insns_after_block): Rewrite to use a switch.
504         (get_common_dest): Remove.
505         (chain_reorder_blocks): Remove.
506         (record_effective_endpoints): Split out from reorder_basic_blocks.
507         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
508         (make_reorder_chain_1): Renamed from old make_reorder_chain.
509         Only construct the reorder chain, do not move insns.  Try harder
510         to tail recurse.
511         (label_for_bb, emit_jump_to_block_after): New.
512         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
513         and adjust the jump insns appropriately.  Fixup basic_block_info.
514         (verify_insn_chain): Always define.
515         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
516         in allocation size.
517         (make_new_scope): Don't write zeros to calloc'd space.
518         (build_scope_forest): Rely on xrealloc to DTRT.
519         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
520         profile_arc_flag.  Streamline EH test.
521
522         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
523         * basic-block.h: Declare them.
524
525 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
526
527         * emit-rtl.c (reset_used_decls): New function.
528         (unshare_all_rtl_again): Call it.
529
530 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
531
532         * cpplex.c (maybe_macroexpand): Warn about function-like
533         macros used in non-function context, if -Wtraditional.
534
535 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
536
537         * recog.c (peephole2_optimize): Use INSN_P.
538
539 2000-05-25  Richard Henderson  <rth@cygnus.com>
540
541         * ifcvt.c (seq_contains_jump): New.
542         (noce_try_store_flag_constants): Use it to fail conversion.
543         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
544
545 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
546
547         * except.h (can_throw): Declare it.
548         * except.c (can_throw): Give it external linkage.
549         * resource.c (find_dead_or_set_registers): Use can_throw.
550         
551 2000-05-25  Richard Henderson  <rth@cygnus.com>
552
553         * flow.c (mark_set_1): Don't record conditionally dead memory.
554
555 2000-05-25  Jan Hubicka  <jh@suse.cz>
556
557         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
558         and pc_set at the place of simplejump_p and condjump_p.
559         * cse.c (record_jump_equiv): Likewise.
560         * emit-rtl.c (emit): Likewise.
561         * explow.c (find_next_ref): Likewise.
562         * flow.c (tidy_fallthru_edge): Likewise.
563         (init_propagate_block_info): Likewise.
564         * gcse.c (delete_null_pointer_checks): Likewise.
565         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
566         dead_or_predicable): Likewise.
567         * integrate.c (copy_insn_list): Likewise.
568         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
569         for_each_insn_in_loop, check_dbra_loop, get_condition,
570         insert_bct, load_mems): Likewise.
571         * resource.c (find_dead_or_set_registers): Likewise.
572         * sibcalls.c (simplejump_p): Likewise.
573         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
574
575 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
576
577         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
578         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
579         when unaligned.
580         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
581         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
582         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
583         * rs6000.md: Name various internal patterns.
584
585 2000-05-25  Jan Hubicka  <jh@suse.cz>
586
587         * jump.c (invert_exp_1): Remove first argument, use pc_set
588         to get the expression.
589         (redirect_exp): Make static; redirect only the pc_set expression,
590         remove first argument.
591         (invert_exp): Remove first argument, make static.
592         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
593         any_onlyjump at most places where we originaly did condjump_p
594         and simplejump_p.
595         (jump_back_p, follow_jumps, thread_jumps): Likewise.
596         (delete_barrier_succesors): Use pc_set.
597         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
598         calls of invert_exp and redirect_exp.
599         * rtl.h (redirect_exp, invert_exp): Remove.
600         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
601
602 2000-05-25  Richard Henderson  <rth@cygnus.com>
603
604         * stmt.c (expand_end_bindings): Fix thinko last change.
605
606 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
607             Andrew Haley  <aph@cygnus.com>
608
609         * except.c  (func_eh_entry): Add emitted field.
610         (new_eh_region_entry): Set emitted field to 0;
611         (output_exception_table_entry): Only emit previously un-emitted data,
612         and send it to the eh_data section.
613         (output_exception_table): Break out common parts. Output
614         exception table for entire compilation unit to eh_data section.
615         (output_exception_table_data): Common parts of output_exception_table.
616         Send output to eh_data section.
617         (output_function_exception_table): Output exception table data for
618         a single function to eh_data section.
619         (free_exception_table): New external to free the table.
620         * except.h (free_exception_table): Add prototype.
621         (output_function_exception_table): Add prototype.
622         * final.c (final_end_function): Output function exception table
623         for IA64_UNWIND_INFO.
624         (final_scan_insn): Emit any unwind directives for an insn.
625
626         * frame-dwarf2.c: New file containing all DWARF 2 specific code
627         from frame.c.
628         * frame.c: Remove all DWARF 2 specific code.
629         * config/ia64/frame-ia64.c: New file.
630         (gthread_stuff): Make all gthread available with 
631         IA64_UNWIND_INFO.
632         (dwarf_fde): Define an IA64 struct for dwarf_fde.
633         (__register_frame_info, __register_frame): Move to common area of file.
634         (__register_frame_info_table, __register_frame_table): Move to common i
635         area.
636         (__deregister_frame_info, __deregister_frame): Move to common area.
637         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
638         (read_uleb128): New version for ia64.
639         (get_unwind_record): Read the next IA-64 unwind record.
640         (read_R_record): Read a region header record.
641         (process_a_b_reg_code): X record helper.
642         (read_X_record): Read an X format record.
643         (read_B_record): Read a B format record.
644         (P3_record_types): List of record types matching the P3 format.
645         (P7_record_types): List of record types matching the P7 format.
646         (P8_record_types): List of record types matching the P8 format.
647         (read_P_record): Read a P format record.
648         (init_ia64_reg_loc): Set default fields for a register.
649         (init_ia64_unwind_frame): Set defaults for all register records.
650         (execute_one_ia64_descriptor): Execute one descriptor record.
651         (rse_address_add): Calculate the position of a local reg in memory.
652         (normalize_reg_loc): Turn a location descriptor into a memory address.
653         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls 
654         within a specified PC offset range.
655         (get_real_reg_value): Given a register location, retrieve its value.
656         (set_real_reg_value): Change the value of a register location.
657         (copy_reg_value): Copy reg values, if needed.
658         (copy_saved_reg_state): Copy all registers that need to be copied.
659         (process_state_between): Normalize all frame register records that
660         fall within the specified PC range.
661         (frame_translate): Take a processed frame description, and turn 
662         everything into addresses.
663         (build_ia64_frame_state ): Find and create frame state record for a PC.
664         (get_personality): Get the personality routine for a given frame.
665         (get_except_table): Get the exception table for a given frame.
666         (record_name): Unwind record names for debugging.
667         (print_record): Print and unwind record.
668         (print_all_records): Print an entire unwind image.
669         (__ia64_backtrace): Print a backtrace.
670         (ia64_backtrace_helper): New function.
671         (__register_frame_info_aux): New function.
672         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
673
674         * frame.h (enum unw_record_type): New unwind record types.
675         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
676         (struct unw_r_record, unwind_record): New unwind record structs.
677         (struct unwind_info_ptr): Unwind information layout.
678         (IA64_UNW_LOC_TYPE_*): Macros for different types for location 
679         descriptors.
680         (struct ia64_reg_loc): Register location description.
681         (struct ia64_frame_state): Location of all registers in a frame.
682         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
683         * libgcc2.c (__ia64_personality_v1): Personality routine.
684         (__calc_caller_bsp): Calculate the bsp register for the caller's
685         frame.
686         (ia64_throw_helper): Figure out who to return to and set up the 
687         registers.
688         (__throw): Throw routine.
689
690         * output.h (assemble_eh_align, assemble_eh_label): New functions
691         to generate EH info where we want it.   
692         (assemble_eh_integer): New function.
693         * toplev.c (compile_file): Output module level exception table for
694         non-ia64 targets.
695         (main): Set exceptions_via_longjump and flag_new_exceptions based 
696         on IA64_UNWIND_INFO too.
697
698         * varasm.c (assemble_eh_label): Generate a label via
699         ASM_OUTPUT_EH_LABEL if it has been specified.
700         (assemble_eh_align): Generate an alignment directive via 
701         ASM_OUTPUT_EH_ALIGN if it has been specified.
702         (assemble_eh_label): Generate an integer value via
703         ASM_OUTPUT_EH_type if they have been specified.
704         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
705         (ia64_init_builtins): Add __builtin_ia64_bsp
706         and __builtin_ia64_flushrs.     
707         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
708         IA64_BUILTIN_FLUSHRS.
709         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
710         IA64_BUILTIN_FLUSHRS.
711
712         * config/ia64/ia64.md (flushrs): New insn to flush the register
713         stack.  Add to unspec list.
714
715         * config/ia64/crtbegin.asm (frame_object): Change size.
716         (__do_frame_setup_aux): New function.
717         * config/ia64/crtend.asm: call __do_frame_setup_aux.
718         * config/ia64/t-ia64 (LIB2ADDEH): Add.
719         * Makefile.in (LIB2ADDEH): Add.
720         (LIB2ADD): Use LIB2ADDEH.
721         
722 2000-05-24  Richard Henderson  <rth@cygnus.com>
723
724         * recog.c (offsettable_address_p): If mode size is zero, assume
725         BIGGEST_ALIGNMENT.
726
727 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
728
729         * configure.in: Check for -Wno-long-long option support and improve
730         handling of warning CFLAGS for stages 1 and 2.
731         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
732         * configure: Regenerate.
733
734 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
735
736         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
737         * contrib.texi: New file.
738
739 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
740
741         * loop.c (basic_induction_var): Avoid double recording of an increment.
742
743 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
744
745         * Back out this patch:
746         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
747           * loop.h (struct induction): Add multi_insn_incr.
748           * loop.c (basic_induction_var): New multi_insn_incr argument.
749           Set it if we search back through previous insns for the biv.
750           (record_biv): New multi_insn_incr argument; fill in struct induction.
751           (strength_reduce): Discard an iv with multiple bivs, any of
752           which require multiple insns to increment.
753
754         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
755
756 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
757
758         * rtl.h (loc_mentioned_in_p): Declare.
759         * reload.c (loc_mentioned_in_p): Moved from here...
760         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
761         Fix loop increment for 'E' handling.
762         * loop.c (strength_reduce): When doing biv->giv conversion,
763         take multi-insn biv increments into account.
764
765 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
766
767         * stmt.c (expand_end_bindings): Look through NOTEs to find a
768         BARRIER.
769
770 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
771
772         * calls.c (expand_call): Handle cleanups in tail-recursion
773         arguments analagously to cleanups in sibling calls.
774
775 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
776
777         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
778         All callers changed.
779
780 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
781
782         * expr.c (expand_assignment, store_expr, expand_expr,
783         expand_expr_unaligned): Set in_check_memory_usage while emitting
784         chkr_check_addr libcall.
785
786 2000-05-24  Nick Clifton  <nickc@cygnus.com>
787
788         * fold-const.c (extract_muldiv): When constructing a
789         multiplier/divisor, do not expect const_binop to correctly
790         determine if overflow has occured, so check explicitly.
791
792 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
793
794         * c-decl.c (build_enumerator): Don't modify the value's type,
795         convert it.
796
797 2000-05-24  Andreas Jaeger  <aj@suse.de>
798
799         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
800
801 2000-05-24  Eric Christopher <echristo@cygnus.com>
802
803         * configure.in: Redefine inhibit_libc conditions.
804         * libgcc2.c: Remove inhibit_libc conditional define.
805         * configure: Regenerate.
806
807 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
808
809         * configure.in:  For --enable-languages=LIST, check for empty LIST.
810         * configure:  Regenerate.
811
812 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
813
814         * pdp11.h (STACK_BOUNDARY): Define.
815
816 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
817
818         * ifcvt.c (if_convert): Update life info globally.
819
820 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
821
822         * emit-rtl.c (unshare_all_decls): New function.
823         (unshare_all_rtl): Call it.
824
825 2000-05-23  Nick Clifton  <nickc@cygnus.com>
826
827         * configure.in: Treat 'strongarm' as if it were 'arm' when
828         determining cpu type.
829
830         * configure: Regenerate.
831
832         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
833         where constant strings are involved.
834
835         * config/arm/arm.h (arm_condition_codes): Change type to 'const
836         char *'.
837
838         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
839         cases where constant strings are involved.
840
841 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
842
843         * config/sh/sh.c (gen_far_branch, split_branches): Update
844         to reflect new prototypes for redirect_jump and invert_jump.
845         (sh_insn_length_adjustment): Get rid of const warnings.
846
847 2000-05-23  Kazu Hirata  <kazu@hxi.com>
848
849         * invoke.texi (Options for Debugging Your Program or GCC): Update
850         the names of dump files.
851
852 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
853
854         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
855         * configure: Regenerated.
856
857 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
858
859         * simplify-rtx.c (SIGN_EXTEND): New macro.
860         (simplify_unary_operation, simplify_binary_operation, 
861         simplify_relational_operation): Use SIGN_EXTEND.  Make low
862         halves of (low, high) pairs unsigned if they weren't already.       
863         (simplify_ternary_operation): Cast INTVAL to unsigned before
864         comparing to a MODE_BITSIZE.
865
866 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
867
868         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
869         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
870         
871         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
872         gcc_AC_NEED_DECLARATIONS.
873
874         * dwarfout.c: Don't prototype time().
875
876         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
877
878         * system.h: Likewise.
879
880         * toplev.c: Likewise.
881
882 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
883
884         * c-decl.c (pushdecl): Invert sense of test for non-global types.
885
886 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
887
888         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
889
890 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
891
892         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
893
894 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
895
896         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
897         (alpha_start_function): Never write ..ng label if VMS or NT.
898         (alpha_align_insns): Remove GP_IN_USE arg.
899         Alignment now unsigned.
900         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
901         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
902         and two define_insn's.
903
904 2000-05-22  Richard Henderson  <rth@cygnus.com>
905
906         * combine.c (simplify_comparison): Use trunc_int_for_mode.
907
908 2000-05-22  Richard Henderson  <rth@cygnus.com>
909
910         * stor-layout.c (place_field): Change rli->size to rli->offset.
911
912 2000-05-22  Richard Henderson  <rth@cygnus.com>
913
914         * function.c (thread_prologue_and_epilogue_insns): Make sure 
915         existing line number notes appear after the prologue.
916
917 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
918
919         * config/alpha/alpha.c (alpha_fnname): New static variable.
920         (print_operand, case '~'): New case.
921         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
922         (alpha_start_function): Set alpha_fnname.
923         Write "ng" label if no ldgp; don't write ldgp insn.
924         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
925         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
926
927 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
928
929         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
930         on deleted labels.
931
932 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
933
934         * varasm.c (eh_frame_section): Revert change to argument list.
935
936 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
937
938         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
939         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
940         
941         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
942         dangling "else" that causes "break" to be conditional.
943         Also remove unneeded code at start.
944
945 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
946
947         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
948         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
949         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
950
951 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
952
953         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
954         just one argument.
955
956 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
957
958         * alias.c (record_component_aliases): New function.
959         * tree.h: Clean up some declarations and comments.
960         (record_component_aliases): New declaration.
961         * tree.c (get_alias_set): If type and has alias set, use it.
962
963 2000-05-22  Richard Henderson  <rth@cygnus.com>
964
965         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
966         IF_THEN_ELSE to a setcc form.
967         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
968
969 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
970
971         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
972         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
973
974 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
975
976         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
977         not a PARALLEL.
978
979 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
980
981         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
982         * config/mn10300/mn10300.c (print_operand): Likewise.
983
984         * final.c (split_double): Right shift of negative values is not
985         portable.
986
987         * ifcvt.c (if_convert): Scan and kill dead code.
988
989         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
990
991 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
992
993         * diagnostic.c: Eliminate implicit int.
994         * except.c, gcc.c: Add static prototypes.
995         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
996         * gensupport.c (process_rtx): Use XVEC to initialize vector
997         slot of 'split'.
998
999         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static 
1000         debug_reg_names instead of static reg_names.  If not, define
1001         global reg_names.
1002         * regclass.c: Don't define global reg_names unless
1003         DEBUG_REGISTER_NAMES is defined.
1004
1005         * reload1.c (order_regs_for_reload): Remove unused variable.
1006         * varasm.c: Include output.h after defaults.h.  Define
1007         eh_frame_section as function of no args, not of unspecified args.
1008
1009         * gcc.c: Constify argbuf; arguments to store_arg,
1010         process_command, main; elements of struct command and struct
1011         switchstr; local variables in execute, process_command, main.
1012
1013 2000-05-20  Bruce Korb  <bkorb@gnu.org>
1014
1015         * fixinc/inclhack.def:  many applications of c_fix=format + tests
1016         * fixinc/check.diff:  regenerated
1017         * fixinc/fixincl.x:  regenerated
1018
1019 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1020
1021         * alias.c: Clarify some comments.
1022         (record_base_value): REGNO is unsigned.
1023         * rtl.h (record_base_value): Likewise.
1024
1025         * alias.c (aliases_everything_p): Don't special-case QImode here.
1026         * c-common.c (c_get_alias_set): Do it here.
1027         Handle BIT_FIELD_REF by getting alias info for arg.
1028         Use POINTER_TYPE_P.
1029
1030 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
1031
1032         * mklibgcc.in: Restore rule to create ${dir}.
1033
1034 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
1035
1036         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
1037         GCC_FOR_TARGET used by MULTILIBS.
1038         * mklibgcc.in: Make sure each .o file depends on the
1039         directory it will be in.
1040         Make the multilib directory depends libgcc.
1041
1042 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
1043
1044         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
1045
1046 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
1047
1048         * fold-const.c (make_range): Handle degenerated intervals.
1049         Fixes c-torture/execute/991221-1.c
1050
1051 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1052
1053         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
1054         * reload.c (find_equiv_reg): Likewise.
1055         * alias.c (init_alias_analysis): Likewise.
1056         Only call prologue_epilogue_contains on insns.
1057         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
1058         * bb-reorder.c (hard-reg-set.h): Include earlier.
1059         * haifa-sched.c (hard-reg-set.h): Likewise.
1060         * ifcvt.c (hard-reg-set.h): Likewise.
1061         * local-alloc.c (hard-reg-set.h): Likewise.
1062         * loop.c (hard-reg-set.h): Likewise.
1063         * predict.c (hard-reg-set.h): Likewise.
1064         * regrename.c (hard-reg-set.h): Likewise.
1065         * flow.c (hard-reg-set.h): Likewise.
1066         (reg_set_to_hard_reg_set): New function.
1067         * bitmap.c (regs.h, basic-block.h): No longer include.
1068         (bitmap.h): Now include.
1069         * conflict.c (hard-reg-set.h): Include.
1070         * profile.c (hard-reg-set.h): Likewise.
1071         * print-rtl.c (hard-reg-set.h): Likewise.
1072         * sbitmap.c (hard-reg-set.h): Likewise.
1073         * toplev.c (hard-reg-set.h): Likewise.
1074         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
1075         * hard-reg-set.h (reg_names): Now constant.
1076         * regs.h (reg_names): Likewise.
1077         * regclass.c (reg_names): Likewise.
1078         * loop.h (basic-block.h): No longer include.
1079         (bitmap.h): Now include.
1080         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
1081         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
1082         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
1083
1084 2000-05-19  Jan Hubicka  <jh@suse.cz>
1085             Richard Henderson  <rth@cygnus.com>
1086
1087         * basic-block.h (struct edge_def): New field "count".
1088         (struct basic_block_def): Likewise.
1089         * flow.c (entry_exit_blocks): Add count fileds.
1090         (split_edge): Keep count information up-to-date.
1091         (dump_edge_info, dump_flow_info): Dump count fields.
1092
1093         * final.c (count_instrumented_edges): Rename to edge from arc.
1094         (end_final): Update users.
1095         * profile.c: Include expr.h, basic-block.h.
1096         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
1097         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
1098         (ignore_next_note, return_label_execution_count): Kill.
1099         (bbg_file_name, da_file_name): Kill.
1100         (edge_info, bb_info): New structures.
1101         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
1102         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
1103         (total_num_edges_instrumented): Likewise.
1104         (init_arc, expand_spanning_tree): Kill.
1105         (fill_spanning_tree, tablejump_entry_p): Kill.
1106         (instrument_edges):  Rewrite from instrument_arcs to use
1107         commit_edge_insertions infrastructure.
1108         (compute_branch_probabilities): Remove arguments; rewrite for
1109         CFG infrastructure; use rtl_dump_file directly.
1110         (branch_prob, find_spanning_tree): Likewise.
1111         (union_groups, find_group): New.
1112         (init_branch_prob): Make bbg_file_name and da_file_name local.
1113         (end_branch_prob): Use rtl_dump_file directly.
1114         (init_edge_profiler): Rename to edge from arc.
1115         (output_arc_profiler): Kill.
1116         (gen_edge_profiler): New.
1117         (output_func_start_profiler): Turn off profiling.  Make the
1118         constructor static when we can.
1119         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
1120
1121         * toplev.c (DFI_flow): Remove.
1122         (DFI_cfg, DFI_life): New.
1123         (dump_file): Update accordingly.
1124         (compile_file): Call end_branch_prob if profile_arc_flag too.
1125         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
1126         profiling after the CFG is built.  Move flow1 life analysis to
1127         DFI_life.  Always estimate remaining probabilities.
1128
1129 2000-05-19  Richard Henderson  <rth@cygnus.com>
1130
1131         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
1132
1133         * flow.c (make_edges): The sibling call edge to exit is abnormal.
1134
1135 2000-05-19  Richard Henderson  <rth@cygnus.com>
1136
1137         * jump.c (redirect_jump): Add delete_unused argument.  Don't
1138         remove labels and code following when LABEL_NUSES goes to zero.
1139         (invert_jump): Likewise.
1140         (jump_optimize_1): Fix redirect/invert arguments.
1141         (do_cross_jump, thread_jumps): Likewise.
1142         * flow.c (split_edge): Likewise.
1143         * reorg.c (optimize_skip): Likewise.
1144         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
1145         * profile.c (instrument_arcs): Likewise.
1146         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
1147         * rtl.h: Update prototypes.
1148
1149 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
1150
1151         * ssa.c (convert_from_ssa): Tell life_analysis we need death 
1152         notes.
1153         (make_regs_equivalent_over_bad_edges): Only look at abnormal
1154         critical edges.
1155
1156 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
1157
1158         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
1159         past l1 when deleting whitespace and markers.              
1160
1161         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
1162         * cpplib.c (do_unassert): Put the list to compare against on
1163         the stack.
1164
1165 2000-05-19  Bruce Korb  <bkorb@gnu.org>
1166
1167         * fixinc/README:  cleaned up old documentation
1168         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
1169         * fixinc/check.tpl: compute the list of needed directories
1170         emit "#if defined(name)" because of conflict
1171         omit machine name differences from output differences
1172         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
1173         (machine_name): change test text to use `sed' markers
1174         * fixinc/fixincl.x: regen
1175
1176 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1177
1178         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
1179         a CONSTRUCTOR.
1180
1181 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
1182
1183         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
1184         it to match the current practice.
1185
1186 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
1187
1188         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
1189
1190 2000-05-18  Richard Henderson  <rth@cygnus.com>
1191
1192         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
1193         * rtl.h (insn_dependant_p): Declare it.
1194         * loop.c (strength_reduce): Use it.
1195
1196 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
1197
1198         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
1199         16-bit and 64-bit clean-up.
1200
1201 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
1202
1203         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
1204         * configure: Rebuilt.
1205
1206 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
1207
1208         * genopinit.c: Use $ for escape sequences in optab patterns.
1209         Remove backslashes from optab patterns.  Change $A, $B, $C to
1210         expand to (int) whatever instead of just whatever; remove
1211         explicit (int) from all optab patterns.
1212
1213         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
1214         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
1215         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
1216         genrecog.c: Remove private copies of xmalloc, xrealloc, and
1217         xstrdup.
1218
1219 2000-05-18  Richard Henderson  <rth@cygnus.com>
1220
1221         * jump.c (jump_optimize_1): Base minimum insn count during
1222         find_cross_jump on BRANCH_COST.
1223
1224 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
1225
1226         * print-rtl.c (print_rtx): Only print note line number as string
1227         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
1228         * final.c (final_scan_insn): Do nothing for note line number 0.
1229
1230 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
1231
1232         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
1233         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
1234         NOTE_INSN_DELETED_LABEL.
1235
1236 2000-05-18  Nick Clifton  <nickc@cygnus.com>
1237
1238         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
1239         uninitialised data in .rodata not .bss, and do not interpret an
1240         error in the initialisation value as meaning that the variable
1241         should be placed in the .bss section.
1242
1243 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
1244
1245         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
1246         not `$ac_cv_prog_cc_cc_c_o'.
1247         * configure: Regenerated.
1248
1249 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
1250             Richard Henderson  <rth@cygnus.com>
1251
1252         * c-common.h (enum c_tree_index): Add g77 type entries.
1253         (g77_integer_type_node, g77_uinteger_type_node): New.
1254         (g77_longint_type_node, g77_ulongint_type_node): New.
1255         * c-decl.c (init_decl_processing): Initialize them.
1256
1257 2000-05-18  Richard Henderson  <rth@cygnus.com>
1258
1259         * config/h8300/h8300.md (subs patterns): Use %G to negate.
1260
1261         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
1262         (small_power_of_two): Likewise; use exact_log2.
1263         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
1264         (output_adds_subs): Remove.
1265         (two_insn_adds_subs_operand): New.
1266         (split_adds_subs): New.
1267         * config/h8300/h8300-protos.h: Update.
1268         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
1269         (CONST_OK_FOR_L): Match strict adds operands.
1270         (CONST_OK_FOR_N): Match struct subs operands.
1271         * config/h8300/h8300.md (adds_subs insns): Remove.
1272         (addhi patterns): Output adds/subs directly.
1273         (addsi_h8300h): Likewise.
1274         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
1275
1276 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
1277
1278         * cppexp.c (parse_assertion): New.
1279         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
1280         (_cpp_parse_expr): Remove case '#'.  Don't set
1281         parsing_if_directive.
1282         * cpphash.c (collect_objlike_expansion,
1283         collect_funlike_expansion, collect_params,
1284         _cpp_create_definition): The list no longer has a trailing
1285         VSPACE token.
1286         * cpphash.h (enum node_type): Add T_ASSERTION.
1287         (struct hashnode): Remove aschain, add pred.
1288         (struct predicate): New.
1289         Update prototypes.
1290
1291         * cpplex.c (expand_token_space): Handle both offset and
1292         nonoffset lists.
1293         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
1294         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
1295         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
1296         _cpp_equiv_toklists): New.
1297         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
1298         stop at any single-character token, not just newline.
1299         (_cpp_lex_token): Remove special cases for #define and #if.
1300         (cpp_get_token): Expect # as a separate token type.  Remove
1301         DIRECTIVE case.
1302         (_cpp_get_directive_token): Remove DIRECTIVE case.
1303         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
1304
1305         * cpplib.c (_cpp_check_directive): Set dirno and
1306         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
1307         (_cpp_handle_directive): Run # <number> through the same logic
1308         as normal directives.
1309         (do_define): Don't set parsing_define_directive.  Use
1310         _cpp_scan_until.  The list does not have a VSPACE at the end.
1311         (do_if): Save, clear, and restore only_seen_white around 
1312         _cpp_parse_expr.
1313         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
1314         (do_assert, do_unassert): Rewrite.
1315
1316         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
1317         (LIST_OFFSET): New flag.
1318         (struct cpp_toklist): Replace dir_handler and dir_flags with
1319         dirno and flags.
1320         (struct cpp_reader): Remove parsing_if_directive and
1321         parsing_define_directive.
1322
1323 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1324
1325         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
1326         following the cabs decl which terminate on the following line.
1327         Add the corresponding test_text case.
1328
1329 2000-05-18  Neil Booth  <NeilB@earthling.net>
1330
1331         * cppinit.c (cpp_reader_init): Initialise col_adjust and
1332         default tab stop size.
1333         (no_num, OPT_ftabstop): New.
1334         (handle_option): Handle "ftabstop=" command-line option.
1335         (print_help): Document it.
1336         * cpplex.c (COLUMN): Remove.
1337         (handle_newline): Reset col_adjust.
1338         (skip_whitespace): Update col_adjust as tabs encountered.
1339         (_cpp_lex_line): Update to use col_adjust.  Call
1340         skip_whitespace for all whitespace.
1341         * cpplib.h (struct cpp_options): New member tabstop.
1342         (struct cpp_reader): New member col_adjust.
1343         (CPP_BUF_COL): Update.
1344         (CPP_BUF_COLUMN): New.
1345         * cpp.texi: Document "-ftabstop=" command line option.
1346
1347 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
1348
1349         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
1350         files.
1351         * configure: Rebuilt.
1352
1353 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
1354
1355         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
1356
1357         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
1358         HOST_BITS_PER_WIDE_INT is >= 64.
1359
1360 2000-05-17  Richard Henderson  <rth@cygnus.com>
1361
1362         * jump.c (jump_optimize_1): Remove inactive but real insns
1363         in jump-to-next-insn optimization.
1364
1365 2000-05-17  Richard Henderson  <rth@cygnus.com>
1366
1367         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
1368         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
1369         Don't call recompute_reg_usage if no_new_pseudos is true.
1370         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
1371         Return true if we did work; update global life information.
1372         * basic-block.h (optimize_mode_switching): Update decl.
1373
1374 2000-05-17  Neil Booth  <neilb@earthling.net>
1375
1376         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
1377
1378 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
1379
1380         * cpplib.c: New feature, #pragma system_header.
1381         * cpp.texi: Document special treatment of system headers, and
1382         the various mechanisms to get a header that special treatment.
1383
1384 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1385
1386         * system.h (offsetof): Define at the very end, to ensure we prefer
1387         the platform's definition if available.
1388
1389 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1390
1391         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
1392         * fixinc/server.c: likewise
1393         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
1394         + #ifdef debugging code + use #def constant for
1395         sub-pattern count
1396         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
1397         on C++ math namespace
1398
1399 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1400
1401         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1402         Don't check the return value of sprintf.  Use asprintf to avoid
1403         buffer overflows.
1404
1405 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
1406
1407         * flags.h (warn_unused_function, warn_unused_label,
1408         warn_unused_parameter, warn_unused_variable, warn_unused_value):
1409         Replace ``warn_unused''.
1410         (set_Wunused): Add declaration.
1411         * toplev.c (set_Wunused): New function.
1412         (warn_unused_function, warn_unused_label, warn_unused_parameter,
1413         warn_unused_variable, warn_unused_value): New variables.
1414         (W_options): Add -Wunused-function, -Wunused-function,
1415         -Wunused-label, -Wunused-parameter, -Wunused-variable and
1416         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
1417
1418         * toplev.c (decode_W_option): Update -Wunused flags by calling
1419         set_Wunused.
1420         * c-decl.c (c_decode_option): Ditto for -Wall.
1421
1422         * stmt.c (expand_expr_stmt, expand_expr_stmt,
1423         warn_about_unused_variables): Replace warn_unused with more
1424         explicit warn_unused_value et.al.
1425         * function.c (expand_function_end): Ditto.
1426         * c-typeck.c (internal_build_compound_expr,
1427         internal_build_compound_expr): Ditto.
1428         * c-decl.c (poplevel, pop_label_level): Ditto.
1429         * toplev.c (check_global_declarations): Replace warn_unused with
1430         check for either warn_unused_function or warn_unused_variable.
1431
1432         * gcc.1, invoke.texi (Warning Options): Document
1433         -Wunused-function, -Wunused-function, -Wunused-label,
1434         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
1435
1436 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
1437
1438         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
1439         $(srcdir), not in the current directory.
1440
1441 2000-05-16  Richard Henderson  <rth@cygnus.com>
1442
1443         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
1444         assembler supports it.
1445         (.fini, .init): Use a gp-relative indirect call.
1446         (__do_global_dtors_aux): Preserve the gp; rebundle.
1447         (__do_frame_setup): Likewise.
1448         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
1449         (.init): Use a gp-relative indirect call.
1450         (__do_global_ctors_aux): Preserve the gp.
1451
1452 2000-05-16  Richard Henderson  <rth@cygnus.com>
1453
1454         * flow.c (commit_one_edge_insertion): Be prepared for a return
1455         insn to be inserted on the edge with a normal jump.
1456         * jump.c (jump_optimize_1): Don't look to create return isns.
1457
1458         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
1459         * jump.c (jump_optimize_1): Likewise.
1460         (returnjump_p): Verify the argument is a JUMP_INSN.
1461         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
1462
1463 2000-05-16  Nick Clifton  <nickc@cygnus.com>
1464
1465         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
1466         GET_RTX_CLASS (GET_CODE ()) == 'i'.
1467         (large_insn_p): Ditto.
1468         (m32r_is_insn): New function: Return true if the insn contains
1469         an executable instruction.
1470         (m32r_adjust_insn): Use m32r_is_insn.
1471         (m32r_sched_reorder): Use m32r_is_insn.
1472         (m32r_sched_variable_issue): Use m32r_is_insn.
1473
1474 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1475
1476         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
1477         VAR_DECL.
1478
1479         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
1480
1481         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
1482         according to given options.
1483
1484 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
1485
1486         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
1487         if X has VOIDmode either.
1488         (LIMIT_RELOAD_CLASS): Similarly.
1489
1490         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
1491         not "general_operand" to match the processor's capabilities.
1492
1493 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1494
1495         * fixinc/README:  corrected return address
1496         * fixinc/check.diff:  regenerate, now that test works
1497         * fixinc/fixfixes.c(format_fix,format_write): reformatted
1498         (char_macro_def_fix,char_macro_use_fix): corrected and
1499         rewrote to use regex to parse the text
1500         * fixinc/inclhack.def: more testing
1501         * fixinc/fixincl.x:  regenerated
1502
1503         * fixinc/inclhack.def: added several "test_text" attributes
1504         changed several fixes to use `c_fix = format'
1505         re-alphabetized the fixes
1506
1507         * fixinc/check.diff: regenerate
1508         * fixinc/fixincl.x: regenerate
1509         * fixinc/check.tpl: added `sparc' and `netinet' to the list
1510         of created dirs
1511
1512
1513 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
1514
1515         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
1516
1517 2000-05-15  Richard Henderson  <rth@cygnus.com>
1518
1519         * toplev.c (rest_of_compilation): Run full jump pass before
1520         find_basic_blocks of flow2.
1521
1522 2000-05-15  Richard Henderson  <rth@cygnus.com>
1523
1524         * jump.c: Fix typos and clarify commentary from last change.
1525         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
1526         (safe_to_remove_jump_p): Remove.
1527         (condjump_label): Use pc_set.
1528
1529 2000-05-15  Richard Henderson  <rth@cygnus.com>
1530
1531         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
1532         that get in the way after reload.
1533         (cond_exec_process_if_block): Skip a label heading THEN block.
1534
1535 2000-05-15  Richard Henderson  <rth@cygnus.com>
1536
1537         * varasm.c (output_constant_pool): Abort instead of converting
1538         (improperly) deleted labels to zero.
1539
1540 2000-05-16  Neil Booth  <NeilB@earthling.net>
1541
1542         * cpplex.c (parse_string2): Update comment.
1543         (cpp_lex_line): No special assertion treatment for '('.
1544         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
1545         * cpplib.h (SYNTAX_ASSERT): Remove.
1546
1547 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1548
1549         * jump.c (condjump_p):  Mark as depreached.
1550         (any_condump_p): New.
1551         (any_uncondump_p): New.
1552         (pc_set): New.
1553         (safe_to_remove_jump_p): New.
1554         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
1555         safe_to_remove_jump_p): Declare.
1556
1557 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1558
1559         * calls.c: Re-install both patches reverted by last patch.
1560         (struct arg_data): New field tail_call_reg.
1561         (initialize_argument_information): Initialize tail_call_reg
1562         (load_register_parameters): New argument flags, use
1563         tail_call_reg when emiting tail call sequence.
1564         (expand_call): Update call of load_register_parameters;
1565         copy unadjusted_args_size to adjusted_args_size.
1566
1567 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1568
1569         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
1570         and bct_p parameters to flags.
1571         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
1572         * rtl.h (loop_optimize): Update prototype.
1573         * toplev.c (rest_of_compilation): Update call of loop_optimize.
1574
1575 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
1576
1577         * calls.c (expand_call): Move expand_start_target_temps call after
1578         start_sequence().
1579
1580 2000-05-15  Neil Booth  <NeilB@earthling.net>
1581
1582         * cpphash.c (trad_stringify, warn_trad_stringify,
1583         collect_params): Make some pointers pointers to const.
1584         * cpplex.c (auto_expand_name_space) Guaranteed to always
1585         expand by at least one character.
1586         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
1587         (struct token_spelling): Use const U_CHAR * rather than PTR.
1588         (expand_name_space): Fix up token pointers if name space
1589         is moved when expanding.
1590         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
1591         parse_string2, save_comment, spell_token, cpp_output_list):
1592         Update so the routines handle tokens with a direct pointer to
1593         their text, rather than an offset into the token's list's namebuf.
1594         (_cpp_lex_line): Rearrange for clarity.
1595
1596         * cpplib.c (_cpp_check_directive): Similarly.
1597         (do_define): Make SYM a pointer to const.
1598         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
1599         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
1600         (TOK_OFFSET): Delete.
1601         (TOK_NAME): Update.
1602
1603 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
1604
1605         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
1606         64-bit ABI.
1607
1608         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE 
1609         into account.
1610         (logical_u_operand): Delete.
1611         (non_logical_cint_operand): Rewrite to take MODE into account.
1612         (non_logical_u_cint_operand): Delete.
1613         (boolean_operator): New function.
1614         (print_operand): Add new %q operand.
1615         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
1616         remove logical_u_operand and non_logical_u_cint_operand,
1617         update logical_operand and non_logical_cint_operand.
1618         * config/rs6000/rs6000.md: Rewrite the patterns for performing
1619         logical operations to use %q.
1620
1621         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
1622         (movdi): Make similar to movsi.
1623         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
1624         is no such thing as a DImode CONST_DOUBLE.
1625         * config/rs6000/rs6000.c (output_toc): Likewise.
1626         
1627         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
1628         codes when old mnemonics are in use.  Print register names
1629         for cc registers when requested.
1630
1631         * optabs.c (expand_float): Don't allow mode widening that causes
1632         double rounding.
1633
1634         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
1635         flags to their current names -maix64 and -maix32.
1636
1637 2000-05-14  Bruce Korb  <bkorb@gnu.org>
1638
1639         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
1640         and/or after current text of file
1641         * fixinc/fixlib.c(must_malloc):
1642         * fixinc/fixlib.h(must_malloc): + reformatting
1643         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
1644         with usages of ``c_fix = wrap;''
1645         Add several tests and use the ``c_fix = format'' fixer more.
1646         * fixinc/fixincl.x: regen
1647         * fixinc/check.diff: regen
1648         * fixinc/check.tpl: emit the associated header with the missing
1649         test message
1650
1651 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
1652
1653         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
1654         variables $src and $dst.
1655         
1656 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
1657
1658         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
1659         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
1660         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
1661         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
1662         fields. 
1663         (set_message_prefixing_rule): Declare.
1664
1665         * diagnostic.c: (current_prefixing_rule): New variable.
1666         (set_message_prefixing_rule): Define.
1667         (output_set_prefix): Adjust buffer->emitted_prefix_p.
1668         (init_output_buffer): Adjust Initialization.
1669         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
1670         
1671 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
1672
1673         * ifcvt.c (if_convert): Do not free NULL.
1674
1675 2000-05-12  Nick Clifton  <nickc@cygnus.com>
1676
1677         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
1678         to move a double word value.
1679         (di_operand): New function: Return true if the operand is suitbale
1680         for a double word move operation.
1681         (nonimmediate_di_operand): New function: Return true if the
1682         operand is a DImode register or MEM.
1683
1684         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
1685         nonimmediate_di_operand.
1686
1687         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
1688         nonimmediate_di_operand.
1689
1690         * config/fr30/fr30.md (movdi): New pattern.  Required because
1691         other patterns generate DImode results.
1692         (movdi_insn): New pattern.
1693
1694 2000-05-12  Richard Henderson  <rth@cygnus.com>
1695
1696         * config/alpha/alpha.c (struct shadow_summary): Define
1697         bitfields as type unsigned int.
1698
1699 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
1700
1701         * config/avr/t-avr: Added definition of FLOAT while generates
1702         fp-bit.c
1703
1704         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
1705         peepholes for tst+jump = sbrs/sbrc optimization.
1706
1707 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
1708
1709         * expr.c (emit_push_insn): Do not adjust stack pointer when
1710         preallocating.
1711
1712 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
1713
1714         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
1715         * system.h (offsetof): ... to here.
1716
1717 2000-05-12  Richard Henderson  <rth@cygnus.com>
1718
1719         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
1720         * final.c (final_end_function): Use app_disable.  Rearrange note
1721         handling into a switch.  Emit deleted labels.
1722         (output_asm_label): Generate label strings for deleted labels.
1723         * flow.c (tail_recursion_label_list): New.
1724         (find_basic_blocks_1): Set label_value_list directly.  Collect list
1725         of tail recursion labels from call_placeholders.  Don't add deleted
1726         labels to the label value list.
1727         (cleanup_cfg): Use free_EXPR_LIST_list.
1728         (flow_delete_insn_chain): Turn non-removable labels into notes.
1729         (flow_delete_block): Don't disable deleting the block because of
1730         a non-removable label.
1731         (tail_recursion_label_p): New.
1732         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
1733         because of a label.
1734         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
1735         jump table.
1736         (merge_blocks): Disable a merge because of tail recursion labels.
1737         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
1738         Use a more accurate measure of not merging the join block.
1739         (find_if_block): Don't disable conversion because of a label.
1740         (find_if_case_1, find_if_case_2): Likewise.
1741         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
1742         element when copying.
1743         (squeeze_notes): Also leave EH notes.
1744         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
1745         REG_LABEL notes.
1746         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
1747         deleting a label.
1748         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
1749         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
1750         referring to a deleted label.  Convert tail handling to a switch.
1751         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
1752         for NOTE_INSN_DELETED_LABEL.
1753         (NOTE): Fix commentary.
1754         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
1755         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
1756         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
1757         (LABEL_NUSES, LABEL_REFS): Likewise.
1758         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
1759
1760 2000-05-12  Bruce Korb  <bkorb@gnu.org>
1761
1762         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
1763         * fixinc/check.diff: updated
1764         * fixinc/inclhack.def: corrected & added some test_text-s
1765         * fixinc/genfixes: removed unneeded options to autogen invocation
1766         * fixinc/fixincl.tpl: Specified the output file
1767         * fixinc/fixfixes.c: visual appearance
1768         * fixinc/fixincl.x: regenerate
1769
1770 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
1771
1772         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
1773         CTRL_defn_fix): Delete.
1774         (fix_char_macro_defines, fix_char_macro_uses): Rename to
1775         char_macro_def_fix and char_macro_use_fix, respectively.  Put
1776         them into the FIXUP_TABLE.  Get the string to search for from
1777         a c_fix_arg.
1778
1779         (format_write): New function.
1780         (format_fix): Use it.
1781
1782         (FIX_PROC_HEAD): Constify text parameter.
1783         (machine_name_fix): Constify all char *s.
1784         * fixtests.c (skip_quote): Remove double static.
1785
1786         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
1787         ctrl_use_quotes): Update for new scheme.
1788         * fixincl.x: Regenerate.
1789
1790 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
1791
1792         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
1793         DWARF2_DEBUG.
1794         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
1795         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
1796
1797 2000-05-11  Robert Lipe <robertlipe@usa.net>
1798
1799         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
1800         * fixincl.x: Regenerate.
1801
1802 2000-05-11  Richard Henderson  <rth@cygnus.com>
1803
1804         * calls.c: Revert both 05-09 patches.
1805
1806 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
1807
1808         * config/mn10300/mn10300.c (print_operand): Print FP constants in
1809         hexadecimal.
1810         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
1811         for FP values.
1812
1813         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
1814         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
1815
1816 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
1817
1818         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
1819
1820 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1821
1822         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
1823
1824 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
1825
1826         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
1827         * config/avr/avr.c (jump_over_one_insn_p): New function.
1828         * config/avr/avr.md: New peepholes added. Output test and
1829         conditional jump to "sbrc" or "sbrs" command.
1830
1831 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
1832
1833         * cppmain.c (main): Use IS_DIR_SEPARATOR.
1834
1835 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
1836
1837         * except.c (find_exception_handler_labels_1): New function.
1838         (find_exception_handler_labels): Split into two functions, dive
1839         into CALL_PLACEHOLDERs when looking for exception handler labels.
1840
1841 2000-05-11 Stan Cox <scox@cygnus.com>
1842
1843         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
1844         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
1845         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
1846
1847 2000-05-11  Bruce Korb  <bkorb@gnu.org>
1848
1849         * fixinc/fixfixes.c (double_slash_fix):  obsolete
1850         (else_endif_label_fix): obsolete
1851         (format_fix):  new, unused as yet
1852         (main): obsolete
1853         * fixinc/fixlib.h: added fix description struct for use by format_fix
1854         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
1855         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
1856         modules.  Removed the vestiges of the script version.
1857         Added support for "make check".
1858         * fixinc/check.diff: base diff file (needs work!!)
1859         * fixinc/check.tpl: quiet the fixup output
1860         * fixinc/fixtests.c (main): obsolete
1861         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
1862         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
1863
1864 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
1865
1866         * toplev.c (rest_of_compilation): Remove dead code after
1867         combine.
1868
1869 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1870
1871         * cpphash.c (collect_funlike_expansion): Make "# is not
1872         followed by a macro argument name" a pedwarn, not an error.
1873         Preserve the # in the output.  Suppress the warning if lang_asm.
1874
1875 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
1876
1877         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
1878         * configure: Rebuilt.
1879
1880 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
1881
1882         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
1883
1884 2000-05-10  Kazu Hirata  <kazu@hxi.com>
1885
1886         * combine.c (try_combine): Fix a typo.
1887
1888 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
1889
1890         * config/ia64/ia64.md (insv): Add comment.
1891
1892 2000-05-10  Richard Henderson  <rth@cygnus.com>
1893
1894         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
1895         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
1896         dependancies on FPBIT and DPBIT.
1897
1898 2000-05-10  Nick Clifton  <nickc@redhat.com>
1899
1900         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
1901         when optimising for size.
1902         (mark_used_regs:) Ditto.
1903         (try_pre_increment_1): Ditto.
1904
1905 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
1906
1907         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
1908         Make error message friendlier.
1909
1910         * cpphash.h (struct hashnode): Use struct hack for name
1911         member.
1912         * cpphash.c (struct hashdummy): New.
1913         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
1914         (make_HASHNODE): No need to set ->name pointer.  Correct
1915         setting of p.
1916         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
1917
1918 2000-05-10  Richard Henderson  <rth@cygnus.com>
1919
1920         * flow.c (find_basic_blocks_1): Remove any spare bb_note
1921         after completion.
1922
1923 2000-05-10  Bruce Korb  <bkorb@gnu.org>
1924
1925         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
1926
1927 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
1928
1929         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
1930         after we enter .debug.
1931
1932 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
1933
1934         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
1935         abstract instance of a nested inline function.
1936
1937         * stor-layout.c (finish_record_layout): finalize_type_size
1938         before laying out the pending_statics.
1939
1940 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
1941
1942         * cpplex.c (spell_token): New function.
1943         (spell_string, spell_comment, spell_name): fold into
1944         spell_token.    
1945         (I, S): Add macros.
1946         (E, H): Remove macros.
1947         (save_comment): Save comment opening characters too.
1948         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
1949         handling.
1950         * cpplib.h (I, S): Add macros.
1951         (E, H): Remove macros.
1952         (TTYPE_TABLE): Update entries for new speller.
1953         (SYNTAX_ASSERT): Remove.
1954
1955 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
1956
1957         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
1958         when removing escaped newlines.  Reverse sense of test for
1959         escaped newline.
1960
1961 2000-05-09  Richard Henderson  <rth@cygnus.com>
1962
1963         * flow.c (find_basic_blocks_1): Do not delete the first
1964         bb_note we run across.
1965         (create_basic_block): Use reorder_insns to move an existing
1966         bb_note to the correct place.
1967
1968 2000-05-09  Richard Henderson  <rth@cygnus.com>
1969
1970         * calls.c (expand_call): Increment currently_expanding_call
1971         before calling optimize_tail_recursion.
1972
1973 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1974
1975         * reload1.c (reload_combine): Fix errors in last change.
1976
1977 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
1978
1979         * gcc.c (used_arg): Skip over a semicolon at the end of the
1980         split-up loop; don't break out of it.
1981
1982         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
1983         (tree.o): Depend on output.h.
1984
1985         * c-decl.c (pending_invalid_xref_file,
1986         current_function_prototype_file): Constify.
1987         (pushdecl): Constify a local char *.
1988         (define_label): Constify filename parameter.
1989         * c-lex.c (init_parse): Constify parameter and return value.
1990         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
1991         * c-tree.h: Update prototypes.
1992         * c-parse.in: Constify filename member of %union, and if_stmt_file.
1993         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
1994         objc/objc-parse.c: Regenerate.
1995
1996         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
1997         * dwarfout.h: Update prototypes.
1998         * expr.c (expand_expr): Constify a local char *.
1999         * flags.h: Constify main_input_filename.
2000         * function.c (expand_function_end): Constify filename parameter.
2001         * genrecog.c (make_insn_sequence): Use a character array for
2002         c_test_pos.
2003         (main): Remove unused variables.
2004         * input.h: Constify input_filename, main_input_filename, and
2005         file_stack.name.  Update prototypes.
2006         * output.h: Declare first_global_object_name and
2007         weak_global_object_name here, as const char *.
2008         * stmt.c (expand_asm_operands): Constify filename parameter.
2009         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
2010         Constify filename parameter.
2011         (input_filename, main_input_filename): Constify.
2012         * toplev.h: Update prototypes.
2013         * tree.c: Include output.h.  Don't declare
2014         first_global_object_name or weak_global_object_name.  Clean up string
2015         bashing in get_file_function_name_long.
2016         * tree.h (struct tree_decl): Constify filename member.
2017         (input_filename): Constify.
2018         Update prototypes.
2019         * varasm.c (first_global_object_name, weak_global_object_name):
2020         Constify.
2021         (assemble_start_function, assemble_variable): Clean up string bashing.
2022
2023         * gcc.c: Constify all spec-related strings initialized,
2024         transitively, from string constants.  Constify all strings
2025         and string variables related to multilibs.
2026         (set_spec, read_specs): Cast argument to free to PTR.
2027         (used_arg): Do not modify multilib_matches.  Use strncmp plus
2028         length comparison to compare multilib switches.
2029         * genmultilib: Constify everything declared in multilib.h.
2030
2031 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
2032
2033         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
2034         as deleted.
2035
2036 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
2037
2038         * config/avr/avr-protos.h (extra_constraint): change a type of
2039         second argument from char to int to avoid warnings.
2040         (asm_output_byte): Likewise.
2041         
2042         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
2043         (initial_elimination_offset): Handle elimination from
2044         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
2045         (legitimate_address_p): Use MAX_LD_OFFSET.
2046         (legitimize_address): Likewise.
2047         (out_movqi_r_mr): Likewise.
2048         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
2049         (out_movsi_r_mr): Use MAX_LD_OFFSET.
2050         (out_movsi_mr_r): Likewise.
2051         (out_movqi_mr_r): Likewise.
2052         (out_movhi_mr_r): Likewise.
2053         (notice_update_cc): Correct CC for the ashrqi3 with the shift
2054         count as CONST_INT != 6.
2055         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
2056         shift count is a CONSTANT_P, but not a CONST_INT.
2057         (ashlhi3_out): Coding style modifications.
2058         (ashlsi3_out): Likewise.
2059         (ashrhi3_out): Likewise.
2060         (ashrsi3_out): Likewise.
2061         (lshrhi3_out): Likewise.
2062         (lshrsi3_out): Likewise.
2063         (ashrqi3_out): Generate shift for any known constant count without
2064         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
2065         but not a CONST_INT.
2066         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
2067         shift count is a CONSTANT_P, but not a CONST_INT. 
2068         (extra_constraint): change a type of
2069         second argument from char to int to avoid warnings.
2070         (asm_output_byte): Likewise.
2071         (asm_file_end): Output size generated commands count as a hex
2072         number too.
2073
2074         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
2075
2076         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
2077         removed.
2078         (ashlqi3): Values of "length" attribute changed. Shift count
2079         uses constraints 'n' instead of 'i'.
2080         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
2081         shifts without clobber register.
2082         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
2083         (call_insn): Correct test for which_alternative == 1 (was 0).
2084         (call_value_insn): Likewise.
2085         
2086         * config/avr/t-avr: Remove definition of FLOAT while generates
2087         fp-bit.c
2088
2089 2000-05-09  Bruce Korb  <bkorb@gnu.org>
2090
2091         * fixinc/check.tpl:  Template for checking fixes
2092         * fixinc/inclhack.def:  Added 'test_text' for many fixes
2093         disable hpux8_bogus_inlines on SCO
2094         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
2095
2096 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2097
2098         * calls.c (expand_call): Reorganize somewhat in order
2099         to avoid unnecesary recalculation inside loop and make
2100         tail call failure code cleaner.
2101         
2102 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2103
2104         * alias.c (nonlocal_reference_p): Minor reformatting.
2105         * reload.c (find_equiv_reg): Simplify logic for
2106         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
2107         some some reformatting.
2108         * reload1.c (reload_combine): Don't assume everything in
2109         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
2110
2111 2000-05-08  Richard Henderson  <rth@cygnus.com>
2112
2113         * final.c (current_insn_predicate): New.
2114         (final_scan_insn): Set it.
2115         * output.h (current_insn_predicate): Declare.
2116
2117         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
2118         Attach it to call insns.
2119         (cond_exec_process_if_block): Track probability for true and
2120         false branches.
2121         (dead_or_predicable): Likewise.
2122
2123         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
2124         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
2125         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
2126         (estimate_probability, expected_value_to_br_prob): Use them.
2127
2128         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
2129         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
2130         (ia64_expand_prediction): New.
2131         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
2132         as needed after calls.
2133         (ia64_epilogue_uses): Mark b0 used.
2134         * config/ia64/ia64.md (beq_true, beq_false): Remove.
2135         (bne_true, bne_false): Remove.
2136         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
2137         (br_true, br_false): New.  Use predicate_operator and
2138         ia64_expand_prediction.
2139         (return_true, return_false): Likewise.
2140         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
2141         (call_internal1, call_value_internal): Likewise.
2142         (call_value_internal1, call_multiple_values_internal1): Likewise.
2143
2144         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
2145
2146         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
2147
2148 2000-05-08  Richard Henderson  <rth@cygnus.com>
2149
2150         * rtlanal.c (may_trap_p): Consider old-style and volatile
2151         asms to trap.
2152
2153 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
2154
2155         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
2156
2157 2000-05-08  Richard Henderson  <rth@cygnus.com>
2158
2159         * config/ia64/ia64.h (predicate_operator): Declare.
2160
2161         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
2162         of existance.
2163
2164         * gensupport.c (process_rtx): Copy and post-process each member
2165         of the define_insn rtvec individually.
2166
2167 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
2168
2169         * cpplex.c (spell_token): New function.
2170         (TOKEN_LEN): Add 1 for whitespace.
2171         (_cpp_lex_file): Update to use spell_token.
2172         * cpplib.h (E): Remove.
2173         (TTYPE_TABLE): Update CPP_VSPACE entry.
2174
2175 2000-05-08  Richard Henderson  <rth@cygnus.com>
2176
2177         * flow.c (init_propagate_block_info): Watch out for conditional
2178         branch to next instruction, and thus one outgoing edge.
2179
2180         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
2181         for global register variables; don't special case __[CD]TOR_LIST__;
2182         mind ggc_p for string allocation.
2183
2184 2000-05-08  Nick Clifton  <nickc@cygnus.com>
2185
2186         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
2187
2188 2000-05-08  Bruce Korb  <bkorb@gnu.org>
2189
2190         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
2191         i?86-*-msdosdjgpp* no longer uses fixincludes
2192         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
2193         * fixinc/inclhack.sh:  deleted
2194         * fixinc/hackshell.tpl:  deleted
2195         * fixinc/inclhack.tpl:  deleted
2196         * fixinc/Makefile.in:  Remove dependencies on above
2197         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
2198
2199 2000-05-08  Andreas Jaeger  <aj@suse.de>
2200
2201         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
2202         support.
2203
2204 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
2205
2206         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
2207         substitutions.
2208
2209 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
2210
2211         * cpplex.c: Move new lexer definitions and prototypes
2212         to top.  Conditional include these and the code if
2213         NEW_LEXER is defined.  Rename functions whose names
2214         clash if this code included.
2215
2216 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
2217
2218         * rtl.def (COND_EXEC): Clarify.
2219
2220         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
2221         same fashion as zero_extendsidi2.
2222
2223 2000-05-06  Richard Henderson  <rth@cygnus.com>
2224
2225         * config/ia64/ia64.c (predicate_operator): New.
2226         (ia64_print_operand): Handle 'J'.
2227         (rtx_needs_barrier): Handle COND_EXEC.
2228         * config/ia64/ia64.h (BRANCH_COST): Define.
2229         (PREDICATE_CODES): Update.
2230         * config/ia64/ia64.md: Docuement used unspec values.
2231         (attr predicable): New.
2232         (movxf, movxf_internal): New.
2233         (extendsfdf2): Don't comment out nop.
2234         (floatdidf2): Remove.
2235         (truncxfsf2, truncxfdf2, floatdixf2): New.
2236         (abssi2, absdi2): Put the neg in the "true" slot.
2237         (conditional branch instructions): Mark not predicable.
2238         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
2239         (abs*_internal): Likewise.
2240         (alloc, set_bsp): Mark not predicable.
2241         (barrier, insn_group_barrier, flush_cache): Likewise.
2242         (define_cond_exec): New.
2243
2244 2000-05-06  Richard Henderson  <rth@cygnus.com>
2245
2246         * c-decl.c: Include "tm_p.h".
2247
2248         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
2249         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
2250         (ia64_expand_op_and_fetch): Declare.
2251         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
2252         (setjmp_operand): Constify variables for XSTR.
2253         (ia64_encode_section_info): Likewise.
2254         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
2255         values to int.
2256         (ia64_asm_output_external): Constify name.
2257         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
2258         (process_for_unwind_directive): Provide switch default.
2259         (ia64_expand_compare_and_swap): Remove unused variables.
2260         (ia64_expand_builtin): Likewise.
2261         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
2262         for printing.
2263
2264         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
2265         (symbolic_operand, function_operand, setjmp_operand): Likewise.
2266         (shift_count_operand, shift_32bit_count_operand): Likewise.
2267         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
2268         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
2269         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
2270         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
2271         (ia64_expand_builtin): Likewise.
2272         (call_multiple_values_operation): Make dest_regno unsigned.
2273
2274 2000-05-06  Richard Henderson  <rth@cygnus.com>
2275
2276         * rtl.def (DEFINE_COND_EXEC): New.
2277         * md.texi: Document it.
2278
2279         * gensupport.c (input_file): Remove.
2280         (struct queue_elem): Add lineno.
2281         (rtx_ready_queue): Remove.
2282         (errors): New.
2283         (predicable_default): New.
2284         (predicable_true, predicable_false): New.
2285         (define_attr_queue, define_attr_tail): New.
2286         (define_insn_queue, define_insn_tail): New.
2287         (define_cond_exec_queue, define_cond_exec_tail): New.
2288         (other_queue, other_tail): New.
2289         (queue_pattern): New.
2290         (process_rtx): Add patterns to the appropriate queues.
2291         (is_predicable, identify_predicable_attribute): New.
2292         (n_alternatives, collect_insn_data): New.
2293         (alter_predicate_for_insn, alter_test_for_insn): New.
2294         (shift_output_template, alter_output_for_insn): New.
2295         (process_one_cond_exec, process_define_cond_exec): New.
2296         (init_md_reader): Read the entire file.  Process define_cond_exec.
2297         (read_md_rtx): Return elements from the queues.
2298
2299 2000-05-06  Richard Henderson  <rth@cygnus.com>
2300
2301         * flow.c (mark_set_1): Don't update conditional life info
2302         if the register is not_dead.
2303
2304 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
2305
2306         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
2307         (mostlyclean): Also delete fixincl, fixinc.sh, and
2308         specs.ready, and make clean in the fixinc subdir.
2309
2310 2000-05-06  Richard Henderson  <rth@cygnus.com>
2311
2312         * Makefile.in (gensupport.o): Compile for the host.
2313         (host-prefix gensuuprt.o): Remove.
2314         (genflags.o): Depend on gensupport.h and OBSTACK_H.
2315         (genattrtab.o): Likewise.
2316         (gencodes.o): Depend on gensupport.h.
2317         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
2318         (genpeep.o, genattr.o, genoutput.o): Likewise.
2319
2320         * gensupport.c (obstack, rtl_obstack): New.
2321         (init_md_reader): Initialize rtl_obstack.
2322         * gensupport.h (rtl_obstack): Declare.
2323         (message_with_line): Declare.
2324
2325         * genattr.c: Remove all traces of obstack manipulation.
2326         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
2327         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
2328
2329         * genattrtab.c (obstack, rtl_obstack): Remove.
2330         (main): Don't init rtl_obstack.
2331         * genflags.c: Likewise.
2332
2333         * genrecog.c (message_with_line): Move ...
2334         * gensupport.c: ... here.
2335
2336 2000-05-06  Richard Henderson  <rth@cygnus.com>
2337
2338         * c-typeck.c (build_c_cast): Remove dead code.
2339
2340 2000-05-06  Richard Henderson  <rth@cygnus.com>
2341
2342         * flow.c (split_edge): Don't allocate global_live_at_start for
2343         the new block unless the old blocks had them as well.
2344
2345         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
2346
2347         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
2348         test_bb if a or b uses x.
2349
2350 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
2351
2352         * cpphash.h: Remove conditional #define of __extension__.
2353         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
2354         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
2355         (ENABLE_RTL_CHECKING only).
2356         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
2357         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
2358         (ENABLE_TREE_CHECKING only).
2359         * varray.h: Add __extension__ to VARRAY_CHECK macro
2360         (ENABLE_CHECKING only).
2361
2362 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2363
2364         Use new tail-calling mechanism on ARM.
2365         * arm.md (sibcall, sibcall_value): New expands.
2366         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
2367         (tailcalling peepholes): Delete.
2368         (push_multi): Simplify.
2369         * arm.c (lr_save_eliminated): Delete definition.
2370         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
2371         (output_return_instruction): Remove checks on lr_save_eliminated.
2372         (output_arm_prologue): Remove old tail-calling code.
2373         (arm_output_epilogue): New parameter, really_return.  All callers
2374         changed.  Handle tail-calling epilogues.
2375         * arm.h (lr_save_eliminated): Delete declaration.
2376         (frame_pointer_needed): Delete declaration.
2377         * arm-protos.h (arm_output_epilogue): Adjust prototype.
2378
2379         * arm.md (is_thumb): Examine symbol thumb_code, not expression
2380         TARGET_ARM.
2381         * arm.c (thumb_code): Define it.
2382         (arm_override_options): Set it.
2383         * arm.h (thumb_code): Declare it.
2384         
2385 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2386
2387         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
2388
2389 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2390
2391         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
2392         bogus clobber to insns.
2393         (load_multiple_operation, store_mulitple_operation): Don't check 
2394         for it.
2395         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
2396
2397         * arm.md (and_scc, ior_scc): Add missing mode.
2398
2399         * arm.md (call_value_symbol): Remove predicate from op2.
2400
2401         * arm.h (SPECIAL_MODE_PREDICATES): Define.
2402         
2403 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2404
2405         * expr.c (get_subtarget): New function.
2406         (force_operand, expand_expr, do_store_flag): Use it.
2407
2408         * toplev.c (compile_file): Don't take strlen of NAME if null.
2409
2410 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
2411
2412         * xcoffout.c (xcoff_current_include_file,
2413         xcoff_current_function_file, xcoff_lastfile): Constify char *.
2414         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
2415         char *'.
2416         (xcoffout_declare_function): Make name 'const char *'.
2417         (xcoffout_end_epilogue): Make fname 'const char *'
2418         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
2419         xcoffout_declare_function, xcoffout_source_line): Match above.
2420
2421         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
2422         -maix64 is error.
2423         * rs6000.c (print_operand): Fix lossage typo.
2424         (output_cbranch): Remove "cr" decoration for now.
2425         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. 
2426
2427 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
2428
2429         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
2430         constant count.
2431
2432 2000-05-05  Bruce Korb  <bkorb@gnu.org>
2433
2434         * fixinc/genfixes: Improve the matching for make target names
2435
2436 2000-05-05  Catherine Moore  <clm@cygnus.com>
2437
2438         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
2439         attribute to the decl.
2440         * c-decl.c (pushdecl): Propagate the USED attribute to the 
2441         type copy.
2442
2443 2000-05-05  Richard Henderson  <rth@cygnus.com>
2444
2445         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
2446         same way emit_group_load does.
2447
2448 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
2449
2450         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
2451
2452         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
2453         (main): Likewise.
2454
2455 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
2456
2457         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
2458
2459 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
2460
2461         * config/openbsd.h (LINK_SPEC): pass correct flags to ld 
2462         to support -shared, on platforms with dynamic libraries.
2463
2464 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
2465
2466         * system.h (S_ISBLK): Provide fallback definition.
2467
2468 2000-05-05  Geoff Berry  <geoffb@bops.com>
2469
2470         * extend.texi (Extended Asm): Document inability to give asm
2471         statements access to condition codes.
2472
2473 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
2474
2475         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
2476         as arg 2 of UNIQUE_SECTION.
2477
2478 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
2479
2480         * predict.c: Remove May 4 change.
2481         * bb-reorder.c (make_reorder_chain): Do not perform block movement
2482         if we have predicted the branch at 50-50 probability.
2483
2484 2000-05-05  Richard Henderson  <rth@cygnus.com>
2485
2486         * flow.c (init_propagate_block_info): Fix merge error
2487         in HAVE_conditional_execution code.
2488
2489 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
2490
2491         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
2492         shift cycle for unknown shift count. Also generates dec + brpl.
2493         (ashlqi3_out): Don't generate dec + brpl which now generates by
2494         `out_shift_with_cnt'.
2495         (ashlhi3_out): Likewise.
2496         (ashlsi3_out): Likewise.
2497         (ashrqi3_out): Likewise.
2498         (ashrhi3_out): Likewise.
2499         (ashrsi3_out): Likewise.
2500         (lshrqi3_out): Likewise.
2501         (lshrhi3_out): Likewise.
2502         (lshrsi3_out): Likewise.
2503
2504 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
2505
2506         * gcc.c (free_split_directories): Correct typo in explanation
2507         of make_relative_prefix.
2508
2509 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2510
2511         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
2512         comparison codes to branch_comparison_operator.
2513
2514 2000-05-04  Richard Henderson  <rth@cygnus.com>
2515
2516         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
2517
2518 2000-05-04  Richard Henderson  <rth@cygnus.com>
2519
2520         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
2521         (DPBIT_FUNCS): Remove _sf_to_usi.
2522         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
2523
2524         * ifcvt.c (noce_process_if_block): Fail if A or B modified
2525         between condition and jump.
2526
2527         * libgcc2.c (near eh_context_specific): Comment #endif string.
2528         * longlong.h: Don't use strings with embedded newlines.
2529
2530 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2531
2532         * config/rs6000/rs6000-protos.h: Add output_cbranch.
2533         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
2534         (print_operand): Delete %t and %T codes.
2535         (output_cbranch): New function.  Support branch prediction.
2536         * config/rs6000/rs6000.md: Use output_cbranch for
2537         conditional branches and returns.
2538
2539 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
2540
2541         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
2542         * stor-layout.c (place_field): Likewise.
2543         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
2544         * expr.c (store_expr): Make align unsigned.
2545         * explow.c (plus_constant_wide): Make low words unsigned.
2546         * expmed.c (choose_multiplier): Likewise.
2547         * fold-const.c (fold):  Likewise.
2548         * tree.h (build_int_2): Likewise.
2549         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
2550         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
2551         (init_emit): Change cast to unsigned char*.
2552         * varasm.c (compare_constant_1): Add cast to char*.
2553         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
2554         * reload1.c (reload): Likewise.
2555
2556         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
2557
2558 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
2559
2560         * predict.c (estimate_probability): If no prediction was found, then
2561         predict the successor that is the next physical block (if such a
2562         successor exists).
2563
2564 2000-05-04  Richard Henderson  <rth@cygnus.com>
2565
2566         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
2567
2568 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2569
2570         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
2571
2572 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
2573
2574         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move 
2575         attribute macros from here ...
2576         (CPP_SPEC): to here.
2577         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
2578         (CPP_SPEC): Likewise.
2579         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. 
2580
2581         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
2582         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
2583
2584 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2585
2586         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
2587         
2588         * diagnostic (vbuild_message_string, build_message_string,
2589         build_location_prefix, output_get_prefix, init_output_buffer,
2590         output_notice, vline_wrapper_message_with_location,
2591         v_message_with_decl, default_print_error_function): De-constify.
2592         (set_real_maximum_length): Prototype.
2593
2594         * diagnostic.h (struct output_buffer, init_output_buffer,
2595         output_get_prefix, output_set_prefix): De-constify.
2596
2597         * function.c (init_function_start): Constify.
2598
2599         * gensupport.c (remove_constraints, process_rtx): Prototype.
2600
2601         * gthr-posix.h: Indent uses of #pragma.
2602
2603         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
2604         Prototype.
2605
2606         * predict.c (find_expected_value): Delete prototype.
2607         (expected_value_to_br_prob): Initialize variable `ev_reg'.
2608
2609         * sbitmap.h (debug_sbitmap): Prototype.
2610
2611         * ssa.c (compute_coalesced_reg_partition): Prototype.
2612
2613         * stor-layout.c (debug_rli): Prototype.
2614
2615         * tree.h (round_down): Prototype.
2616         (init_function_start): Constify.
2617
2618 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
2619
2620         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
2621         (overly conservative).  Change extern inline wrappers to
2622         static inline, define them always, use PARAMS properly.
2623         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
2624         whitespace warnings for \f and \v at the beginning of a line.
2625
2626 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
2627
2628         * haifa-sched.c (schedule_insns): Free the flow edge list when it
2629         is no longer needed
2630
2631 2000-05-04  Bruce Korb  <bkorb@gnu.org>
2632
2633         * fixincl/inclhack.def: added broken_cabs -
2634         Remove `extern double cabs' declarations from math.h
2635         * fixincl/inclhack.sh: regen
2636         * fixincl/fixincl.x: regen
2637         * fixincl/fixincl.c: Remove BOGOSITY code
2638         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
2639
2640 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2641
2642         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
2643         MEM_ALIAS_SET.
2644         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
2645         when calling MEM_COPY_ATTRIBUTES.
2646         * emit-rtl.c (operand_subword, change_address): Likewise.
2647         * explow.c (stabilize): Likewise.
2648         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
2649         * integrate.c (copy_rtx_and_substitute): Likewise.
2650         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
2651         when calling MEM_COPY_ATTRIBUTES.
2652         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
2653         Likewise.
2654         * cse.c (gen_lowpart_if_possible): Likewise.
2655         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
2656         * optabs.c (gen_move_insn): Likewise.
2657         * recog.c (validate_replace_rtx_1): Likewise.
2658         * simplify-rtx.c (add_mem_for_addr): Likewise.
2659         * stmt.c (expand_anon_union_decl): Likewise.
2660         * config/arm/arm.md: Likewise.
2661         * config/h8300/h7300.c (fix_bit_operand): Likewise.
2662         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
2663         (block_move_no_loop, block_move_sequence): Likewise.
2664         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
2665         * config/alpha/alpha.c (get_aligned_mem): Likewise.
2666         Clear MEM_ALIAS_SET.
2667         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
2668         MEM_COPY_ATTRIBUTES.
2669
2670 2000-05-03  Robert Lipe <robertlipe@usa.net>
2671         
2672         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
2673         to suppress libgcc1.
2674         (i[34567]86-*-sco3.2v5*) Likewise.
2675         (i[34567]86-*-sco3.2v4*) Likewise.
2676         (i[34567]86-*-sco) Likewise.
2677         (i[34567]86-*-solaris2) Likewise.
2678         (i[34567]86-*-sysv5*) Likewise.
2679         (i[34567]86-*-sysv4*) Likewise.
2680         (i[34567]86-*-udk*) Likewise.
2681         (i[34567]86-*-sysv*) Likewise.
2682
2683 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2684
2685         * cpphash.h (U): New define, to correct type of string constants.
2686         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
2687         routines, to do casts when passing unsigned strings to libc.
2688         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
2689
2690         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
2691         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
2692         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
2693         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
2694         second argument an U_CHAR *.
2695
2696         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
2697         length field, clean up initializer.
2698         (ISTABLE): Add __extension__ to designated-
2699         initializers version.
2700         * cpplex.c (CHARTAB): Likewise.
2701
2702         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
2703         case so the file won't be empty.
2704
2705 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
2706
2707         * bb-reorder.c (struct reorder_block_def): Member succ removed.
2708         (REORDER_BLOCK_SUCC): Removed.
2709         (enum reorder_skip_type): Removed.
2710         (skip_insns_between_block): Renamed to skip_insns_after_block.
2711         Removed second argument. Removed dead code and cleaned up.
2712         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
2713         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
2714         second parameter to skip_insns_after_block.
2715
2716 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2717
2718         * tree.c (staticp, case LABEL_DECL): New case.
2719
2720 2000-05-03  Richard Henderson  <rth@cygnus.com>
2721
2722         * Makefile.in (start.encap): Do not depend on LIBGCC1.
2723
2724         * mklibgcc1.in: Fix typo last change.
2725
2726 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2727
2728         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
2729         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
2730         (GCC_CFLAGS): Use it.
2731         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
2732         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
2733         objc/Make-lang.in: Use it.
2734
2735 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
2736
2737         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
2738
2739 2000-05-03  Richard Henderson  <rth@cygnus.com>
2740
2741         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
2742         LIBGCC1 empty with libgcc1.null.
2743
2744 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
2745
2746         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
2747         change.
2748
2749 2000-05-03  Greg McGary  <gkm@gnu.org>
2750
2751         * tree.h (tree_common): Add bounded_flag member.  Remove
2752         inaccurate comment about number of remaining bits.
2753         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
2754         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
2755         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
2756         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
2757         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
2758         (TYPE_QUAL_BOUNDED): New constant.
2759         (TYPE_QUALS): Handle bounded qualifier.
2760         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
2761         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
2762         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
2763         TYPE_AMBIENT_BOUNDEDNESS): New macros.
2764         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
2765         (tree_type): Add pointer_depth member.  Remove
2766         inaccurate comment about number of remaining bits.
2767         (DECL_POINTER_DEPTH): Add macro.
2768         (tree_decl): Add pointer_depth member.
2769
2770 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
2771
2772         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
2773         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
2774         (lshrhi3_out): Likewise.
2775         (ashrsi3_out): bugfix in shift by 8.
2776         (test_hard_reg_class): New function.
2777         * config/avr/avr.md: Bugfix inside conditions in peepholes.
2778         (ashlhi3): removed define_expand of this pattern.
2779         (*ashlhi3_insn): renamed to ashlhi3.
2780         (ashlsi3): removed define_expand of this pattern.
2781         (*ashlsi3_insn): renamed to ashlsi3.
2782         (ashrqi3): removed define_expand of this pattern.
2783         (*ashrqi3_insn): renamed to ashrqi3.
2784         (ashrhi3): removed define_expand of this pattern.
2785         (*ashrhi3_insn): renamed to ashrhi3.
2786         (ashrsi3): removed define_expand of this pattern.
2787         (*ashrsi3_insn): renamed to ashrsi3.
2788         (lshrhi3): removed define_expand of this pattern.
2789         (*lshrhi3_insn): renamed to lshrhi3.
2790         (lshrsi3): removed define_expand of this pattern.
2791         (*lshrsi3_insn): renamed to lshrsi3.
2792
2793 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
2794
2795         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
2796         inclusion of "system.h".
2797
2798 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
2799
2800         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
2801         TREE_ASM_WRITTEN.
2802
2803 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
2804
2805         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
2806         if -mauto-pic is on.
2807         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
2808         -mconstant-gp is in effect and function-descriptors are being used
2809         to make indirect calls.
2810         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
2811         (MASK_AUTO_PIC): Ditto.
2812         (TARGET_CONST_GP): Ditto.
2813         (TARGET_AUTO_PIC): Ditto.
2814         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
2815         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
2816         -mno-pic is in effect.
2817         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
2818         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
2819         -mauto-pic is in effect.
2820         (gprel64_offset): New pattern.
2821         (load_gprel64): Ditto.
2822         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
2823         -mconstant-gp is in effect, no need to preserve gp around direct
2824         calls.
2825         (call_value): Ditto.
2826         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
2827         (FUNCTION_PROFILER): Define.
2828         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
2829         @fptr() directive when -mno-pic or -mauto-pic is in effect.
2830         (ASM_OUTPUT_DESTRUCTOR): Ditto.
2831
2832 2000-05-03  Richard Henderson  <rth@cygnus.com>
2833
2834         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
2835         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
2836         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
2837         (mklibgcc, libgcc.mk): New targets.
2838         (libgcc.a): Use libgcc.mk.
2839         (stmp-multilib): Likewise.
2840         (stmp-multilib-sub): Remove.
2841         (mostlyclean): Don't delete libgcc2 temp files.
2842         * configure.in (AC_PROG_CC_C_O): Add.
2843         (NO_MINUS_C_MINUS_O): Substitute it.
2844         (all_outputs): Add mklibgcc.
2845         * mklibgcc.in: New file.
2846
2847 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2848
2849         * cppexp.c (op_t): Make an int.
2850
2851         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
2852
2853         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
2854
2855         * gensupport.c (process_rtx): Fix macros used.
2856
2857 2000-05-03  Richard Henderson  <rth@cygnus.com>
2858
2859         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
2860         call-clobbered registers of a call.
2861
2862 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
2863
2864         * gensupport.c: New file.
2865         * gensupport.h: New file.
2866         * Makefile.in (HOST_RTL): Depend on gensupport.
2867         (gensupport.o) New rule.
2868         * genattr.c: Use gensupport for reading .md files.
2869         * genattrtab.c: Ditto. 
2870         * gencodes.c: Ditto. 
2871         * genconfig.c: Ditto. 
2872         * genemit.c: Ditto. 
2873         * genextract.c: Ditto. 
2874         * genflags.c: Ditto. 
2875         * genopinit.c: Ditto. 
2876         * genoutput.c: Ditto. 
2877         * genpeep.c: Ditto. 
2878         * genrecog.c: Ditto.
2879         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
2880         * md.texi (Insn Splitting): Document define_insn_and_split.
2881
2882 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
2883
2884         * flow.c (verify_flow_info): Added two more sanity checks. The
2885         first checks that the blocks are numbered consecutively. The second
2886         checks that n_basic_blocks is actually equal to the number of
2887         basic blocks in the insn chain.
2888
2889 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2890
2891         * cpplib.h: Add accessor macros for token lists.
2892         * cpplib.c, cpphash.c, cpplex.c: Use them.
2893
2894 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2895
2896         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
2897         memory usage if not in a function.
2898         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
2899         return address if static.
2900
2901 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2902
2903         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
2904         whether address may trap.
2905
2906 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
2907
2908         * bb-reorder (chain_reorder_blocks): Changed code to test for
2909         EDGE_FALLTHRU rather than making erroneous assumption that the
2910         first outgoing edge is the fall-through edge.
2911
2912 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
2913
2914         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new 
2915         ABI for varargs, across all MIPS. This is incompatible because the
2916         va_list (__builtin_va_list) structure is different, so a compilation
2917         unit passing a va_list and a compilation unit being passed one, should
2918         both be compiled with the same ABI. (The old structure had two 
2919         pointers, now it has three.)
2920
2921 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
2922
2923         * bb-reorder.c (struct reorder_block_def): Remove members end,
2924         block_begin, and block_end.
2925         (REORDER_BLOCK_OLD_END): Delete.
2926         (REORDER_BLOCK_BEGIN): Delete.
2927         (REORDER_BLOCK_END): Delete.
2928         (chain_reorder_blocks): Remove dead code.
2929
2930 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
2931
2932         * bb-reorder.c (remove_scope_notes): Check for both types of scope
2933         notes as the end of a basic block before deleting.
2934
2935 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
2936
2937         * final.c (final_start_function): Fix spelling of "necessary".
2938
2939 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
2940
2941         * toplev.c (debug_ignore_block): Return int.
2942         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
2943         * toplev.h, dwarf2out.h: Adjust.
2944         * emit-rtl.c (remove_unnecessary_notes): Test return value.
2945
2946         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
2947         * toplev.c, final.c, rtl.h: Adjust.
2948
2949 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2950
2951         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
2952         * configure.in: Look for makeinfo in the unified tree, then
2953         for a system makeinfo which is sufficiently new.
2954         * Makefile.in: If configure says makeinfo is too old, don't
2955         build or install Info documentation.
2956
2957 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2958
2959         * cpphash.c (collect_params): Fix off-by-one error.
2960         (dump_hash_helper): Dump all four macro nodetypes.
2961
2962 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
2963
2964         * cpphash.c (trad_stringify): Adjust p after stringification as
2965         well.
2966
2967 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2968
2969         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
2970         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
2971
2972         * cppfiles.c (file_cleanup): Delete.
2973         * cpphash.c (macro_cleanup): Delete.
2974         (collect_objlike_expansion, collect_funlike_expansion,
2975         macarg, scan_arguments): Remove CPP_POP case.
2976
2977         * cpplex.c (null_cleanup): Delete.
2978         (cpp_pop_buffer): Do the work that was done in the cleanups
2979         here.  Call _cpp_unwind_if_stack from here.
2980         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
2981         cpp_scan_buffer): Run until we see CPP_EOF and the top of
2982         stack is the buffer _below_ the one we stacked.
2983         (cpp_get_token): Always pop an exhausted buffer.  Return
2984         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
2985         * cpplib.c (skip_if_group): Don't call cpp_get_token to
2986         increment the line number.
2987         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
2988
2989         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
2990         we see CPP_EOF and the top of stack is the buffer _below_ the
2991         one we stacked.
2992         * scan-decls.c: Likewise.
2993
2994 2000-05-02  Andrew Haley  <aph@cygnus.com>
2995
2996         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
2997         where this function is called for the second time on a decl that
2998         has had its section info changed in such a way as to move it out
2999         of small data/bss.  
3000         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
3001
3002 2000-05-01  Richard Henderson  <rth@cygnus.com>
3003
3004         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
3005         the sequence we're moving, not to merge_bb->head.
3006
3007 2000-05-01  Richard Henderson  <rth@cygnus.com>
3008
3009         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
3010         reference to alpha/t-linux.
3011         (alpha*-*-linux-gnu*): Likewise.
3012         * configure: Rebuild.
3013
3014         * calls.c (expand_call): Don't emit reg notes for a sibcall.
3015
3016         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
3017         if not in SSA form.
3018
3019         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
3020
3021 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
3022
3023         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
3024         TREE_THIS_VOLATILE.
3025
3026 2000-05-01  Richard Henderson  <rth@cygnus.com>
3027
3028         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
3029         emit_conditional_move.
3030
3031 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
3032
3033         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
3034         as the dynamic linker.
3035
3036 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
3037
3038         * cppfiles.c (open_include_file): Open file in blocking mode.
3039         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
3040         Only exclude block devices and directories.
3041
3042         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
3043         static.  Allocate the hashnode and its string in the same
3044         block of memory.
3045         (del_HASHNODE): Don't free h->name.
3046         (_cpp_lookup): If there is no entry for this string, create
3047         one, of type T_VOID.
3048         (_cpp_lookup_slot): Delete.
3049         * cpphash.h: Update prototypes.
3050
3051         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
3052         not hp == NULL.
3053         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
3054         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
3055         node here, just fill in the value field properly.  "Delete"
3056         entries by setting the value field to T_VOID.  Check for
3057         hp->type == T_VOID, not hp == NULL.
3058
3059         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
3060         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
3061         hashtab.h.
3062
3063 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
3064
3065         * config/mn10300/mn10300.c (print_operand_address): Do not add
3066         zero to SP.
3067
3068         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
3069         adjusted by less than 256 bytes, use ret regardless of having any
3070         callee-saved register to restore.
3071
3072 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
3073
3074         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
3075
3076 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
3077
3078         * config/i386/djgpp.h (INT_ASM_OP): Define.
3079         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
3080         (ASM_WEAKEN_LABEL): Define.
3081         (MASK_BNU210): Define.
3082         (SUBTARGET_SWITCHES): Define.
3083         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
3084         (MAKE_DECL_ONE_ONLY): Define.
3085         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
3086
3087 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
3088
3089         * i386/cygwin.h (INT_ASM_OP): Define.
3090
3091 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
3092
3093         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
3094         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
3095
3096 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
3097
3098         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
3099         __tmp_reg__ and __zero_reg__ initialization.
3100
3101 2000-04-30  Richard Henderson  <rth@cygnus.com>
3102
3103         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
3104
3105         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
3106         referenced bewteen the condition and the jump.  Don't delete
3107         anything but the jump.
3108
3109 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
3110
3111         * bb-reorder.c (scope_def): New struct.
3112         (scope_forest_info): New struct.
3113         (struct reorder_block_def): New member "scope".
3114         (REORDER_BLOCK_SCOPE): New macro.
3115         (relate_bbs_with_scopes): New function and prototype.
3116         (make_new_scope): Likewise.
3117         (build_scope_forest): Likewise.
3118         (remove_scope_notes): Likewise.
3119         (insert_intra_1): Likewise.
3120         (insert_intra_bb_scope_notes): Likewise.
3121         (insert_inter_bb_scope_notes): Likewise.
3122         (rebuild_scope_notes): Likewise.
3123         (free_scope_forest_1): Likewise.
3124         (free_scope_forest): Likewise.
3125         (dump_scope_forest): Likewise.
3126         (dump_scope_forest_1): Likewise.
3127         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
3128         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
3129         block.
3130         (reorder_basic_blocks): Added calls to build_scope_scope_forest
3131         and remove_scope_notes before reordering is done. Added calls to
3132         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
3133         after reordering is done.
3134
3135 2000-40-30  Bruce Korb  <bkorb@gnu.org>
3136
3137         * fixinc/inclhack.def:  Added definitions needed by OSR5,
3138         removed two stale entries (defined away with OLD_CPP).
3139         * fixinc/inclhack.sh: regen
3140         * fixinc/fixincl.x: regen
3141
3142 2000-04-30  Richard Henderson  <rth@cygnus.com>
3143
3144         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
3145         from the last insn in the sequence.
3146
3147 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
3148
3149         * cpplex.c (cpp_idcmp): New function.
3150         * cpplib.h: Prototype it.
3151         * scan_decls.c (scan_decls): Use it to inspect token names.
3152         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
3153         the file being run through the preprocessor.
3154         (check_macro_names): Provide length of token to cpp_defined.
3155
3156         * Makefile.in: Remove stale warning message.
3157
3158         * cppfiles.c (redundant_include_p): Provide length of token to
3159         cpp_defined.
3160         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
3161         values are unsigned int.
3162         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
3163         (_cpp_lookup_slot): Do not calculate the hash, either.
3164         * cpphash.h: Update prototypes.
3165         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
3166         Hashes are unsigned int.  Calculate hash here, pass by value
3167         to _cpp_lookup_slot.
3168
3169 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
3170
3171         * simplify-rtx.c (check_value_useless): Delete function.
3172         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
3173         by hand.
3174         (cselib_invalidate_regno): Likewise.
3175         (cselib_invalidate_mem_1): Likewise.
3176         (references_value_p): Recognize useless values by the fact that they
3177         have no locations.
3178         (discard_useless_values): Likewise.
3179         (cselib_record_set): This may turn a useless value
3180         into a useful one.
3181
3182 2000-04-30  Richard Henderson  <rth@cygnus.com>
3183
3184         * config/d30v: New port.
3185
3186         * configure.in (d30v-*): Set fp format.
3187         * configure: Rebuild.
3188
3189 2000-04-30  Richard Henderson  <rth@cygnus.com>
3190
3191         * ifcvt.c: New file.
3192         * Makefile.in (OBJS): Add it.
3193         (ifcvt.o): New target.
3194         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
3195         and conditional arithmetic.
3196         (find_insert_position): Remove.
3197         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
3198         * toplev.c (DFI_ce, DFI_ce2): New.
3199         (dump_file): Add ce and ce2 dumps.
3200         (rest_of_compilation): Run if_convert a couple o times.  Set
3201         cse_not_expected after cse2.  Don't set no_new_pseudos until
3202         after sched1 or recompute_reg_usage.
3203
3204 2000-04-30  Richard Henderson  <rth@cygnus.com>
3205
3206         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
3207         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
3208
3209 2000-04-30  Richard Henderson  <rth@cygnus.com>
3210
3211         * flow.c (struct reg_cond_life_info): New.
3212         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
3213         (init_propagate_block_info): Initialize them.
3214         (free_propagate_block_info): Destruct them.
3215         (mark_set_1): Consider conditional life before killing a register.
3216         (mark_regno_cond_dead): New.
3217         (free_reg_cond_life_info): New.
3218         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
3219         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
3220         (mark_used_reg): Record conditional life.
3221
3222         * haifa-sched.c (schedule_insns): Disable death counting
3223         sanity check for HAVE_conditional_execution.
3224
3225 2000-04-30  Richard Henderson  <rth@cygnus.com>
3226
3227         * Makefile.in (TIMEVAR_H): New.
3228         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
3229         (timevar.h): Remove rule.
3230
3231 2000-04-29  Richard Henderson  <rth@cygnus.com>
3232
3233         * config/alpha/crtend.asm: Use C comments instead of #.
3234         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
3235
3236         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
3237
3238 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
3239
3240         * cpphash.h (enum node_type: Take out T_MCONST.
3241         (union hashval): Move into struct hashnode.
3242         (struct hashnode): Pack tighter.  Remove file, line, col
3243         members.
3244         * cpphash.c: Constify most of the macro-definition structures.
3245         (struct definition): Replace by struct object_defn
3246         and struct funct_defn.  Put file, line, column information
3247         here.  All users updated to match.
3248         (_cpp_create_definition, _cpp_macroexpand): Remove special
3249         case for #define WORD OTHERWORD.
3250         * cpplib.c (do_undef): Remove T_MCONST case.
3251
3252         * cpphash.h: Move struct reflist, struct definition, and the
3253         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
3254         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
3255         * cpphash.c (_cpp_free_definition): Free data pointed to by
3256         MCONST, XCONST, MACRO, and FMACRO nodes properly.
3257         (_cpp_create_definition, del_HASHNODE): Just call
3258         _cpp_free_definition to clear out a hashnode.
3259         * cpplib.c (do_pragma_poison): Likewise.
3260
3261 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
3262
3263         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
3264         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
3265         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
3266         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
3267         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
3268         REGNO_AM33_P): Redefine in terms of the new macros.
3269         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
3270         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
3271         STRUCT_VALUE): Likewise.
3272         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
3273         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
3274
3275 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3276
3277         * regmove.c (struct record_stack_memrefs_data): New.
3278         (record_stack_memrefs): New function.
3279         (combine_stack_adjustments_for_block): Use it.
3280
3281 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3282
3283         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
3284         use special_function_p to detect alloca.
3285
3286 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
3287
3288         * gcc.texi: Fixes for makeinfo 4.0 --html.
3289
3290 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
3291
3292         * pcp.h: Delete file.
3293
3294 2000-04-28  Kazu Hirata  <kazu@hxi.com>
3295
3296         * h8300.c (function_epilogue): Clean up flags when the last insn
3297         in a function is a barrier.
3298
3299 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
3300
3301         * configure.in (sparc-hal-solaris2*): protect [] glob from
3302         my expansion.
3303         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
3304         rather than hard-coded constants in target_cpu_default2.
3305         * configure: Regenerate.
3306
3307 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
3308
3309         * tree.c (get_callee_fndecl): Extract the initial value from
3310         a readonly decl.
3311
3312 2000-04-28  Richard Henderson  <rth@cygnus.com>
3313
3314         * varasm.c (record_constant_1): Record the CODE_LABEL when
3315         taking the address of a LABEL_REF.
3316
3317 2000-04-28  Richard Henderson  <rth@cygnus.com>
3318             Jan Hubicka  <jh@suse.cz>
3319
3320         * calls.c (combine_pending_stack_adjustment_and_call): Return the
3321         adjustment; don't do the stack adjust.
3322         (expand_call): Call compute_argument_block_size right before
3323         allocating the block; update comment; don't do alignment sanity
3324         checking for sibling call; use args_size instead of
3325         unadjusted_args_size before args_size is adjusted.  Use
3326         combine_pending_stack_adjustment_and_call to compute stack adjust
3327         for must_preallocate case.
3328
3329         * expr.c (push_block): Remove shadow `temp' in inner scope.
3330
3331 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
3332
3333         * toplev.c (rest_of_compilation): Call
3334         note_deferral_of_defined_inline_function even if the function
3335         can't be inlined.
3336
3337 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
3338
3339         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
3340
3341 2000-04-28  Richard Henderson  <rth@cygnus.com>
3342
3343         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
3344
3345 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3346
3347         * timevar.c (init_timevar): DeANSIfy function definition.
3348
3349 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
3350
3351         * Makefile.in (timevar.o): Depend on flags.h.
3352         * timevar.c (unused_stack_instances): New variable.
3353         (timevar_push): Take a timevar_stack_def from
3354         unused_stack_instances if available.
3355         (timevar_pop): Push the popped timevar_stack_def onto
3356         unused_stack_instances.
3357         (TIMEVAR_ENABLE): New macro.
3358         (timevar_def): Make standalone a 1-bit field.  Add field used.
3359         (get_time): Rename parameter to now.  Return after clearing it if
3360         not TIMEVAR_ENABLE.
3361         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
3362         (timevar_pop): Likewise.
3363         (timevar_stop): Likewise.
3364         (timevar_push): Likewise.  Mark the timing variable as used.
3365         (timevar_start): Likewise.
3366         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
3367         timevars that were never used.
3368
3369 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
3370
3371         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
3372         always TREE_READONLY.
3373
3374 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
3375
3376         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
3377         for call instruction with mode QImode.
3378
3379 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
3380
3381         * Makefile.in (OBJS): Add timevar.o.
3382         (toplev.o): Depend on timevar.h.
3383         (ggc-simple.o): Likewise.
3384         (ggc-page.o): Likewise.
3385         (timevar.o): New rule.
3386         (timevar.h): New rule.
3387
3388         * timevar.h: New file.
3389         * timevar.c: Likewise.
3390         * timevar.def: Likewise.
3391
3392         * toplev.h (gc_time, parse_time, varconst_time): Remove.
3393         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
3394         throughout.
3395         (TIMEVAR): Remove macro.
3396         (gc_time, parse_time, varconst_time, integration_time, jump_time,
3397         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
3398         flow_time, combine_time, regmove_time, sched_time,
3399         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
3400         sched2_time, dbr_sched_time, reorder_blocks_time,
3401         rename_registers_time, shorten_branch_time, stack_reg_time,
3402         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
3403         all_time): Remove.
3404         (compile_file): Don't initialize time variables.  Call
3405         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
3406         of many calls to print_time.
3407         (rest_of_compilation): Add timing for reload_cse_regs.
3408         (get_run_time): Removed to timevar.c.
3409         (print_time): Likewise.
3410         (get_run_time): Implement using TV_TOTAL time variable.
3411         (print_time): Get total run time from get_run_time.
3412         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
3413         computing elapsed time explicitly.
3414         * ggc-simple.c (ggc_collect): Likewise.
3415         (gc_time): Remove declaration.
3416
3417 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
3418
3419         * calls.c (combine_pending_stack_adjustment_and_call): New function.
3420         (expand_call): Use it.
3421
3422 2000-04-27  Jan Hubicka  <jh@suse.cz>
3423
3424         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
3425         fields.
3426
3427 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
3428
3429         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
3430         registers.
3431
3432 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3433
3434         * function.c (epilogue_done): Pass whole insn to record_insns.
3435
3436 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3437
3438         * cse.c (CSE_ADDRESS_COST): Remove.
3439         (find_best_addr): Add new parameter "MODE", use address_cost instead
3440         of CSE_ADDRESS_COST
3441         (address_cost): New.
3442         (fold_rtx): Update call of find_best_addr.
3443         * rtl.h (address_cost): Declare.
3444         * loop.c (general_induction_var): Add new parameter "MODE", use
3445         address_cost instead of ADDRESS_COST
3446         (init_loop): Use address_cost instead of ADDRESS_COST.
3447         (check_insn_for_givs): Update call of general_induction_var.
3448         (find_mem_givs): Likewise.
3449         (consec_sets_giv): Likewise.
3450         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
3451         * i386.c (ix86_address_cost): New.
3452         * i386-protos.h (ix86_address_cost): Declare.
3453
3454 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
3455
3456         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
3457         registers.
3458
3459 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3460
3461         * expr.c (store_expr): Use clear_storage instead of direct memset
3462         libcall.
3463
3464 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
3465
3466         * config/mn10300/mn10300.c (mn10300_address_cost): Test
3467         ASHIFT, AND and LABEL_REF.
3468
3469 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3470
3471         * invoke.texi (-foptimize-sibling-calls): Fix.
3472
3473 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3474
3475         * loop.c (load_mems)  Don't use hard registers for the hoisting.
3476
3477         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
3478         calculation; rename const_equiv array in the preconditioning code
3479         from loop_unroll to loop_unroll_precondition
3480
3481 2000-04-27  Richard Henderson  <rth@cygnus.com>
3482
3483         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
3484         add new_set.
3485         (propagate_one_insn): Clear it.  Don't update reg_live here.
3486         (init_propagate_block_info): Update for pbi member changes.
3487         (free_propagate_block_info): Likewise.
3488         (mark_set_1): Know that zero_extract, sign_extract, and
3489         strict_low_part don't kill their argument.  Alter hard subregs.
3490         Update new_set for non-CLOBBER sets.  Update reg_live.
3491         (find_auto_inc): Update reg_live, not new_dead.
3492         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
3493         to determine if the reg in question was set this insn.  Only update
3494         reg info with PROP_REG_INFO.
3495
3496 2000-04-26  Richard Henderson  <rth@cygnus.com>
3497
3498         * flow.c (allocate_reg_life_data): Set max_regno here ...
3499         (life_analysis): ... not here.
3500
3501         * flow.c (calculate_global_regs_live): Force stack pointer
3502         live at end.
3503
3504 2000-04-26  Richard Henderson  <rth@cygnus.com>
3505
3506         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
3507         commit change group changes.
3508         (invert_exp_1): Similarly.
3509         (redirect_exp, invert_exp): Use them.
3510         (redirect_jump_1): New.
3511         (invert_jump_1): New.
3512         (jump_optimize_1): Remove code subsumed by condexec.c.
3513         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
3514
3515 2000-04-26  Richard Henderson  <rth@cygnus.com>
3516
3517         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
3518
3519         * genconfig.c (main): Set all HAVE_foo to 1.
3520
3521         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
3522
3523 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
3524
3525         * invoke.texi: Document -fssa flag.
3526
3527 2000-04-26  Richard Henderson  <rth@cygnus.com>
3528
3529         * flow.c (count_reg_sets_1): Remove.
3530         (count_reg_sets, count_reg_references): Remove.
3531         (recompute_reg_usage): Implement with update_life_info.
3532         Reallocate life data.
3533
3534 2000-04-26  Richard Henderson  <rth@cygnus.com>
3535
3536         * flow.c (update_life_info): Consider blocks null to mean the
3537         universal set.
3538         (calculate_global_regs_live): Likewise.
3539         (life_analysis): Do that instead of collecting all_blocks.
3540
3541 2000-04-26  Richard Henderson  <rth@cygnus.com>
3542
3543         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
3544         a still-valid conditional jump.
3545
3546 2000-04-26  Richard Henderson  <rth@cygnus.com>
3547
3548         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
3549
3550         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
3551         * flow.c (calculate_loop_depth): Remove.
3552         * output.h (calculate_loop_depth): Don't declare.
3553         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
3554         inline; run estimate_probability at the same time.
3555
3556 2000-04-26  Neil Booth  <NeilB@earthling.net>
3557
3558         * cpplib.h: "~=" is not a single pp-token.
3559         * cpplex.c: Correct commentary.
3560
3561 2000-04-26  Richard Henderson  <rth@cygnus.com>
3562
3563         * flow.c (mark_set_1): New arguments code and flags; update all
3564         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
3565         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
3566         loop_depth when optimizing for size.  Do new_dead update after
3567         emitting REG_UNUSED notes.  Merge mark_set_reg code.
3568         (mark_set_reg): Remove.
3569         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
3570         arrange to not emit REG_UNUSED notes.
3571
3572 2000-04-26  Richard Henderson  <rth@cygnus.com>
3573
3574         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
3575         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
3576
3577 2000-04-26  Richard Henderson  <rth@cygnus.com>
3578
3579         * flow.c (propagate_one_insn): Break out from propagate_block.
3580         (init_propagate_block_info): Likewise.
3581         (free_propagate_block_info): Likewise.
3582         (propagate_block): Use them.  Export.
3583         * basic-block.h: Declare them all.
3584
3585 2000-04-26  Richard Henderson  <rth@cygnus.com>
3586
3587         * basic-block.h (life_analysis): Declare here ...
3588         * output.h: ... not here.
3589         * flow.c (life_analysis): Remove nregs parameter; replace
3590         remove_dead_code with flags.  Remove ssa dead code check.
3591         Only init alias analysis if we'll use it.
3592         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
3593         * ssa.c (convert_to_ssa): Likewise.
3594         (convert_from_ssa): Likewise.
3595         * toplev.c (rest_of_compilation): Likewise.
3596
3597 2000-04-26  Richard Henderson  <rth@cygnus.com>
3598
3599         * flow.c (flow_delete_block): Rename from delete_block.  Export.
3600         * basic-block.h (flow_delete_block): Declare.
3601
3602 2000-04-26  David S. Miller  <davem@redhat.com>
3603
3604         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
3605         taking a PATTERN of it.
3606
3607 2000-04-26  <NeilB@earthling.net>
3608
3609         * cpplex.c (spell_other, spell_char): Remove.
3610         (SPELL_CHAR): New.
3611         (token_spelling, trigraph_map): Use unsigned chars.
3612         (_cpp_lex_line): Tidy up the switch statement.
3613         * cpplib.h: Implement spell_char with spell_string.
3614         (C): New.
3615
3616 2000-04-26  <RodneyBrown@pmsc.com>
3617
3618         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3619         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3620
3621 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3622
3623         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
3624         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
3625         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
3626         dwarf2out_return_save, dwarf2out_return_reg,
3627         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
3628         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
3629         gen_compile_unit_die, dwarf2out_init): Constify a char*.
3630
3631         * dwarf2out.h (dwarf2out_init): Likewise.
3632
3633         * dwarfout.c (filename_entry, primary_filename, last_filename,
3634         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
3635
3636         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
3637         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
3638         dwarf2out_return_reg): Likewise.
3639
3640 2000-04-26  Andreas Jaeger  <aj@suse.de>
3641
3642         * extend.texi (Function Attributes): Fix description of pure
3643         attribute.
3644
3645 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3646
3647         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
3648         before calling rest_of_compilation.
3649
3650 2000-04-26  Andreas Jaeger  <aj@suse.de>
3651
3652         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
3653         last patch.
3654
3655 2000-04-25  Richard Henderson  <rth@cygnus.com>
3656
3657         * cse.c (cse_insn): Emit barrier after unconditional jump.
3658
3659         * calls.c (expand_call): Disable tail call generation once
3660         rtx_equal_function_value_matters is false.
3661
3662         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
3663         like EDGE_EH edges.
3664
3665 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
3666
3667         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
3668
3669         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
3670
3671         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
3672         is the primary DIE for a member function.
3673         (gen_decl_die): Call set_decl_origin_self here.
3674         * dwarfout.c (output_decl): And here.
3675         * integrate.c (output_inline_function): Not here.
3676         Don't clear DECL_INLINE until after calling rest_of_compilation.
3677         (set_decl_origin_self): No longer static.
3678         * tree.h: Add prototype.
3679         * toplev.c (note_deferral_of_defined_inline_function): Only write
3680         out abstract instance for actual inlines.
3681
3682 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
3683
3684         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
3685         EXTENDED_REGS only if TARGET_AM33.
3686         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
3687         SP_REGS to register allocation and reloading unless absolutely
3688         necessary.
3689         (movsi3): Remove special-case of adding non-constants to SP.
3690
3691 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3692
3693         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
3694         INCLUDES to search and does not provide any of its own.  Also it
3695         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
3696         parameters.  Also it does not call AC_DEFINE.
3697         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
3698         AC_DEFINE and provides for automatic entries for autoheader.
3699         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
3700
3701         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
3702         so we can pass -I flags and include gansidecl.h/system.h in this
3703         test.
3704
3705         * acconfig.h: Delete all NEED_DECLARATION_* entries.
3706
3707 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3708
3709         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3710         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3711         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
3712
3713         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3714         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3715         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
3716         for these macros.  Clean up spacing and linewraps.
3717
3718 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3719
3720         * calls.c (expand_call): Use get_callee_fndecl.
3721
3722         * print-tree.c (print_node): Print the chain of an _EXPR.
3723
3724 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
3725                           Jim Wilson  <wilson@cygnus.com>
3726                           Andrew Haley  <aph@cygnus.com>
3727
3728         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
3729         and gp save/restore problems.
3730         * config/ia64/crtend.asm: Add IA-64 unwind support.
3731         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
3732         in fr_pad_size calculation.
3733         (save_restore_insns): Move PR save area.  Correct uses of
3734         RTX_FRAME_RELATED_P.
3735         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
3736         (ia64_expand_epilogue): Add eh_epilogue support.
3737         (ia64_function_prologue): Emit .prologue directive.
3738         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
3739         (ia64_override_options): Set init_machine_status and
3740         mark_machine_status.
3741         (rtx_needs_barrier): Handle bsp reads and writes.
3742         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
3743         New static variables.
3744         (process_set, process_for_unwind_directive): New functions.
3745         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
3746         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
3747         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
3748         macros.
3749         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
3750         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
3751         (struct machine_function): Define.
3752         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
3753
3754 2000-04-25  Bruce Korb  <bkorb@gnu.org>
3755
3756         * fixinc/Makefile.in: make the removal of old programs more
3757         robust
3758         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
3759         install-bin and install-sh
3760
3761 2000-04-25  Nick Clifton  <nickc@cygnus.com>
3762
3763         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
3764         defined, define to return zero.
3765         (function_cannot_inline_p): If a function has any target
3766         specific attributes, then use the macro
3767         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
3768         whether it can be inlined.  If it cannot, issue a suitable
3769         explanation.
3770
3771         * tm.texi: Add a new node 'Inlining' to document the new macro
3772         FUNCTION_ATTRIBUTE_INLINABLE_P.
3773
3774 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
3775
3776         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
3777         commentary.
3778
3779 2000-04-25  Neil Booth  <NeilB@earthling.net>
3780
3781         Restore previous patch, plus the following fixes:
3782
3783         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
3784         flags, not CPP_OPEN_PAREN.
3785         * cpplex.c (expand_token_space, init_token_list,
3786         cpp_free_token_list): Put the dummy token at list->tokens[-1].
3787         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
3788
3789 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3790
3791         * config/i386/freebsd.h (INT_ASM_OP): Define.
3792
3793 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3794
3795         * loop.c (strength_reduce): Fix typo in the last checkin.
3796
3797 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3798
3799         * stor-layout.c (finalize_record_size): Simplify to use existing
3800         functions.
3801         (compute_record_mode): No longer static.
3802         * tree.h (compute_record_mode): New declaration.
3803
3804 2000-04-25  Neil Booth  <NeilB@earthling.net>
3805
3806         * Revert my patch below until cause of build failures
3807         determined.
3808
3809 2000-04-25  Richard Henderson  <rth@cygnus.com>
3810
3811         * combine.c (combine_instructions): Add missing argument
3812         to try_combine.
3813
3814         * toplev.c (rest_of_compilation): Delay sibcall optimization
3815         until after emit_eh_context.
3816
3817 2000-04-24  Nick Clifton  <nickc@redhat.com>
3818
3819         * combine.c (combine_instructions): Do not try to combine a
3820         sequence of insns when the second insn has been replaced by a
3821         note.
3822
3823 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
3824
3825         * gcc.c (load_specs): New static function.
3826         (read_specs): Use it.
3827
3828         * gcc.c (lookup_compiler): Make multiple passes for case
3829         insensitive filesystems.
3830
3831 2000-04-24  Neil Booth  <NeilB@earthling.net>
3832
3833         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
3834         * cpphash.h (_cpp_check_directive): new.
3835         * cpplex.c (handle_newline, cpp_free_token_list,
3836         init_trigraph_map, trigraph_ok, trigraph_replace,
3837         backslash_start, skip_block_comment, skip_line_comment,
3838         skip_whitespace, parse_name, parse_number, parse_string,
3839         copy_comment, _cpp_lex_line, spell_char, spell_string,
3840         spell_comment, spell_name, spell_other, _cpp_lex_file,
3841         _cpp_output_list): new.
3842         (expand_name_space): take length argument.
3843         (init_token_list): add comment list initialisation.
3844         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
3845         instead of HSPACE_BEFORE.
3846
3847         * cpplib.c (_cpp_check_directive): new
3848         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
3849         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
3850         (HSPACE_BEFORE): delete.
3851         (TTYPE_TABLE): rearrange.
3852         (struct cpp_toklist): update.
3853
3854 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3855
3856         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
3857         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
3858         argument form of AC_DEFINE.
3859
3860         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
3861         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
3862         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
3863         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
3864         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
3865
3866         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
3867
3868 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3869
3870         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
3871         deduced.h): Use -isystem, not -I, for including system headers.
3872
3873 2000-04-24  Nick Clifton  <nickc@cygnus.com>
3874
3875         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
3876         the source register is the frame pointer or arg pointer.
3877         (addsi3_small_int): Disallow if source register is the frame
3878         pointer or arg pointer.
3879
3880 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3881
3882         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
3883         call to AC_MSG_RESULT.
3884
3885 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3886
3887         * invoke.texi: Correct grammatical errors, document
3888         -fno-gnu-keywords as identical to -fno-asm for C++.
3889
3890 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3891
3892         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
3893         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
3894         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
3895         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
3896         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
3897
3898         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
3899         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
3900         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
3901         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
3902         new macros names.
3903
3904 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
3905
3906         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
3907         (pop_alignment): Likewise.
3908         (handle_pragma_token): Likewise.
3909
3910 2000-04-24  Robert Lipe <robertlipe@usa.net>
3911
3912         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
3913
3914 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
3915
3916         * combine.c (try_combine): Update reg_nonzero_bits of
3917         newi2pat before newpat.
3918
3919 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3920
3921         * loop.c (strength_reduce): Simplify test to INSN_P.
3922         (record_giv): Attempt to simplify the add value, use CONSTANT_P
3923         expressions instead of CONST_INT.
3924         (express_from_1): Likewise.
3925
3926 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
3927
3928         * regs.h (reg_n_max): Don't declare.
3929         * flow.c (reg_n_max): Don't define.
3930         * regclass.c (renumber): Don't initialize to zero.
3931         (regno_allocated): Likewise.
3932         (reg_n_max): Define.
3933         (allocate_reg_info): Don't initialize unnecessarily.
3934
3935 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
3936
3937         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
3938         and blockage_p in the newly allocated attribute.
3939
3940 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
3941
3942         * config/mn10300/mn10300.md (addsi): `inc4' on address
3943         registers does not modify cc, but `inc' on an extended
3944         register does.
3945
3946 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
3947
3948         * reload.c (find_equiv_reg): Checks all valueno regs
3949         as a reload_reg_p regs.
3950
3951 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
3952
3953         * cpphash.c (collect_objlike_expansion): Add sanity check.
3954         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
3955         the buffer is the empty string, return.  Mark __DATE__ and
3956         __TIME__ as XCONST nodes, not MCONST.
3957         (_cpp_macroexpand): Avoid pushing an empty buffer.
3958         (funlike_macroexpand): Don't pop token_buffer here.
3959
3960 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
3961
3962         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
3963         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
3964         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
3965         (REGNO_OK_FOR_BASE_P): Define in terms of them.
3966         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
3967         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
3968         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
3969
3970 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3971
3972         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
3973         constant MULT givs.
3974
3975 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
3976
3977         * cpphash.h (struct definition): Move file, line, col members...
3978         (struct hashnode): ... here.  Also add 'disabled' flag.
3979         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
3980         T_IDENTITY.  Remove T_DISABLED.
3981         Update prototypes.
3982
3983         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
3984         (collect_expansion): Split into collect_objlike_expansion and
3985         collect_funlike_expansion.
3986         (_cpp_macroexpand): Split out scan_arguments, stringify, and
3987         funlike_macroexpand.
3988         (_cpp_compare_defs): Rename compare_defs, make static.
3989         (_cpp_make_hashnode): Initialize hp->disabled.
3990         (macro_cleanup): Adjust for new token types.  Clear
3991         m->disabled.
3992         (_cpp_create_definition): Move code here to determine what
3993         sort of macro it is, and code to check for redefinitions, from
3994         do_define.  Implement a few simple cases without creating a
3995         full DEFINITION.
3996         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
3997         Handle the simple cases.
3998         (push_macro_expansion): Set buf->has_escapes and hp->disabled
3999         here.
4000
4001         * cppinit.c (builtin_array): Change MCONST to XCONST
4002         everywhere.
4003         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
4004         fix check for disabled and function-like macros.
4005         * cpplib.c (do_define): Move most logic to
4006         _cpp_create_definition.
4007         (do_undef): Handle new special token types.
4008
4009 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4010
4011         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
4012         of CONSTANT_P for mult_val; always use validate_change to update insn.
4013
4014 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
4015
4016         * cpphash.c (trad_stringify, add_pat): New functions.
4017         (collect_expansion): Restore support for -traditional syntax.
4018         Use trad_stringify and add_pat.
4019         (_cpp_macroexpand): Restore support for -traditional semantics.
4020         * cpplex.c (_cpp_scan_line): Don't change space_before if we
4021         get a COMMENT token.
4022         (_cpp_lex_token): Provide COMMENT tokens to caller if
4023         traditional and parsing_define_directive.
4024         (skip_comment): Warn about // comments if -Wtraditional.
4025         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
4026         proper node type.
4027         (do_undef): Don't warn about undefining EMPTY nodes.
4028
4029 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4030
4031         * loop.c (strength_reduce): Fix biv removal code.
4032
4033 2000-04-22  Richard Henderson  <rth@cygnus.com>
4034
4035         * predict.c (estimate_probability): Examine both sides of
4036         a branch for no exits.  Use 90% not 50% for predict taken.
4037         Reorg for one copy of note generation code.
4038
4039 2000-04-22  Richard Henderson  <rth@cygnus.com>
4040
4041         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
4042
4043 2000-04-22  Richard Henderson  <rth@cygnus.com>
4044
4045         * diagnostic.c (init_output_buffer): Don't initialize format_args.
4046         (output_clear): Likewise.
4047         (output_printf): Use va_copy.
4048         (vline_wrapper_message_with_location): Likewise.
4049         (v_message_with_decl): Likewise.
4050         (line_wrapper_printf): VA_START infor buffer.format_args directly.
4051         * system.h (va_copy): Provide default implementation.
4052
4053 2000-04-22  Richard Henderson  <rth@cygnus.com>
4054
4055         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
4056         the collected condition is not a constant.
4057
4058 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
4059
4060         * diagnostic.h: New file.
4061
4062         * Makefile.in (diagnostic.o): Depends on diagnostic.h
4063
4064         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
4065         various function prototypes.
4066         (diagnostic.h): #include.
4067         (struct output_buffer): Move into diagnostic.h.
4068         (get_output_prefix): Rename to output_get_prefix.  Export.
4069         (init_output_buffer): Export. Break out.  Ajust intialization.
4070         (output_space_left, output_append): Export.
4071         (output_newline): Rename to output_add_newline.  Export.
4072         (output_clear): Nullify additional output_buffer fields.
4073         (output_puts): Rename to output_add_string.  Export.
4074         (dump_output): Rename to output_flush_on.  Export.
4075         (build_location_prefix): Constify return-type.
4076         (emit_output_prefix): Rename to output_emit_prefix. Export.
4077         (set_real_maximum_length): New function.
4078         (output_set_maximum_length): Ditto
4079         (output_clear): Ditto.
4080         (output_add_character): Ditto.
4081         (output_add_integer): Ditto.
4082         (output_add_space): Ditto.
4083         (output_format): Ditto.
4084         (output_printf): Adjust buffer initialization.
4085         (vline_wrapper_message_with_location): Ditto.
4086         (v_message_with_decl): Ditto.  Adjust call to output_puts
4087         and get_output_prefix.
4088         (default_print_error_function): Adjust buffer intialization.
4089
4090 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4091
4092         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
4093         of VOID_TYPE.
4094
4095 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
4096
4097         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
4098         of explicit 0.
4099
4100 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
4101
4102         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
4103         accurate data about SP moves.
4104
4105 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
4106
4107         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
4108         aliases to AM33 registers.
4109
4110 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
4111
4112         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
4113         to all EXTENDED bitmaps.
4114
4115 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
4116
4117         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
4118         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
4119         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
4120
4121 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
4122
4123         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
4124         the operand is not constant.
4125
4126 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
4127
4128         * reload.c (find_equiv_reg): Checks all valueno and regno regs
4129         as a call-clobbered regs.
4130
4131 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4132
4133         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
4134         * rtl.h: Likewise.
4135         * rtl.def: Update comment.
4136         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
4137         * integrate.c (expand_inline_function): Likewise.
4138         * profile.c (branch_prob): Likewise.
4139         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
4140         * print-rtl.c (print_rtx): Likewise.
4141         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
4142         (reemit_notes): Likewise; also use enum insn_note.
4143
4144         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
4145         (place_field): Properly compute know and actual alignment.
4146
4147         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
4148         in proper format.
4149
4150         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
4151         note for REG1.
4152
4153 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
4154
4155         * cpphash.c (struct arg, struct arglist): Const-ify strings.
4156         (warn_trad_stringify, duplicate_arg_p): New helper functions.
4157         (collect_expansion): Rewrite to scan over a token list.
4158         Remove -traditional support.
4159         (collect_formal_parameters): Rename to collect_params; rewrite
4160         to scan over a token list.
4161         (_cpp_create_definition): Adjust to scan a token list.
4162         (_cpp_macroexpand): Remove -traditional support.
4163         (_cpp_compare_defs): Whitespace is now canonicalized.
4164         (comp_def_part): Delete function.
4165
4166         * cpphash.h: Update prototypes.
4167         * cpplex.c (init_token_list): Don't set lineno if there is no
4168         buffer.
4169         (pedantic_whitespace): New function.
4170         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
4171         consume a newline.  Use pedantic_whitespace.
4172         (_cpp_lex_token): Remove support for -traditional macros.
4173         (_cpp_get_define_token): Delete.
4174         (_cpp_get_directive_token): Do the real work here.  Use
4175         pedantic_whitespace.
4176         (_cpp_init_input_buffer): Initialize pfile->directbuf.
4177
4178         * cpplib.c (get_macro_name): Delete.
4179         (do_define): Read the entire line into pfile->directbuf, then
4180         feed the token list to _cpp_create_definition.
4181         * cpplib.h (HSPACE_BEFORE): new define.
4182         (struct cpp_reader): Add a toklist member, "directbuf".
4183
4184         * predict.c (estimate_probability): New heuristic: if a jump
4185         branches around a block with no successors, predict it taken.
4186         Disentangle control flow.
4187
4188 2000-04-20  Richard Henderson  <rth@cygnus.com>
4189
4190         * loop.c (emit_iv_add_mult): Revert last change.
4191
4192 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
4193
4194         * cpplib.h (enum cpp_ttype): Add token types for all
4195         punctuators.  Distinguish pp-numbers from valid C numbers.
4196         Give some tokens better names.  Initialize from macro.
4197         (struct cpp_name, cpp_token, cpp_toklist): New data
4198         structures.
4199         Update prototypes.
4200         * cpplex.c (bump_column, expand_name_space,
4201         expand_token_space, init_token_list, cpp_output_list,
4202         _cpp_scan_line):  New functions.
4203         (output_line_command): Add third argument, new line number.
4204         * cpphash.h: Update prototypes.
4205         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
4206         token names.
4207
4208 2000-04-20  Richard Henderson  <rth@cygnus.com>
4209
4210         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
4211
4212 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
4213
4214         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
4215         object pointed to.
4216
4217 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4218
4219         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
4220         REG_EQUAL note explaining the calculated value.
4221
4222         * calls.c (expand_call): Avoid unnecesary precalculation
4223         and outgoing parameters space guarding for sibling calls.
4224         (store_one_arg): Likewise.
4225
4226 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4227
4228         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
4229         (rest_of_compilation): Write sibling dump file and account
4230         for time as jump time.
4231         * invoke.texi: Update documentation on dump flags.
4232
4233 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
4234
4235         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
4236
4237 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
4238
4239         * cpphash.c (special_symbol): Represent an empty macro with
4240         "\r \r " not just "\r ".
4241         (_cpp_macroexpand): Correct condition for the foo ( ) special
4242         case.
4243         (unsafe_chars): Handle EOF as second argument.
4244         (push_macro_expansion): Simplify test for removing escape at
4245         end.  Do not trim both escapes if there is no text in between.
4246
4247 2000-04-19  Jim Blandy  <jimb@redhat.com>
4248
4249         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
4250         of PTR_SIZE, when appropriate.
4251
4252 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
4253
4254         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
4255         (USE_ENUM_BITFIELDS): Fix typo.
4256
4257 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4258
4259         * stor-layout.c (place_field): Set rli->offset_align properly.
4260
4261 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4262
4263         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
4264         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
4265         PARM_BOUNDARY): Remove unnecessary casts.
4266
4267 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4268
4269         * calls.c (precompute_arguments): Remove must_preallocate and
4270         args_size calls.
4271         (expand_call): Update call of precompute_arguments.
4272
4273         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
4274         check_insn_for_givs): Break out from ...
4275         (strength_reduce) ... here; use for_every_insn_in_loop to call
4276         check_insn_for_givs.
4277         * loop.h (for_every_insn_in_loop): Declare.
4278         (loop_insn_callback): New type.
4279
4280 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
4281
4282         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
4283         not nul-terminated.
4284
4285 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
4286
4287         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
4288         flag_pic and RELOC.
4289
4290 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
4291
4292         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
4293
4294         * configure.in: Delete --disable-cpplib option and all
4295         references to cpp_main.
4296         * configure: Regenerate.
4297         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
4298         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
4299         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
4300         cpp$(exeext).  Add --no-headers to makeinfo command line when
4301         generating INSTALL.  Install and uninstall cpp.1 manpage, not
4302         cccp.1.
4303         * install.texi: Delete all references to cexp.y/cexp.c.
4304         Delete ancient instructions for compiling GCC on 3b1.
4305         * INSTALL: Regenerate.
4306
4307         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
4308         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
4309         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
4310         cexp.c/cexp.y.
4311         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
4312         which is no longer tested anywhere.
4313
4314         * cppinit.c (handle_option): Don't run error message through
4315         gettext twice.
4316
4317 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4318
4319         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
4320         * cpperror.c (hashtab.h): Now include.
4321         * cppexp.c (hashtab.h): Likewise.
4322         * cpplex.c (hashtab.h): Likewise.
4323         * cppfiles.c (hashtab.h): Likewise.
4324         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
4325         to htab_find_slot_with_hash.
4326         * cpphash.c (hashtab.h): Now include.
4327         (_cpp_lookup_slot): INSERT is now enum insert_option.
4328         * cpphash.h (_cpp_lookup_slot): Likewise.
4329         * cppinit.c (hashtab.h): Include earlier.
4330         (initialize_builtins): Pass enum to htab_find_slot.
4331         * cpplib.c (hashtab.h): Now include.
4332         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
4333         (do_pragma_poison, do_assert): Likewise.
4334         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
4335         htab_find_slot_with_hash.
4336         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
4337         * tree.c (type_hash_add): Likewise.
4338         (build1): Minor cleanup.
4339
4340         * ggc-common.c: Add missing blanks.
4341         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
4342         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
4343
4344         * stmt.c (mark_case_node): New function.
4345         (mark_case_nesting): Call it.
4346
4347         * expmed.c (emit_store_flag): If comparing two-word integer
4348         with zero, can optimize NE, EQ, GE, and LT.
4349
4350         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
4351         * conflict.c: Minor cleanups.
4352         * optabs.c: Add blank line
4353         * simplify-rtx.c: Minor cleanups.
4354
4355 2000-04-18  Stan Cox  <scox@cygnus.com>
4356
4357         * gengenrtl.c (genlegend): Fix misspelling.
4358
4359 2000-04-18  Robert Lipe  <robertlipe@usa.net>
4360
4361         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
4362         bitfields of the host compiler are not signed quantities.
4363         * config.in: Regenerate.
4364         * configure: Regenerate.
4365         * system.h (USE_ENUM_BITFIELDS): Added.
4366         (ENUM_BITFIELDS): Added.
4367         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
4368         (SHORT_ENUM_BUG): Deleted.
4369         * tree.h (tree_common): Members `code', `mode', `built_in_class',
4370         now ENUM_BITFIELD.
4371         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
4372         (CODE_FIELD_BUG): Likewise.
4373         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
4374         (OLD_CC): Likewise.
4375         * config/m68k/x-ccur (X_CFLAGS): Likewise.
4376
4377 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
4378
4379         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
4380         mark is active.
4381
4382 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4383
4384         * cppexp.c (lex): Don't assume tokens are NUL terminated.
4385         * cpplib.c (do_include, do_import, do_include_next,
4386         read_line_number, detect_if_not_defined): Likewise.
4387         * cpphash.c (collect_expansion): Likewise.
4388         (special_symbol, _cpp_macroexpand): Check return from
4389         cpp_file_buffer.
4390         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
4391         macros.  Delete all uses.
4392
4393         * gcc.dg/cpp-mi.c: Add two more test cases.
4394         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
4395
4396 2000-04-17  Richard Henderson  <rth@cygnus.com>
4397
4398         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
4399         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
4400
4401 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
4402
4403         * function.c (expand_function_start): Use hard_function_value to
4404         compute the RTL to use for DECL_RESULT.
4405
4406 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4407
4408         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
4409         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4410          x86_memory_mismatch_stall): New global variables.
4411         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
4412         alloved; fix load penalties for Athlon.
4413         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4414         x86_memory_mismatch_stall): Declare.
4415         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
4416          TARGET_MEMORY_MISMATCH_STALL): New.
4417         * i386.md (athlon scheduling parameters): Fix latencies according to
4418         Athlon Optimization Manual.
4419         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
4420         vector.
4421         (fsqrt instruction patterns): Set athlon_decode to direct.
4422         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
4423         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
4424         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
4425         and TARGET_PARTIAL_REGISTER_STALL machines.
4426         (pushdf_nointeger): New pattern.
4427         (pushdf_integer): Rename from pushdf.
4428         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
4429         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
4430
4431 2000-04-17  Richard Henderson  <rth@cygnus.com>
4432
4433         * loop.c (canonicalize_condition): Add WANT_REG argument.
4434         Stop the search if we match it.
4435         * expr.h (canonicalize_condition): Update decl.
4436         * predict.c (expected_value_to_br_prob): Use it.  Track last
4437         expected value note.
4438         (find_expected_value): Remove.
4439
4440         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
4441
4442 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4443
4444         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
4445         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
4446         a plain file.
4447         * configure.in: Call AC_FUNC_MMAP_FILE.
4448         * configure: Regenerate.
4449         * config.in: Regenerate.
4450
4451         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
4452         * fixinc/fixincl.c: Likewise.
4453
4454 2000-04-17  Richard Henderson  <rth@cygnus.com>
4455
4456         * builtins.c (expand_builtin_expect): New.
4457         (expand_builtin): Call it.
4458         * builtins.def (BUILT_IN_EXPECT): New.
4459         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
4460         * extend.texi: Document it.
4461
4462         * predict.c (expected_value_to_br_prob): New.
4463         (find_expected_value): New.
4464         * basic-block.h (expected_value_to_br_prob): Declare.
4465         * toplev.c (rest_of_compilation): Invoke it.
4466
4467         * rtl.h (NOTE_EXPECTED_VALUE): New.
4468         (NOTE_INSN_EXPECTED_VALUE): New.
4469         * rtl.c (note_insn_name): Update.
4470         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
4471         cases; handle NOTE_INSN_EXPECTED_VALUE.
4472
4473 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
4474
4475         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
4476         leaf sibcall delay slot if flag_pic.
4477         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
4478
4479 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4480
4481         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
4482
4483         * fixproto: If fix-header fails, exit with an error.
4484
4485 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4486
4487         * cse.c (struct check_depdendence_data): New.
4488         (check_dependence): New function.
4489         (invalidate): Use check_depdenence.
4490
4491 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4492
4493         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
4494         UNITS_PER_WORD is unsigned.
4495
4496         * tree.h (struct tree_common): Remove misleading comment.
4497
4498 2000-04-16  Dave Pitts  <dpitts@cozx.com>
4499
4500         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
4501         message in quotes. Otherwise, IBM's make program treats the '#' as the
4502         start of a comment and ignores the remainder of the line.
4503
4504         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
4505         upper case.
4506         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
4507         * cexp.y (initialize_random_junk): Likewise.
4508         * cppfiles.c (find_include_file): Cast alloca return value.
4509         * cppinit.c (initialize_standard_includes): Likewise.
4510         * cpplib.c (cpp_define, cpp_undef): Likewise.
4511         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
4512         * final.c (output_asm_insn): Allow for holes in EBCDIC.
4513         * fold-const.c (CHARMASK): New.
4514         (real_hex_to_f): Use it.
4515         * real.c (CHARMASK): New.
4516         (etoasc, asctoeg): Use it.
4517         (asctoeg): EBCDIC lower case characters preceed upper case.
4518
4519         * i370.c (mvs_add_label): Change spacing for coding conventions.
4520         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
4521         outputing case vectors.
4522         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
4523         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
4524         since vector in in the data CSECT.
4525         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
4526         * i370.md (Many patterns): Put the length in the XL directives.
4527         (movdi): Put back STM and MVC in definition.
4528         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
4529         pattern using the TCA.
4530         * oe.h (CPP_SPEC): Added to allow trigraphs.
4531         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
4532         not support the "long long" type.
4533
4534 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4535
4536         * config/mips/mips-protos.h (mips_legitimate_address_p): New
4537         function.
4538         (mips_reg_mode_ok_for_base_p): Likewise.
4539         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
4540         (REG_OK_FOR_INDEX_P): Define unconditionally.
4541         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
4542         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
4543         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
4544         that GET_MODE_SIZE is unsigned.
4545         (mips_reg_mode_ok_for_base_p): Define.
4546         (mips_legitimate_address_p): Likewise.  Adjust now
4547         that GET_MODE_SIZE is unsigned.
4548         (block_move_loop): Make the number of bytes unsigned.
4549         (expand_block_move): Likewise.
4550         (function_arg): Make the loop counter unsigned to match the
4551         boundary condition.
4552
4553 2000-04-16  Richard Henderson  <rth@cygnus.com>
4554
4555         * rtl.h (enum insn_note): New enumeration.  Subsume
4556         NOTE_INSN_DELETED and friends.
4557         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
4558         * rtl.c (note_insn_name): Tweak string order.
4559
4560 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
4561
4562         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
4563         to offset * 2.
4564
4565         * cpplex.c (output_line_command): Remove debugging prints.
4566         (cpp_output_tokens): Don't write out a zero-length buffer or
4567         try to see if it has a newline in it.
4568         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
4569         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
4570         the end of the loop.  Use memmove.  Don't read past the end of
4571         the buffer.  Remove trailing newlines from error messages.
4572
4573 2004-04-16  Neil Booth  <NeilB@earthling.net>
4574
4575         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
4576         * cpplib.c: Add new syntax flags to directive table, and
4577         supporting macros.
4578
4579 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
4580
4581         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
4582         using ret $N.
4583
4584 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
4585
4586         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
4587         * haifa-sched.c: Update -fsched-verbose comments to use "=".
4588
4589 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4590
4591         * Makefile.in (ggc-page.o): Now includes toplev.h.
4592         * ggc-page.c (toplev.h): Now included.
4593         (gc_time): Remove declaration.
4594         (ggc_collect): TIME now long.
4595         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
4596         others static.
4597         * toplev.h (gc_time, parse_time, gc_time): New declarations.
4598
4599         * toplev.c: Make *_time variable long to reduce chance of overflow.
4600         (TIMEVAR): Likewise for `otime'.
4601         (print_time): Arg is now long; compute percentage in FP and round.
4602         * toplev.h (print_time): Arg is long.
4603
4604         * tree.c: Minor whitespace changes.
4605
4606         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
4607         * configure: Rebuilt.
4608         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
4609         (__fixunsxfDI): Renamed from __fixunsxfdi.
4610         (__fixunsdfDI): Renamed from __fixunsdfdi.
4611         (__fixunssfDI): Renamed from __fixunssfdi.
4612         (__floatdisf): Use proper type in REP_BIT macro.
4613         (__fixunsxfSI): Renamed from __fixunsxfsi.
4614         (__fixunsdfSI): Renamed from __fixunsdfsi.
4615         (__fixunssfSI): Renamed from __fixunssfsi.
4616         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
4617         Change location of macros and upper-case some names as above.
4618         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
4619         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
4620
4621         * varasm.c (assemble_variable): Add cast to remove warning.
4622         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
4623
4624         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
4625         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
4626         region number to -1.
4627
4628 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
4629
4630         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
4631         call unshare_all_rtl.
4632
4633         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
4634
4635 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
4636
4637         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
4638         Use .s1 not .s0 for all FP instructions.
4639
4640 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
4641
4642         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
4643         interfaces.
4644         (safe_fwrite, output_line_command): New static functions.
4645         (cpp_expand_to_buffer): Now private to cpplib.
4646         (cpp_scan_buffer): Take a printer.
4647
4648         * cpphash.h: Update prototypes.
4649         * cpplib.h: Update prototypes.
4650         (cpp_printer): New.
4651         (cpp_buffer): Remove last_nominal_fname.
4652         (cpp_reader): Remove lineno.
4653
4654         * cppmain.c: Use a cpp_printer.
4655         * fix-header.c: No need to inhibit line commands.  Call
4656         cpp_start_read with no printer.
4657
4658         * cpperror.c (cpp_notice_from_errno): Provide default name.
4659         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
4660         (find_include_file, cpp_read_file): Use make_IHASH.
4661         (file_cleanup): Set control_macro and clear
4662         input_stack_listing_current here.
4663         (_cpp_execute_include): Don't output entering-file marker.
4664         * cpphash.c (special_symbol): Look for the line number in the
4665         buffer, not the reader.
4666         (_cpp_macroexpand): No need to disable line commands.
4667         (_cpp_dump_definition): No need to generate line commands.
4668         (dump_hash_helper): Remove excess newline from output.
4669         * cppinit.c (dump_special_to_buffer): No need to generate line
4670         commands.
4671         (cpp_printer_init): New.
4672         (cpp_start_read): Take a printer, and start it up if it's not
4673         NULL.  No need to generate line commands.
4674         (cpp_finish): Expect no buffers stacked at all.  Take a
4675         printer argument, and flush the output buffer if it's not
4676         NULL.
4677         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
4678         Don't put two hashes at the beginning of an assertion.
4679         (cpp_get_token): Don't increment pfile->lineno or emit line
4680         commands here.  Return EOF if there's no buffer when we get
4681         EOF.
4682         * cpplib.c (do_define, skip_if_group):
4683         No need to disable line commands.
4684         (_cpp_output_line_command): Delete function.
4685         (do_line): Don't emit line commands here, but set things up so
4686         they will be emitted if necessary.  Use _cpp_fake_ihash to
4687         make unique nominal_fnames if necessary.
4688         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
4689         with 0 for column, not -1.
4690         (_cpp_handle_eof): Don't set the control macro here.  Don't
4691         clear input_stack_listing_current here.  Don't emit line
4692         commands.
4693
4694 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
4695
4696         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
4697         always, use the default SVR4 start address.
4698
4699         * config/rs6000/linux.h (LINK_SPEC): Don't define.
4700         (LINK_SHLIB_SPEC): Define.
4701         (LINK_START_DEFAULT_SPEC): Define.
4702         (LINK_OS_DEFAULT_SPEC): Define.
4703
4704         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
4705
4706         * config/rs6000/eabi.asm (__eabi): Call __init rather than
4707         __do_global_ctors to handle constructors.
4708         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
4709         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
4710         (STARTFILE_MVME_SPEC): Likewise.
4711         (STARTFILE_SIM_SPEC): Likewise.
4712         (ENDFILE_ADS_SPEC): Use crtend.
4713         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
4714         (ENDFILE_MVME_SPEC): Likewise.
4715         (ENDFILE_SIM_SPEC): Likewise.
4716         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
4717         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
4718         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
4719         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
4720         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
4721         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
4722         (CRTSTUFF_T_CFLAGS_S): Define.
4723         * config/rs6000/eabi-ctors.c: Delete.
4724
4725         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
4726         boundary.
4727         (__fini): Likewise.
4728         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
4729         boundary.
4730         (__fini): Likewise.
4731
4732 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
4733
4734         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
4735         plus mask size is smaller or equal to the mode size.
4736
4737 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4738
4739         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
4740         not yet set.
4741
4742         * expr.c (reload.h): Now included.
4743         (emit_block_move): Set volatile_ok when checking for movstr.
4744         (emit_move_1): Check for replacements in addresses in multi-word case.
4745         * Makefile.in (expr.o): Now includes reload.h.
4746
4747         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
4748         Never have a LIBCALL end a basic block.
4749         (find_basic_blocks_1): Likewise.
4750         Reorganize CALL_INSN cases.
4751
4752         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
4753
4754 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
4755
4756         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
4757         completers from mov.ret instruction.
4758
4759 2000-04-14  Richard Henderson  <rth@cygnus.com>
4760
4761         * fold-const.c (extract_muldiv): Don't distribute and widen
4762         multiply across plus for non-sizetype unsigned types.
4763
4764 2000-04-14  Richard Henderson  <rth@cygnus.com>
4765
4766         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
4767         If the original source is dead in the incr insn, it's dead now.
4768
4769 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4770
4771         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
4772         see if DECL_BIT_FIELD needs to still be set.
4773
4774         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
4775
4776         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
4777         print_int_cst_octal with something that's not an INTEGER_CST.
4778
4779         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
4780         and not a SUBREG to a FLOAT rtl.
4781
4782 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
4783
4784         * emit-rtl.c (try_split): Avoid infinite loop if the split
4785         results in a sequence that contains the original insn.
4786
4787 2000-04-13  Andreas Jaeger  <aj@suse.de>
4788
4789         * config/mips/mips.c (expand_block_move): Pass alignment
4790         argument to move_by_pieces in bits, not bytes.
4791
4792         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
4793         __pic__ for little endian.
4794
4795 2000-04-13  Andreas Jaeger  <aj@suse.de>
4796
4797         * config/i386/i386-protos.h: Add prototype for
4798         uno_comparison_operator.
4799
4800 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4801
4802         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
4803         * calls.c (ECF_PURE): New flag.
4804         (emit_call_1): Handle ECF_PURE calls.
4805         (initialize_argument_information): Unset ECF_PURE flag too.
4806         (precompute_arguments): Precompute for ECF_PURE too.
4807         (expand_call): Handle ECF_PURE calls too.
4808         (emit_library_call_value_1): Rename no_queue argument to fn_type,
4809         accept value of 2 as pure function.
4810         (emit_library_call_value, emit_library_call): Rename no_queue argument
4811         to fn_type.
4812         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
4813
4814         * tree.h (DECL_IS_PURE): New macro.
4815         (struct tree_decl): Add pure_flag.
4816         * c-common.c (enum attrs): Add attribute "pure".
4817         (init_attributes): Initialize attribute "pure"
4818         (decl_attributes): Handle attribute "pure".
4819         * extend.texi (Attribute "pure"): Document.
4820         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
4821         in pure function.
4822         (flags_from_decl_or_type): Support attribute "pure".
4823
4824 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
4825
4826         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
4827         the token except for numbers and identifiers.
4828
4829 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
4830
4831         * i386.c (ix86_expand_binary_operator,
4832         ix86_expand_unary_operator): Check no_new_pseudos
4833         instead of reload_in_progress and reload_completed.
4834         (ix86_split_ashldi, ix86_split_ashrdi,
4835         ix86_split_lshrdi): Check no_new_pseudos instead
4836         of reload_completed.
4837
4838 2000-04-12  Jeffrey A Law  (law@cygnus.com)
4839
4840         * function.c (purge_addressof): Unshare any shared rtl created by
4841         purge_addressof and its children.
4842
4843 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
4844
4845         * function.c (aggregate_value_p): VOID_TYPE nodes are never
4846         aggregates.
4847
4848 2000-04-05  Andreas Jaeger  <aj@suse.de>
4849
4850         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
4851         not compiling PIC code, add flags for mabi=64.
4852         (SUBTARGET_CPP_SIZE_SPEC): New.
4853         (SUBTARGET_CPP_SPEC): New.
4854         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
4855         for MIPS/Linux and lots of code needs these defines.
4856
4857 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
4858
4859         * reorg.c (fill_slots_from_thread): Check side_effects_p when
4860         trying the "opposite arithmetic" approach.
4861
4862 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4863
4864         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
4865         (struct sh_args): Add new field force_mem.
4866         (INIT_CUMULATIVE_ARGS): Initialize it.
4867         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
4868
4869 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4870
4871         * calls.c (expand_call): Do not reverse args in "equal from" field.
4872         (emit_library_call_value_1): Emit_libcall_block for const and pure
4873         function.
4874
4875 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4876
4877         * reload1.c (reload_combine): Don't enable optimization for fixed
4878         registers when encountering a BARRIER.
4879
4880 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4881
4882         * builtins.c (expand_builtin_memcmp): Do expansion even with
4883         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
4884
4885         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
4886         stack is propertly aligned; add sanity checking for aligned
4887         stack pointer.
4888         (expand_library_call_value_1): Add sanity checking for aligned
4889         stack pointer.
4890
4891 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
4892
4893         * calls.c (emit_library_call_value_1): Change 3rd arg to
4894         locate_and_pad_parm to disregard the setting of partial.
4895
4896 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4897
4898         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
4899
4900         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
4901         CALL_INSN from the normal case.
4902
4903 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4904
4905         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4906         New global variables.
4907         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
4908         adjustment.
4909         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4910         Declare,
4911         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
4912          TARGET_ADD_ESP_8): New macros.
4913         * i386.md: Add peep2s to convert esp adjustments to push and pop
4914         instructions.
4915         (pushsi_prologue, popsi_epilogue): New patterns.
4916
4917 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
4918
4919         * real.c (toe64): Remove stale #endif from the last change.
4920
4921 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
4922
4923         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
4924         * real.c (toe64): Revert previous change.
4925
4926 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
4927
4928         * objc/objc-act.c: Include ggc.h.
4929         (objc_tree_index, objc_global_trees): Convert most of the
4930         static tree variables into a static array with previous names
4931         as defines.
4932         (objc_ellipsis_node): New variable.
4933         (lang_init): Call objc_act_parse_init and c_parse_init.
4934         Create objc_ellipsis_node.
4935         (build_selector_translation_table): Use objc_ellipsis_node instead
4936         of (tree)1.
4937         (hack_method_prototype): Likewise.
4938         (get_arg_type_list): Likewise.
4939         (start_method_def): Likewise.
4940         (continue_method_def): Likewise.
4941         (gen_method_decl): Likewise.
4942         (ggc_mark_imp_list): New function.
4943         (ggc_mark_hash_table): New function.
4944         (objc_act_parse_init): New function.
4945         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
4946         * c-parse.in (c_parse_init): For objc add roots of objc specific
4947         local tree variables.
4948         * objc/objc-parse.y: Rebuilt.
4949         * objc/objc-parse.c: Rebuilt.
4950         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
4951
4952 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
4953
4954         * cse.c (delete_trivially_dead_insns): Also delete insns
4955         that copy a register to itself where the destination is
4956         a strict_low_part.
4957
4958 2000-04-11  Richard Henderson  <rth@cygnus.com>
4959
4960         * flow.c (struct propagate_block_info): Add new_dead, new_live.
4961         (propagate_block): Initialize them.  Use them in parallel instead
4962         of one tmp variable, ie revert much of the 0408 and 0407 functional
4963         changes, but keep the structural changes.
4964         (mark_set_regs): Take new_dead from propagate_block_info instead.
4965         (mark_set_1, mark_set_reg): Likewise.
4966         (mark_used_regs): Likewise with new_live.
4967         (mark_used_reg): Likewise.  Revert 0408 change.
4968
4969 2000-04-11  Nick Clifton  <nickc@cygnus.com>
4970
4971         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
4972         restriction.
4973         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
4974
4975 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4976
4977         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
4978         const section to output a CONSTRUCTOR based on the same conditions
4979         used for VAR_DECLs.
4980
4981 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
4982
4983         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
4984         * pa/pa-protos.h (output_call): Add additional argument indicating
4985         if the call is a sibling/tail call.
4986         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
4987         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
4988         (function_arg, function_arg_partial_nregs): Likewise
4989         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
4990         (emit_move_sequence): Zero extend certain constants as needed
4991         for TARGET_64BIT.
4992         (compute_zdepdi_operands, output_64bit_and): New functions.
4993         (output_64bit_ior, function_arg): Likewise.
4994         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
4995         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
4996         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
4997         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
4998         (output_bvb): Likewise.
4999         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
5000         (output_call): New argument 'sibcall'.  Generate sibcall sequences
5001         as needed.
5002         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
5003         (ouput_arg_descriptor): Do not emit argument descriptors for
5004         TARGET_64BIT.
5005         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
5006         defined.
5007         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
5008         (FUNCTION_OK_FOR_SIBALL): Define.
5009         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
5010         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
5011         (CPP_SPEC): Use new spec infrastructure.
5012         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
5013         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
5014         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
5015         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
5016         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
5017         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
5018         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
5019         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
5020         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
5021         (FUNCTION_ARG); Call out to C code.
5022         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
5023         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
5024         (MIN_UNITS_PER_WORD): Likewise.
5025         * pa/pa.md (cmpdi): New expander.
5026         (scc patterns, movstrsi): Not available for TARGET_64BIT.
5027         (64bit conditional arithmetic): New patterns.
5028         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
5029         (movsicc): Not available if modes on all the operands to not match.
5030         (movdicc): New expander and associated patterns.
5031         (64bit branches): New patterns.
5032         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
5033         (pre_ldd, post_std): New patterns.
5034         (64bit addil, load low part): New patterns.
5035         (special movsf constant): Not available for TARGET_64BIT.
5036         (movsf, movdf expanders): Force constants into memory.
5037         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
5038         (64bit movdf/movdi patterns): New patterns.
5039         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
5040         for TARGET_64BIT.
5041         (extendqidi2, extendhidi2, extendsidi2): Similarly.
5042         (adddi3 expander): Allow "arith_operand" for second input.
5043         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
5044         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
5045         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
5046         (muldi3): New expander for TARGET_64BIT.
5047         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
5048         for TARGET_64BIT.
5049         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
5050         patterns for TARGET_64BIT.
5051         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
5052         patterns for TARGET_64BIT.
5053         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
5054         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
5055         (sibcall_epilogue): New expander.
5056         (casesi): Tweak for TARGET_64BIT.
5057         (call expanders): Set & use the outgoing argument pointer.  Use the
5058         64bit call patterns as needed. Add additional arg to output_call.
5059         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
5060         (sibcall, sibcall_internal_symref): New expanders.
5061         (sibcall_value, sibcall_value_internal_symref
5062         (interspace_jump): Turn into an expander + matching patterns.
5063         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
5064         * pa/pa64-regs.h: Eliminate trigraph sequences.
5065         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
5066
5067 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
5068
5069         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
5070         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
5071         cpp_token with cpp_ttype everywhere.
5072         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
5073         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
5074         CPP_BUF_COL.  Line and column numbers are unsigned int, not
5075         long.
5076         * cpplex.c (cpp_buf_line_and_col): Delete.
5077         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
5078         'long lineno' to 'unsigned int lineno'.
5079         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
5080
5081 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5082
5083         * extend.texi: ISO C99 is not a draft anymore.
5084         * invoke.texi: ISO C++ is not a draft anymore.
5085         * cpp.texi: __cplusplus is required by the ISO standard.
5086
5087         * extend.texi (-fthis-is-variable): Undocument.
5088         * flags.h (warn_template_debugging): Remove declaration.
5089         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
5090         -Wenum-clash, -Wtemplate-debugging): Undocument.
5091
5092 2000-04-10  Nick Clifton  <nickc@cygnus.com>
5093
5094         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
5095         integer.
5096         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
5097         integer.
5098         (ARM_SIGN_EXTEND): Use HOST_UINT.
5099         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
5100         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
5101         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
5102         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
5103
5104         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
5105         (arm_gen_constant): Use HOST_UINT.
5106         (arm_canonicalize_constant): Use HOST_UINT.
5107         (arm_reload_in_hi): Use HOST_UINT.
5108         (arm_reload_out_hi): Use HOST_UINT.
5109         (output_multi_immediate): Use HOST_UINT.
5110         (int_log2): Use HOST_UINT.
5111         (arm_poke_function_name): Use HOST_UINT.
5112         (arm_output_epilogue): Use arm_volatile_func().
5113         (output_thumb_prologue): Use arm_strip_name_encoding().
5114
5115 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5116
5117         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
5118         of sequence point problems.
5119
5120 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
5121
5122         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
5123         Recomment.
5124         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
5125
5126 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5127
5128         * sbitmap.h: Whitespace changes and use upper-case macro args.
5129         (struct simple_bitmap_def): All sizes now unsigned.
5130         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
5131         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
5132         (sbitmap_vector_alloc): Parms and local vars now unsigned.
5133         (sbitmap_zero): Cast bzero arg to PTR.
5134         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
5135         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
5136         loop to make structure clearer.
5137         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
5138         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
5139         (sbitmap_a_and_b_or_c): Likewise.
5140         (sbitmap_intersection_of_succs): Minor cleanups.
5141         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
5142         (sbitmap_union_of_preds): Likewise.
5143         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
5144         (debug_sbitmap): New function.
5145
5146         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
5147         * c-typeck.c (convert_for_assignment): Likewise.
5148
5149         * expmed.c (init_expmed): Don't free objects we make.
5150         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
5151
5152         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
5153         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
5154
5155         * gcse.c (expr_hash_table_size): Now unsigned.
5156         (compute_ae_gen): Local variable `i' now unsigned.
5157         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
5158         (compute_transout, hoist_code): Likewise.
5159         (compute_local_properties): Likewise, also hash_table_size.
5160         (alloc_expr_hash_table): N_INSNS now unsigned.
5161         (delete_null_pointer_checks): Mark arg F as unused.
5162
5163         * regrename.c: Minor cleanups, including chang some variables
5164         to unsigned int.
5165
5166 2000-04-10  Neil Booth  <NeilB@earthling.net>
5167
5168         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
5169         than GETC ().
5170         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
5171
5172 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5173
5174         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
5175         __classof__, and __headof__ from the list of gnu keywords.
5176         (-ansi): Remove -foperator-names from list of implied options.
5177         Do not call it ANSI C++.
5178         (-foperator-names): Document as -fno-operator-names.
5179
5180 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
5181
5182         * cpphash.c (timestamp): Delete.
5183         (del_HASHNODE): If type is T_MCONST, free value.cpval.
5184         (special_symbol): Remove unnecessary braces.  Remove
5185         T_VERSION.  Treat T_STDC like T_CONST unless
5186         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
5187         when one is encountered, then convert them into T_MCONST
5188         nodes.
5189         * cppinit.c (builtin_array): version_string is T_MCONST.
5190         __STDC__ has a "1" in its cpval.  Don't have a terminator
5191         entry.  Clean up which entries are dumped.
5192         (initialize_builtins): Only __STDC__ gets the special
5193         -traditional treatment.  Count the length of builtin_array.
5194         Render version_string here.
5195         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
5196         * cpplib.h (struct cpp_reader): Remove timebuf.
5197
5198 2000-04-09  Richard Henderson  <rth@cygnus.com>
5199
5200         * genrecog.c (pred): Update comparison_operator for the unordered
5201         operators.
5202
5203         * config/i386/i386.c (no_comparison_operator): Disallow unordered
5204         operators.
5205         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
5206         (uno_comparison_operator): New.
5207         (put_condition_code): Handle UNORDERED/ORDERED.
5208         (unsigned_comparison): Likewise.
5209         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
5210         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
5211         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
5212         update all callers.  Handle all 8 unordered operators.
5213         (ix86_expand_setcc): Lose the unordered argument, update all callers.
5214         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
5215         * config/i386/i386.h (PREDICATE_CODES): Update.
5216         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
5217         (ix86_expand_branch, ix86_expand_setcc): Update.
5218         * config/i386/i386.md (sunordered, sordered): New.
5219         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
5220         (bunordered, bordered): New.
5221         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
5222         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
5223         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
5224
5225 2000-04-09  Philip Blundell  <philb@gnu.org>
5226
5227         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
5228
5229 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
5230
5231         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
5232         fix_truncxfhi2): New patterns.
5233         * i386.c (output_fix_trunc): Handle converting to HImode.
5234
5235 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
5236
5237         * ssa.c (convert_to_ssa): Eliminate dead code when calling
5238         life_analysis.
5239         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
5240         (for_each_successor_phi): Change parameter to basic_block.
5241         (coalesce_regs_in_successor_phi_nodes): Likewise.
5242         (coalesce_regs_in_copies): Likewise.
5243         (compute_coalesced_reg_partition): Use basic_block instead of index.
5244         * rtl.h (convert_to_ssa): Delete.
5245         (convert_from_ssa): Likewise.
5246         (successor_phi_fn): Likewise.
5247         (for_each_successor_phi): Likewise.
5248         (in_ssa_form): Likewise.
5249         * basic-block.h (convert_to_ssa): Moved from rtl.h.
5250         (convert_from_ssa): Likewise.
5251         (successor_phi_fn): Likewise.
5252         (in_ssa_form): Likewise.
5253         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
5254         * flow.c (calculate_global_regs_live): Pass a basic_block to
5255         for_each_successor_phi.
5256
5257 2000-04-08  Richard Henderson  <rth@cygnus.com>
5258
5259         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
5260         was modified in the current insn.
5261
5262 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5263
5264         * arm/thumb.md: Delete.
5265         * arm/thumb-protos.h: Delete.
5266
5267 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5268
5269         Merge changes from merged-arm-thumb-backend-branch onto trunk.
5270
5271         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5272
5273         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
5274         into branch.
5275
5276         * arm.md (nop): Use the standard RTL expression.  Don't code as a
5277         define_expand.
5278         (*arm_nop, *thumb_nop): Delete.
5279
5280         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
5281         constants.  Use casts instead.
5282         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
5283         output_multi_immediate, arm_poke_function_name): Likewise.
5284         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
5285         MASK_RETURN_ADDDR): Likewise.
5286
5287         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
5288
5289         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
5290         into branch.
5291
5292         * arm.md (eh_epilogue): New function.
5293         * arm.h (struct machine_function): Move to here ...
5294         * arm.c: ... from here.
5295         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
5296         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
5297         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
5298
5299         2000-03-30  Nick Clifton  <nickc@cygnus.com>
5300
5301         * config/arm/semi.h (ASM_SPEC): Restore definition.
5302         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
5303
5304         * config/arm/elf.h (ASM_SPEC): Restore definition.
5305         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
5306
5307         * config/arm/arm.h (ASM_SPEC): Remove definition.
5308         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
5309
5310         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
5311
5312         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
5313
5314         2000-03-24  Nick Clifton  <nickc@cygnus.com>
5315
5316         Various formating tidyups, elimination of compile time
5317         warnings and synchronisation with internal sources:
5318
5319         * config/arm/arm-protos.h (assemble_align): Add prototype.
5320         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
5321         (gen_comapre_reg): Rename to arm_gen_compare_reg.
5322         (arm_return_addr_rtx): Rename to arm_return_addr.
5323
5324         * config/arm/arm.c: Include except.h.
5325         Define shorter typenames for strict minipool_node and struct
5326         minipool_fix.
5327         (arm_return_in_memory): For WinCE return all structures <= 32 bits
5328         in memory.
5329         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
5330         (gen_comapre_reg): Rename to arm_gen_compare_reg.
5331
5332         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
5333         already defined.
5334         (ASM_SPEC): Define if not already defined.
5335         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
5336
5337         * config/arm/arm.md: Rename references to gen_rotated_half_load to
5338         arm_gen_rotated_half_load, and references to gen_comapre_reg to
5339         arm_gen_compare_reg.
5340         (indirect_jump):  Only accept register operands.
5341         (load_indirect_jump): Keep this pattern since combine can generate
5342         it.
5343
5344         * config/arm/coff.h: Include aout.h.
5345         (MULTILIB_DEFAULTS): Only define if not already defined.
5346
5347         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
5348         into arm.h (so that COFF ports can support thumb based aliases).
5349         (ASM_SPEC): Move definition into arm.h
5350
5351         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
5352         redundant apcs spec.
5353         (ASM_SPEC): Move definition to arm.h
5354
5355         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
5356
5357         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
5358         for entries in the .bss section
5359
5360         2000-03-23  Nick Clifton  <nickc@cygnus.com>
5361
5362         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
5363         to thumb_far_jump_used_p.
5364
5365         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
5366         single integer parameter.
5367
5368         * config/arm/arm.c (struct machine_function): Add two new
5369         fields, 'far_jump_used' and 'arg_pointer_live'.
5370         (thumb_far_jump_used_p): Once the decision has been made that
5371         far jumps might be used, always return true.
5372         If being called from the initial elimination offset macro then
5373         do not bother to perform the test if the arg pointer is not
5374         being used.
5375         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
5376         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
5377
5378         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
5379
5380         * arm.c (output_return_instruction): Handle more cases where we can
5381         return from a function with an ldr instruction.
5382         (arm_output_epilogue): Likewise.
5383
5384         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
5385         if we need to push a large stack frame and there are no callee-saved
5386         registers.
5387
5388         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
5389         in ARM code if the frame pointer has been eliminated.
5390
5391         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
5392         unspec_volatile arguments to avoid duplicates.
5393         (consttable_1, consttable_2): Fixes for big-endian mode.
5394
5395         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
5396         as appropriate.
5397
5398         Re-write constant pool code.
5399         * arm.c (minipool_node, minipool_fix): New types.
5400         (minifix): Delete type.
5401         (arm_add_minipool_constant): Delete.
5402         (arm_compute_minipool_offsets, arm_find_barrier,
5403         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
5404         (get_jump_table_size): Now returns HOST_WIDE_INT.
5405         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
5406         functions.
5407         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
5408         (assign_minipool_offsets, arm_print_value): Likewise.
5409         (dump_minipool): Rewrite.
5410         (arm_barrier_cost): New function.
5411         (create_fix_barrier): New function.
5412         (push_minipool_barrier): New function.
5413         (push_minipool_fix): Record additional information about the fixup
5414         required.
5415         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
5416         check the mode of what needs fixing.
5417         (arm_reorg): Rewrite.
5418
5419         2000-03-08  Nick Clifton  <nickc@cygnus.com>
5420
5421         * config/arm/arm.md (indirect_jump): Force constant addresses into
5422         a register.
5423
5424         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
5425
5426         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
5427
5428         2000-02-24  Nick Clifton  <nickc@cygnus.com>
5429
5430         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
5431         adjust is word aligned.
5432         (thumb_expand_epilogue): Make sure that stack adjust is word
5433         aligned.
5434
5435         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
5436
5437         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
5438
5439         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
5440         pointer relative addresses.
5441
5442         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
5443
5444         * arm.c (find_barrier): Find the last barrier within the allowed
5445         range.
5446
5447         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5448
5449         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
5450
5451         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5452
5453         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
5454         ARM_FUNCTION_PROFILER.
5455
5456         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
5457         ARM_FUNCTION_PROFILER.
5458
5459         * config/arm/linux-oldld.h: Imported from mainline sources.
5460
5461         2000-02-07  Nick Clifton  <nickc@cygnus.com>
5462
5463         * config/arm/lib1funcs.asm: Merge in thumb functions from
5464         lib1thumb.asm.
5465
5466         * config/arm/lib1thumb.asm: Delete.
5467
5468         2000-02-04  Nick Clifton  <nickc@cygnus.com>
5469
5470         * config/arm/arm.c: Sychronised with current Red hat local
5471         sources.
5472         * config/arm/arm.h: Ditto.
5473         * config/arm/arm-protos.h: Ditto.
5474
5475         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
5476
5477         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
5478
5479         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
5480         byte stores.
5481
5482         2000-02-02  Nick Clifton  <nickc@cygnus.com>
5483
5484         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
5485
5486         * config/arm/arm.md (epilogue): Fix rtl checking abort because
5487         (return) was emited using an emit_insn() call.
5488
5489         2000-01-31  Nick Clifton  <nickc@cygnus.com>
5490
5491         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
5492         thumb stack frame.
5493         (thumb_exit): Move frame pointer back into hard frame pointer
5494         register if backtracing is being used.
5495
5496         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
5497
5498         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
5499         into branch.
5500
5501         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
5502
5503         * config/arm/arm.md (neg_pool_offset): Provide default for new
5504         attribute.
5505         (arm_movsi_insn): Add neg_pool_offset attribute.
5506         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
5507         rtx for the insn that starts the scan and an unsigned long for its
5508         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
5509         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
5510         instructions in *PINSERTED.
5511         (struct minipool_fixup): Add MIN_ADDRESS elt.
5512         (sort_fixups): Compute it.
5513         (arm_reorg): Changes to support inserting pools before the insn to be
5514         fixed up.
5515
5516         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
5517
5518         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
5519         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
5520         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
5521
5522         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
5523
5524         * config/arm/semi.h (TARGET_VERSION): Do not define if already
5525         defined.
5526         (TARGET_DEFAULT): Do not define if already defined.
5527
5528         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
5529
5530         * config/arm/arm.md (anddi3): Allow disjoint source operands.
5531         (iordi3): Allow disjoint source operands.
5532         (xordi3): Allow disjoint source operands.
5533         (negdi2): Permit construction for ARM and Thumb.
5534         (arm_negdi2): Renamed version of old negdi2 pattern.
5535         (thumb_negdi2): New pattern: Only permit non-overlapping
5536         source and destination.
5537
5538         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
5539
5540         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
5541         scratch low register so that it will not be deleted.
5542
5543         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
5544
5545         * config/arm/pe.h (ARM_PE): Define.
5546
5547         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
5548         interfacearm attribute if this is a PE toolchain.
5549         (output_return_instruction): Do not emit anything if the function
5550         has the naked attribute set.
5551         (is_called_in_ARM_mode): If the function has the interfacearm
5552         attribute then return true.
5553         (thumb_expand_prologue): Do not generate a prologue for naked
5554         functions.
5555         (thumb_expand_epilogue): Do not generate an epilogie for a naked
5556         function.
5557         (output_thumb_prologue): Do not bother if the function is naked.
5558         Strip PE encoding from function name before emitting.
5559
5560         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
5561
5562         * arm.md (pic_load_addr): Fix constraints.
5563
5564         * arm.md (casesi_insn): Fix mis-applied patch.
5565
5566         * arm.md ("core" function unit): Add rules for single- and
5567         multi-cycle insns.
5568         (All TARGET_THUMB patterns): Add "type" attribute information
5569         where needed.
5570         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
5571         the following insn is a CALL.
5572
5573         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
5574         pointer.
5575         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
5576         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
5577         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
5578
5579         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
5580
5581         * config/arm/linux-gas.h: oops - this file was missed out when the
5582         branch was created...
5583
5584         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
5585
5586         * thumb.c: Deleted.  Move contents to ...
5587         * arm.c: ... here.
5588         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
5589         rule for thumb.o
5590         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
5591         * configure: Regen.
5592
5593         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
5594         declare a prototype for asm_output_align();
5595
5596         * arm.c (thumb_condition_code): Delete.
5597         (arm_print_operand): Always use arm_condition_code array.
5598
5599         * arm.c (thumb_return_addr_rtx): Delete.
5600         (arm_save_machine_status, arm_restore_machine_status): Delete.
5601         (arm_init_machine_status, arm_mark_machine_status): New functions.
5602         (arm_init_expanders): Update accordingly.
5603         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
5604         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
5605         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
5606
5607         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
5608
5609         * configure.in : Fix arm-*-aout target to use new t-arm-aout
5610         script.
5611         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
5612         targets.
5613
5614         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
5615
5616         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
5617         stack backtrace structure.
5618
5619         * config/arm/arm-protos.h: Add prototypes for functions defined in
5620         arm/pe.h.
5621
5622         * config/arm/arm.c (arm_override_options): Fix selection of
5623         attributes of default processor.
5624
5625         * config/arm/coff.h: Delete needless #include.
5626
5627         * config/arm/pe.c: Delete unused code.
5628
5629         * config/arm/pe.h (CPP_DEFINES): Delete
5630         (SUBTARGET_CPP_SPEC): Define.
5631         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
5632
5633         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
5634
5635         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
5636
5637         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
5638         updated.
5639         (CAN_DEBUG_WITHOUT_FP): Define.
5640         (FIXED_REGISTERS): Make r11 call-saved.
5641         (CALL_USED_REGISTERS): Likewise.
5642         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
5643         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
5644         frame-pointer is required.
5645         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
5646         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
5647         if the target normally needs a stack frame in non-leaf functions.
5648         (use_return_insn): Correct logic for determining when a return
5649         instruction can be used.
5650         (output_return_instruction): Handle the frame-pointer register as
5651         a normal register when not TARGET_APCS_FRAME.
5652         (arm_output_prologue): Likewise.
5653         (arm_output_epilogue): Likewise.
5654         (output_func_epilogue): Likewise.
5655         (arm_expand_prologue): Likewise.
5656         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
5657
5658         * arm.c (use_return_insn): No need to check floating point regs if
5659         TARGET_SOFT_FLOAT.
5660         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
5661         the code of value stored in the minipool array.
5662         (arm_add_minipool_constant): Likewise.
5663
5664 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5665
5666         * basic-block.h (conflict_graph_enum_fn): K&R fix.
5667
5668 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5669
5670         * tree.c (tree_expr_nonnegative_p): New function.
5671
5672         * tree.h (tree_expr_nonnegative_p): Declare.
5673
5674         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
5675         elide some sign_compare warnings.
5676         (build_conditional_expr): Likewise.
5677
5678 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
5679
5680         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
5681
5682         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
5683         * i386.c (print_operand): Use the proper suffix for a 387 HImode
5684         operand.  Abort if a 387 operand has an unsupported size.
5685
5686 2000-04-08  Neil Booth  <NeilB@earthling.net>
5687
5688         * cppexp.c (parse_charconst): Null does not end character
5689         constants.
5690         * cppinit.c (ISTABLE): Null character handled as whitespace.
5691         * cpplex.c (null_warning):  new function.
5692         (skip_string): Emit warning if nulls encountered.
5693         (_cpp_skip_hspace): Emit warning if nulls encountered.
5694         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
5695         them.
5696         * cpp.texi: Update.
5697
5698 2000-04-07  Richard Henderson  <rth@cygnus.com>
5699
5700         * flow.c (loop_depth): Remove.
5701         (reg_next_use, cc0_live, mem_set_list): Replace with ...
5702         (struct propagate_block_info): New.
5703         (life_analysis): Don't allocate reg_next_use.
5704         (propagate_block_delete_insn): Break out of propagate_block.
5705         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
5706         (propagate_block_delete_libcall): Likewise.
5707         (propagate_block): Create a propagate_block_info struct to pass
5708         to subroutines.  Allocate one not two temporary regsets.  Don't
5709         clobber memory for const calls.  Look for clobbers in
5710         CALL_INSN_FUNCTION_USAGE.
5711         (mark_set_regs): Recognize COND_EXEC.
5712         (mark_set_reg): Break out of mark_set_1.
5713         (mark_used_reg): Break out of mark_used_regs.
5714         (mark_used_regs): Recognize COND_EXEC.
5715         (insn_dead_p): Use propagate_block_info struct.
5716         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
5717         (find_auto_inc, try_pre_increment_1): Likewise.
5718         (print_rtl_with_bb): Dump regs live at end too.
5719         (count_reg_sets_1): Pass in loop_depth.
5720         (count_reg_sets, count_reg_references): Likewise.
5721         (recompute_reg_usage): Provide it.
5722
5723 2000-04-07  Richard Henderson  <rth@cygnus.com>
5724
5725         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
5726         not the raw files.
5727
5728 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
5729
5730         * cpplib.c (do_elif): Skip the rest of the line if we're
5731         not going to bother evaluating it.
5732         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
5733         to avoid pointless calls to the lexer.
5734
5735 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
5736
5737         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
5738
5739 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
5740
5741         * calls.c (expand_call): emit_queue if we're trying a sibcall.
5742
5743 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
5744
5745         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
5746
5747 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
5748
5749         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
5750         crtend so they can be multilibbed.
5751         (STAGESTUFF): Remove s-crt and s-crtS.
5752
5753 2000-04-07  Richard Henderson  <rth@cygnus.com>
5754
5755         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
5756         if we discover we need a pseudo and no_new_pseudos is true.
5757         * config/alpha/alpha.md (ne:DI insn): New.
5758         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
5759
5760 2000-04-07  Richard Henderson  <rth@cygnus.com>
5761
5762         * rtl.def (COND_EXEC): New.
5763         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
5764         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
5765
5766         * genconfig.c (have_cond_arith_flag): Remove.
5767         (have_cond_exec_flag): New.
5768         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
5769         (main): Print HAVE_conditional_execution.
5770
5771         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
5772         (sched_analyze_insn, print_pattern): Likewise.
5773         * reload.c (find_equiv_reg): Likewise.
5774         * rtlanal.c (reg_referenced_p): Likewise.
5775         (note_stores, dead_or_set_regno_p): Likewise.
5776         (reg_overlap_mentioned_p): Rewrite to use a switch.
5777
5778         * ggc.h (struct rtx_def): Forward declare.
5779
5780         * print-rtl.c (debug_rtx_range): New.
5781         * rtl.h (debug_rtx_range): Declare.
5782
5783         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
5784
5785         * gcse.c (gcse_main): Don't rebuild the CFG here.
5786         (delete_null_pointer_checks): Likewise.
5787         * ssa.c (convert_to_ssa): Likewise.
5788         * toplev.c (rest_of_compilation): Do it here instead.  Combine
5789         sequential calls to TIMEVAR.  Consistently use `insns' instead of
5790         `get_insns()'.  Always split insns after reload when optimizing.
5791
5792         * basic-block.h (merge_blocks_nomove): Declare.
5793         (tidy_fallthru_edge): Declare.
5794         * flow.c (merge_blocks_nomove): Document as merging into previous
5795         blocks.  Remove cruft from between blocks; remove all edges out of A.
5796         (tidy_fallthru_edge): Export.
5797
5798 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5799
5800         * ssa.c (compute_conservative_reg_partition): Declare with
5801         void arguments.
5802         * toplev.c (clean_dump_file): Remove previously-deleted function
5803         inadvertantly merged back in.
5804         * conflict.c (conflict_graph_add): Use a single call to
5805         htab_find_slot to look up and insert.
5806
5807 2000-04-06  Richard Henderson  <rth@cygnus.com>
5808
5809         * genrecog.c (*): Rename _last_insn to last_insn.
5810         (make_insn_sequence): Set the position of the peephole2 C test
5811         to be at the last insn.
5812
5813 2000-04-06  Richard Henderson  <rth@cygnus.com>
5814
5815         * flow.c (compute_flow_dominators): Free worklist.
5816
5817 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
5818
5819         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
5820
5821 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5822
5823         * rtl.h (INSN_P): New macro.
5824         (successor_phi_fn): New typedef.
5825         (for_each_successor_phi): New prototype.
5826         (in_ssa_form): New variable.
5827         (PHI_NODE_P): Likewise.
5828         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
5829         phi nodes in successors.
5830         (mark_used_regs): Add PHI case.
5831         (set_phi_alternative_reg): New function.
5832         (life_analysis): Assert that dead code elimination is not selected
5833         when in SSA form.
5834         * toplev.c (to_ssa_time): New variable.
5835         (from_ssa_time): Likewise.
5836         (compile_file): Zero to_ssa_time and from_ssa_time.
5837         Print time to convert to and from SSA.
5838         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
5839         (print_time): Compute percent fraction as integer.
5840         * ssa.c (PHI_NODE_P): Moved to rtl.h.
5841         (convert_to_ssa): Check if we're already in SSA.
5842         Don't eliminate dead code in life_analysis.
5843         Rerun flow and life analysis at bottom.
5844         (eliminate_phi): Use canonical regnos when adding nodes.
5845         (mark_reg_in_phi): New function.
5846         (mark_phi_and_copy_regs): Likewise.
5847         (convert_from_ssa): Rerun life analysis at top.
5848         Use coalesced partition.
5849         Check for removing a phi node at the end of the block.
5850         (compute_coalesced_reg_partition): New function.
5851         (coalesce_regs_in_copies): Likewise.
5852         (coalesce_reg_in_phi): Likewise.
5853         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
5854         (for_each_successor_phi): Likewise.
5855         (rename_context): New struct.
5856         (rename_block): Use a rename_context with rename_insn_1.  When
5857         renaming sets of a subreg, emit a copy of the entire reg first.
5858         (rename_insn_1): Treat data as a rename_context *.  Save current
5859         insn in set_data.
5860         (rename_set_data): Add field set_insn.
5861         * Makefile.in (HASHTAB_H): Move up in file.
5862         (OBSTACK_H): New macro.
5863         (collect2.o): Use OBSTACK_H in dependencies.
5864         (sdbout.o): Likewise.
5865         (emit-rtl.o): Likewise.
5866         (simplify-rtx.o): Likewise.
5867         (fix-header.o): Likewise.
5868         (OBJS): Add conflict.o.
5869         (conflict.o): New rule.
5870         * basic-block.h: Include partition.h.
5871         (conflict_graph): New typedef.
5872         (conflict_graph_enum_fn): Likewise.
5873         (conflict_graph_new): New prototype.
5874         (conflict_graph_delete): Likewise.
5875         (conflict_graph_add): Likewise.
5876         (conflict_graph_conflict_p): Likewise.
5877         (conflict_graph_enum): Likewise.
5878         (conflict_graph_merge_regs): Likewise.
5879         (conflict_graph_print): Likewise.
5880         (conflict_graph_compute): Likewise.
5881         * conflict.c: New file.
5882
5883 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
5884
5885         * tlink.c (read_repo_files): Don't look for .rpo info for
5886         linker flags.
5887
5888 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5889
5890         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
5891
5892 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5893
5894         * config/sh/lib1funcs.asm (___udivsi3_i4):
5895         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
5896         only depends on FMOVD_WORKS.
5897
5898 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5899
5900         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
5901         make double constant 8-byte aligned.
5902
5903 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
5904
5905         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
5906         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
5907         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
5908         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
5909         Accept storing GENERAL_REGS into offsetable memory.
5910         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
5911         building a TFmode constant other than 0.0L into GENERAL_REGS.
5912
5913 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
5914
5915         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
5916
5917 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
5918
5919         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
5920         (macro_cleanup): No need to cast pbuf->macro.
5921         (collect_expansion): Use _cpp_get_define_token.  Goto done if
5922         it returns VSPACE.  Remove check for trailing space after
5923         CPP_COMMENT.
5924         (_cpp_create_definition): Don't diddle flags here.  Return
5925         directly on error.
5926         (unsafe_chars): Handle c1 being EOF.
5927         (push_macro_expansion): Use unsafe_chars for both accidental-paste
5928         checks.  Don't push the buffer till after we're done with
5929         them.
5930         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
5931         (PEEKN, FORWARD, GETC, PEEKC): Use them.
5932         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
5933         appropriately.
5934         (_cpp_parse_assertion): Don't NUL terminate.
5935         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
5936         hspace before calling _cpp_parse_assertion.  Remove all sets
5937         of only_seen_white. Treat '\f' as hspace.  Don't do anything
5938         special with '\n' here.
5939         (maybe_macroexpand): Handle T_EMPTY hash entries without
5940         pushing a buffer at all.
5941         (cpp_get_token): Handle clearing only_seen_white here.  Handle
5942         incrementing the line number here.  Clear
5943         potential_control_macro as well as only_seen_white, if
5944         appropriate.
5945         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
5946         (_cpp_get_define_token): New function, basically like
5947         _cpp_get_directive_token was but doesn't eat horizontal space.
5948         Don't do anything with only_seen_white here.
5949         (_cpp_get_directive_token): Just call _cpp_get_define_token
5950         repeatedly till it returns non-hspace.
5951
5952         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
5953         (conditional_skip, skip_if_group): Return int.
5954         (DIRECTIVE_TABLE): Change origin of all conditional directives
5955         to "COND".
5956         (TRAD_DIRECT_P): New macro.
5957         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
5958         an error for a bogus directive, unless -lang-asm.  Use
5959         TRAD_DIRECT_P. Loop calling handler functions till one returns
5960         zero.
5961         (get_macro_name): Don't diddle flags here.
5962         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
5963         Create T_EMPTY nodes for #define macro /* nothing */.
5964         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
5965         Use hp->name when calling pass_thru_directive.
5966         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
5967         Return the result of conditional_skip and/or skip_if_group.
5968         Don't call _cpp_output_line_command.
5969         (consider_directive_while_skipping): Use _cpp_get_directive_token.
5970         Issue -Wtraditional warnings as appropriate.  Don't complain
5971         about unrecognized directives.  If we are to stop skipping,
5972         return the number of the directive that ended the skip.
5973         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
5974         expansion and line commands while skipping.  Return the result
5975         of consider_directive_while_skipping, if nonzero.
5976         (do_endif): Just set potential_control_macro here.
5977         (validate_else): Use _cpp_get_directive_token.
5978         (do_assert, do_unassert): Don't save pointers into the
5979         token_buffer across calls to the lexer.  Use
5980         _cpp_get_directive_token.
5981
5982         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
5983         pointer, not an offset.  Replace 'data', which was a generic
5984         pointer, with 'macro', which points to a struct hashnode.
5985         (cpp_reader): Add 'potential_control_macro' pointer.
5986         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
5987         (CPP_BUF_GET, CPP_FORWARD): Delete.
5988         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
5989         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
5990         ACTIVE_MARK_P): Update.
5991         (_cpp_get_define_token): New internal function.
5992         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
5993
5994 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
5995
5996         * configure.in: And here.
5997         * configure: Regenerate.
5998         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
5999         --enable-libstdcxx-v3 is passed at configure time.
6000         * config.h.in: Regenerate.
6001
6002 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
6003
6004         * final.c (final): Use xcalloc to allocate line_note_exists.
6005         * function.c (free_after_compilation): Free the temp_slots.
6006         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
6007         (combine_temp_slot): Free temp_slots when they get combined.
6008         (purge_addressof): Fix typo in comment.
6009         * stmt.c (mark_goto_fixup): Mark the fixup itself.
6010         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
6011
6012         * ggc.h: Include varray.h.
6013         (ggc_pending_trees): Declare.
6014         (ggc_mark_tree_children): Remove declaration.
6015         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
6016         * ggc-common.c (ggc_pending_trees): New variable.
6017         (ggc_mark_roots): Call ggc_mark_trees.
6018         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
6019         the ggc_pending_trees.
6020         * Makefile.in (GGC_H): New variable.  Use it throughout in place
6021         of ggc.h.
6022
6023 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6024
6025         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
6026         GET_MODE_SIZE.
6027
6028 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6029
6030         * sh.c (sh_insn_length_adjustment): New function.
6031         * sh-protos.h (sh_insn_length_adjustment): Declare.
6032         * sh.h (ADJUST_INSN_LENGTH): Use it.
6033
6034 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
6035
6036         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
6037         from the insn where REG_RETVAL is added.
6038         (emit_no_conflict_block): Ditto.
6039
6040         * md.texi (Standard Names): Clarify when movX is needed.
6041
6042         * combine.c (simplify_comparison) [MINUS]: Do not replace
6043         all (op (minus A B) 0) with (op A B).
6044
6045 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
6046                           J"orn Rennecke <amylaar@cygnus.co.uk>
6047
6048         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
6049         (block_lump_real): Likewise.
6050
6051 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
6052
6053         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
6054         remaining non-zero debugging masks.
6055
6056 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
6057
6058         * basic-block.h (verify_flow_info): Declare.
6059         (flow_loop_outside_edge_p): Declare.
6060         * flow.c (verify_flow_info): Remove declaration.
6061         (clear_log_links, flow_loop_outside_edge_p): Likewise.
6062
6063 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
6064
6065         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
6066         not C++ comments.
6067
6068 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
6069
6070         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
6071         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
6072         seqdi_zero_trunc+1): Allow splits only if registers are
6073         different.
6074
6075 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
6076
6077         * acconfig.h: Add HAVE_GAS_HIDDEN.
6078         * config.in: Regenerated.
6079         * configure.in: Add test for .hidden pseudo-op in gas.
6080         * configure: Regenerated.
6081         * crtstuff.c: Include auto-host.h.
6082         Emit additional .hidden pseudo-op for __dso_handle if the
6083         assembler knows about it.
6084
6085 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
6086
6087         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
6088         before freeing argnames.
6089         * cpplib.c (do_ifndef): Cast return value of xstrdup.
6090
6091 2000-04-05  Michael Meissner  <meissner@redhat.com>
6092
6093         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
6094         Walton <jonboy@gordian.com> to make memory references with update
6095         work wtih -mregnames.
6096
6097 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6098
6099         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
6100         (regrename_optimize): Rename variables `def_uses' and
6101         `ext_basic_blocks' to avoid conflicts with similarly named
6102         typedefs in traditional C.
6103
6104         * calls.c (initialize_argument_information): Fix typo in previous
6105         change.
6106
6107 2000-04-04  Richard Henderson  <rth@cygnus.com>
6108
6109         * regrename.c (consider_available): Test fixed_regs not
6110         PIC_OFFSET_TABLE_REGNUM.
6111
6112 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
6113
6114         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
6115         crtend.
6116         (CRTSTUFF_T_CFLAGS_S): Delete definition.
6117         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
6118         (ENDFILE_LINUX_SPEC): Always use crtend.
6119         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
6120         (powerpc-*-linux-gnu): Likewise.
6121         * configure: Regenerate.
6122
6123         * config/rs6000/eabi.h: Don't include sysv4.h.
6124         (MULTILIB_DEFAULTS): Don't define.
6125         * config/rs6000/eabiaix.h: Don't include eabi.h.
6126         * config/rs6000/eabile.h: Delete.
6127         * config/rs6000/eabilesim.h: Delete.
6128         * config/rs6000/eabisim.h: Don't include eabi.h.
6129         * config/rs6000/linux.h: Don't include sysv4.h.
6130         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
6131         (MULTILIB_DEFAULTS): Don't redefine.
6132         * config/rs6000/rtems.h: Don't include eabi.h.
6133         * config/rs6000/sol2.h: Don't include sysv4le.h.
6134         * config/rs6000/sysv4le.h: Don't include sysv4.h.
6135         * config/rs6000/t-ppc: Delete.
6136         * config/rs6000/t-ppcgas: Correct comment.
6137         * config/rs6000/t-ppcos: Correct comment.  Don't build
6138         multilibs for -fPIC, rather use -fPIC -mstrict-align
6139         as default.
6140         * config/rs6000/t-ppc: Delete.
6141         * config/rs6000/vxppc.h: Don't include sysv4.h.
6142         * config/rs6000/vxppcle.h: Delete.
6143         * configure.in: Use multiple header files for p2pc ELF targets
6144         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
6145         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
6146         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
6147         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
6148         always available for these platforms.
6149
6150 2000-04-04  Richard Henderson  <rth@cygnus.com>
6151
6152         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
6153
6154 2000-04-04  Stan Cox  <scox@cygnus.com>
6155
6156         * Makefile.in: Add rules for regrename.o
6157         * regrename.c: New file.
6158         * rtl.h (regrename_optimize): Add prototype.
6159         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
6160         (compile_file, decode_d_option): Add support for -frename-registers.
6161         (rest_of_compilation): Call regrename_optimize.
6162         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
6163         New macros.
6164
6165 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6166
6167         * Makefile (gccbug): New target.
6168         (doc): Depend on it.
6169         * gcc.texi (Bugs): Link subnodes.
6170         (gccbug): New node.
6171         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
6172         Document severities, priorities, and classes in bug form.
6173
6174 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
6175
6176         * cpplex.c (trigraph_map, speccase): Combine into single
6177         table, chartab.
6178         (NORMAL, NONTRI): New macros.
6179         (_cpp_read_and_prescan): Change to use unified table.  Use
6180         is_hspace to test for whitespace.
6181
6182         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
6183         definition that doesn't provoke the "empty body in an
6184         if-statement" warning.
6185
6186 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
6187
6188         * builtins.c (expand_builtin_strlen): Force the source to
6189         be a memory address.
6190
6191 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6192
6193         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
6194
6195 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6196
6197         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
6198          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
6199         (ECF_IS_CONST): Rename to ECF_CONST.
6200         (special_function_p): Make static, change interface.
6201         (flags_from_decl_or_type, try_to_integrate): Break out from ...
6202         (expand_call) ... here; convert number of variables to flags.
6203         (emit_library_call_vlue_1): Likewise.
6204         (setjmp_call_p): New function.
6205         (initialize_argument_information): Accepts flags as argument;
6206         return flags.
6207         (precompute_arguments): Likewise.
6208         * tree.h (special_function_p): Remove.
6209         (setjmp_call_p): Add prototype.
6210
6211 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
6212
6213         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
6214         so that addresses are offsetable by up to 16 bytes.
6215         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
6216         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
6217         offsetable.
6218
6219         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
6220         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
6221         (movsf): Don't force any constant to memory if target is integer
6222         hard register.
6223         Move fp_zero_operand check below the const0_rtx check.
6224         (movtf): Likewise. Also allow fp_zero_operand for stores into
6225         memory.
6226         (movdf): Likewise. Also allow fp_zero_operand for stores into
6227         memory and into integer hard registers.
6228         (clear_df, clear_dfp, movdf_const_intreg_sp32,
6229         movdf_const_intreg_sp64): Remove.
6230         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
6231         conditions.
6232         (movdf_no_e_insn_v9_sp32): New pattern.
6233         (movdf_insn_v9only): Remove.
6234         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
6235         (movdf_insn_sp64): Remove.
6236         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
6237         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
6238         (following splits): Rewrite conditions. Add two new splits
6239         for storing 0.0 into memory and registers.
6240         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
6241         (movtf_insn_sp32): Redo constraints and conditions.
6242         (movtf_insn_vis_sp32): New pattern.
6243         (movtf_no_e_insn_sp32): Redo constraints and conditions.
6244         (movtf_insn_hq_sp64): Likewise.
6245         (movtf_insn_hq_vis_sp64): New pattern.
6246         (movtf_insn_sp64): Redo constraints and conditions.
6247         (movtf_insn_vis_sp64): New pattern.
6248         (movtf_no_e_insn_sp64): Redo constraints and conditions.
6249         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
6250         or memory.
6251         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
6252         -mvis or -m64 to take down the number of various reload patterns.
6253
6254 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
6255
6256         * pa/pa-64.h: New file.
6257         * pa/pa64-regs.h: New file.
6258         * pa/pa64-start.h: New file.
6259         * pa/t-pa64: New file.
6260         * pa/xm-pa64hpux.h: New file.
6261
6262 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6263
6264         * sparc.c (output_restore_regs): Prototype.
6265         (sparc_emit_float_lib_cmp): Constification.
6266
6267         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
6268
6269         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
6270         Prototype.
6271
6272         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
6273         (get_value_hash, hash_rtx): Likewise.
6274
6275         * ssa.c (compute_conservative_reg_partition): Prototype.
6276
6277         * tree.c (mark_hash_entry): Prototype.
6278
6279 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
6280
6281         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
6282         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
6283         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
6284
6285         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
6286         * objc/lang-specs.h: Likewise.
6287
6288 2000-04-03  Neil Booth  <NeilB@earthling.net>
6289
6290         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
6291         and SYNTAX_ERROR2. Replace `' in messages with ''.
6292         (op_to_str): Make re-entrant.
6293         (_cpp_parse_expr): Implement new error macros. Use | rather
6294         than || to logically or 2 boolean integers.  Simply expression
6295         checking we have a left operand iff needed.
6296
6297 2000-04-03  Nick Clifton  <nickc@cygnus.com>
6298
6299         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
6300
6301 2000-04-03  Philip Blundell  <philb@gnu.org>
6302
6303         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
6304
6305 2000-04-03  Felix Lee  <flee@cygnus.com>
6306
6307         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
6308         (run_shell): Use it.
6309
6310 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
6311
6312         * Makefile.in (stmp-int-hdrs): Make include subdir here...
6313         (stmp-fixproto): ...rather than here.
6314
6315 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
6316
6317         * pa.c (print_operand): Compute 'base' only inside the code paths
6318         that use it.
6319
6320 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
6321
6322         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
6323         CEIL_DIV_EXPR.
6324
6325 2000-04-03  Philipp Thomas  <pthomas@suse.de>
6326
6327         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
6328
6329 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
6330
6331         * Makefile.in (alias.o): Depend on $(TREE_H).
6332
6333 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
6334
6335         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
6336         processing C++.
6337         * cpplib.c (_cpp_handle_directive): Improve warnings for
6338         traditional C and indented directives.
6339
6340         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
6341         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
6342         fixinc/inclhack.def: Indent the # of #include_next one space.
6343         * cp/rtti.c: Un-indent #if and #endif.
6344
6345         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
6346         syntax error, but an error has already been printed.
6347         * cpplex.c (_cpp_parse_assertion): Give a more specific error
6348         message when called with nothing remaining on the line.
6349         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
6350         OTHER token, not an ASSERTION.
6351         * cpplib.c (do_assert): When we create a 'base' node, clear
6352         its aschain pointer.
6353
6354 2000-04-02  Neil Booth <NeilB@earthling.net>
6355
6356         * cppexp.c:  New typedef op_t.  struct operation and struct
6357         token updated to use it.
6358         (op_to_str): New function.
6359         (_cpp_parse_expr): Error messages modified to use op_to_str.
6360
6361 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6362
6363         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
6364         before checking MUST_PASS_IN_STACK.
6365
6366 2000-04-02  Neil Booth <NeilB@earthling.net>
6367
6368         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
6369         flags and initial priority into a single constant.  New
6370         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
6371         (_parse_cpp_expr): Implement new constants.  Take left operand
6372         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
6373         parse indicated by reducing FINISHED token.  Remove new lines
6374         from cpp_error messages.
6375
6376 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
6377
6378         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
6379         permanent obstack.
6380
6381 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
6382
6383         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
6384         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
6385         the strings and function names on the fly.  Take the #sccs
6386         entry out of the table if SCCS_DIRECTIVE is not defined.
6387         (_cpp_handle_directive): Decide if the # was at the beginning
6388         of the line here.  Issue -pedantic warnings for extended
6389         directives here.  Warn about K+R directives with the #
6390         indented, and C89/extended directives with the # not indented,
6391         here.
6392         (do_import, do_include_next, do_warning, do_ident, do_sccs,
6393         do_assert, do_unassert): Don't issue pedantic warning here.
6394
6395         * cpphash.h: Add CPP_WTRADITIONAL macro.
6396         * cpplib.h (struct cpp_options): Rename warn_stringify to
6397         warn_traditional; update comments.
6398         * cppinit.c (handle_option): Set warn_traditional not
6399         warn_stringify.
6400         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
6401         CPP_WTRADITIONAL (pfile).
6402         * cpplex.c (_cpp_lex_token): Don't decide if directives should
6403         be ignored in -traditional mode here.
6404
6405         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
6406         to initialize speccase[] and trigraph_map[].  Delete all
6407         references to pfile->input_speccase.  Always treat '?' as a
6408         special character.  Remove table-initialization code from
6409         _cpp_init_input_buffer.
6410
6411         * cpplib.h (struct cpp_reader): Remove input_speccase field.
6412         * cppinit.c (cpp_cleanup): Don't free input_speccase.
6413
6414 2000-04-01  Richard Henderson  <rth@cygnus.com>
6415
6416         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
6417         (mostlyclean): Likewise.
6418
6419         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
6420         (struct dump_file_info, enum dump_file_index, dump_file): New.
6421         (open_dump_file): Take a dump_file_index not a suffix, and a decl
6422         not a string.  Clean out file if we havn't yet done so.  Do nothing
6423         if the dump isn't enabled.
6424         (close_dump_file): Do nothing if the dump isn't open.  Dump
6425         graph data if requested.
6426         (dump_rtl, clean_dump_file): Remove.
6427         (compile_file): Don't clean the dump files.  Only finalize .bp dump
6428         if flag_test_coverage or flag_branch_probabilities.  Only finalize
6429         .combine dump if optimizing.  Iterate over dump_file to finalize the
6430         graph dumps.
6431         (rest_of_compilation): Update for open_dump_file/close_dump_file.
6432         Convert all uses of dump_rtl.
6433         (decode_d_option): Iterate over dump_file to implement 'a' and to
6434         locate pass-specific dumps.
6435
6436 2000-04-01  Neil Booth <NeilB@earthling.net>
6437
6438         * cppexp.c: Redefine priority constants.
6439         (_cpp_parse_expr): Replace left and right priority scheme with
6440         single priority logic.  Move LOGICAL to same place as COMPARE.
6441         Remove bogus check for multiple unary +/- operators.
6442
6443 2000-04-01  Neil Booth <NeilB@earthling.net>
6444
6445         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
6446         within the switch statement.  Binary operations break out of
6447         the switch naturally.  '(' tokens handled by forcing
6448         immediate shift.  ')' handled by forcing immediate reduce to
6449         the previous '('.  New error messages.
6450
6451 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
6452
6453         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
6454         part', it's already in use.  Use %K instead.  Add a return at the
6455         end of what is now %K.
6456         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
6457
6458 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6459
6460         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
6461         allocate_dynamic_stack_space.
6462         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
6463         update stack_pointer_delta; do not update arg_size_so_far.
6464         (compute_argument_block_size): Use stack_delta instead of
6465         stack_pointer_pending and arg_size_so_far.
6466         (expand_call): Add sanity checking for stack_pointer_delta;
6467         save and restore stack_pointer_delta for SIB, use
6468         stack_pointer_delta for alignment; do not update arg_space_so_far.
6469         (emit_library_call_value): Use stack_pointer_delta for alignment.
6470         (store_one_arg): Do not update arg_space_so_far.
6471         * explow.c (adjust_stack, anti_adjust_stack): Update
6472         stack_pointer_delta.
6473         (allocate_dynamic_stack_space): Add sanity checking for
6474         stack_pointer_delta.
6475         * expr.c (init_expr, clear_pending_stack_adjust): Clear
6476         stack_pointer_delta.
6477         (emit_push_insn): Update stack_pointer_delta.
6478         * function.h (struct expr_status): Add x_stack_pointer_delta;
6479         remove x_arg_space_so_far.
6480         (arg_space_so_far): Remove.
6481         (stack_pointer_delta): New macro.
6482
6483 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
6484
6485         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
6486         Reorder struct cpp_options and struct cpp_reader for better
6487         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
6488         takes two args.  Change all 'char' flags to 'unsigned char'.
6489         Move show_column flag into struct cpp_options.  Don't
6490         prototype cpp_options_init.
6491         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
6492         cppinit.c, cpplex.c, cpplib.c:
6493         Replace CPP_OPTIONS (pfile)->whatever with
6494         CPP_OPTION (pfile, whatever), and likewise for
6495         opts = CPP_OPTIONS (pfile); ... opts->whatever;
6496
6497         * cppinit.c (merge_include_chains): Take a cpp_reader *.
6498         Extract CPP_OPTION (pfile, pending) and work with that
6499         directly.
6500         (cpp_options_init): Delete.
6501         (cpp_reader_init): Turn on on-by-default options here.
6502         Allocate the pending structure here.
6503         (cl_options, enum opt_code): Define these from the same table,
6504         kept in a large macro.  Add -fshow-column and -fno-show-column
6505         options.
6506
6507         * cpperror.c (v_message): If show_column is off, don't print
6508         the column number.
6509
6510         * cppmain.c: Update for new interface.
6511         * fix-header.c: Likewise.
6512
6513 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
6514
6515         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
6516         definition.
6517         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
6518         are passed to any invocation of AR_FOR_TARGET.
6519         (AR_CREATE_FOR_TARGET): New macro.
6520         (AR_EXTRACT_FOR_TARGET): New macro.
6521         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
6522         AR_EXTRACT_FOR_TARGET.
6523         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
6524         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
6525         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
6526         AR_EXTRACT_FOR_TARGET to sub-makes.
6527
6528 2000-03-31  Neil Booth <NeilB@earthling.net>
6529
6530         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
6531         PAREN_INNER_PRIO.
6532         (_cpp_parse_expr): Check for multiple unary +/- operators.
6533         Correct priorities of ':' and '?'.  Treat ')' as having a
6534         value.  Ensure conditional expression is not void.
6535
6536 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
6537
6538         * alias.c (canon_rtx): Make it global.
6539         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
6540         equality.
6541         * cse.c (struct table_elt): Add canon_exp.
6542         (insert): Clear it.
6543         (invalidate): Canonicalize expressions only once.
6544         * rtl.h (canon_rtx): Declare.
6545
6546 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
6547
6548         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
6549         * alias.c (reg_known_value): Add comments.
6550         (init_alias_analysis): Likewise.
6551         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
6552         address.
6553         (cse_basic_block): Fix typo in comment.
6554         * emit-rtl.c: Include hashtab.h.
6555         (const_int_htab): New variable.
6556         (const_int_htab_hash): New function.
6557         (const_int_htab_eq): Likewise.
6558         (rtx_htab_mark_1): Likewise.
6559         (rtx_htab_mark): Likewise.
6560         (gen_rtx_CONST_INT): Cache all CONST_INTs.
6561         (unshare_all_rtx): Fix formatting.
6562         (init_emit_once): Initialize const_int_htab.
6563         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
6564         address.
6565         * rtl.texi: Document the fact that all CONST_INTs with the same
6566         value are shared.
6567
6568 2000-03-30  Richard Henderson  <rth@cygnus.com>
6569
6570         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
6571
6572 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
6573
6574         * configure.in: Comment out --enable-c-cpplib stanza.
6575         * configure: Regenerate.
6576
6577 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6578
6579         * expr.c (store_constructor): Properly compute displacement and
6580         alignment when offset is variable.
6581
6582         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
6583         cases of alignment in bytes.
6584
6585 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
6586
6587         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
6588         since it is used to generate c-parse.y.
6589         * objc-parse.c, objc-parse.y: Regenerated.
6590
6591         * function.c (expand_function_end): Pass alignment argument to
6592         emit_block_move in bits, not bytes.
6593
6594 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6595
6596         * expr.c (move_by_pieces_ninsns): Fix one more missing align
6597         correction.
6598
6599         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
6600
6601         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
6602         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
6603         * function.c (assign_parms): Likewise.
6604         * integrate.c (expand_inline_function): Likewise.
6605         * stmt.c (expand_decl): Likewise.
6606         (copy_rtx_and_substitute): Likewise.
6607         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
6608         (clear_by_pieces): Fix error in last change.
6609         * emit-rtl.c (init_emit): Set known registers alignment in bits.
6610         * function.h (regno_pointer_align): Now unsigned.
6611         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
6612         is in bits.
6613         * config/i386/i386.c (aligned_operand): Likewise.
6614         * config/sparc/sparc.c (mem_min_alignment): Likewise.
6615         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
6616         (unaligned_memory_operand): Likewise.
6617         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
6618         Also make alignments and sizes unsigned and some whitespace cleanup.
6619         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
6620
6621         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
6622         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
6623         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
6624         (expand_builtin_memset): Likewise, but to clear_storage.
6625         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
6626         (restore_fixed_argument_area): Likewise.
6627         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
6628         (load_register_parameters): Likewise, to emit_group_load.
6629         (expand_call): Likewise, to emit_group_store and emit_block_move.
6630         (emit_library_call_value_1): Likewise, to emit_block_move.
6631         (store_one_arg): Likewise, and to emit_push_insn.
6632         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
6633         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
6634         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
6635         (emit_block_move, emit_group_load, emit_group_store): Likewise.
6636         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
6637         (expand_assigment, store_expr, store_constructor_field): Likewise.
6638         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
6639         (store_constructor, store_field, get_inner_reference): Likewise.
6640         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
6641         (expand_expr, case COMPONENT_REF): Likewise.
6642         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
6643         and positions; reindent code.
6644         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
6645         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
6646         (assign_parms): Likewise to emit_group_store.
6647         * optabs.c (prepare_cmp_insn): Alignment is in bits.
6648         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
6649         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
6650         (expand_return): Likewise to {extract,store}_bit_field.
6651         * stor-layout.c (get_mode_alignment): Minor cleanup.
6652         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
6653         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
6654
6655 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6656
6657         * config/arm/arm.h: Undo effects of previous delta:
6658         (ASM_SPEC): Do not define.
6659         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
6660
6661         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
6662         typo.
6663
6664 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6665
6666         * cppinit.c (cpp_start_read): Call initialize_dependency_output
6667         only after reading in the primary source file.
6668
6669 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
6670
6671         * c-common.c (c_common_nodes_and_builtins): The first parameter to
6672         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
6673         or a reference to a va_list.
6674         * builtins.c (stabilize_va_list): Simplify now we don't have to
6675         work around C array address decay.
6676         * c-typeck.c (convert_for_assignment): Handle assignment to
6677         a reference parameter by taking the address of the RHS.
6678         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
6679         (va_copy): Likewise.
6680         (__va_copy): Likewise.
6681         * ginclude/varargs.h (va_start): Likewise.
6682         (__va_copy): Likewise.
6683
6684 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
6685
6686         * i386/djgpp.h: Remove extraneous "+".
6687
6688         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
6689
6690         * calls.c (expand_call): Fix typo in last change.
6691
6692 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
6693
6694         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
6695         been expanded.
6696
6697 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6698
6699         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
6700         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
6701         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
6702         * tree.c (bit_position, byte_position): Likewise.
6703         * tree.h: Declare new functions.
6704
6705 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6706
6707         * config/arm/arm.c: Minor formatting changes/
6708         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
6709         already defined.
6710         (ASM_SPEC): Define if not already defined.
6711
6712 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6713
6714         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
6715         _cpp_calc_hash.
6716
6717 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
6718
6719         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
6720         value, don't output it as unsigned.
6721
6722 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
6723
6724         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
6725
6726 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6727
6728         * c-common.c (c_common_nodes_and_builtins): Don't special case
6729         cplus_mode when declaring builtin bzero/bcmp, always avoid
6730         prototype arguments.
6731
6732 2000-03-29  Bruce Korb  <bkorb@gnu.org>
6733
6734         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
6735         to a non-file
6736
6737 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6738
6739         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
6740         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
6741         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
6742         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
6743         (save_fixed_argument_area, restore_fixed_argument_area):
6744         conditionize by #ifdef REG_PARM_STACK_SPACE only.
6745         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
6746         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
6747         (precompute_register_parameters): Avoid #ifdefs on
6748         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
6749         (stire_one_args): Likewise.
6750         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
6751         (emit_library_call_value_1): Likewise.
6752         (compute_argument_block_size): Align to STACK_BOUNDARY only for
6753         ACCUMULATE_OUTGOING_ARGS.
6754         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
6755         value.
6756         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
6757         (use_crosses_set_p): Likewise.
6758         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
6759         #define ACCUMULATE_OUTGOING_ARGS 1.
6760         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
6761         frames.
6762         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
6763         constants.
6764         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
6765         (TARGET_SWITCHES): Add push-args, no-push-args,
6766         accumulate-outgoing-args and no-accumulate-outgoing-args.
6767         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
6768         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
6769         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
6770         and PUSH_ROUNDING.
6771         (emit_push_insn): Likewise.
6772         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6773         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
6774         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6775         (STACK_DYNAMIC_OFFSET): Define correctly for both
6776         ACCUMULATE_OUTGOING_ARGS and normal mode.
6777         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
6778         * tm.texi (PUSH_ARGS): Document.
6779         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
6780
6781 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6782
6783         * flags.h (flag_optimize_sibling_calls): Declare.
6784         * calls.c (expand_call): Fail sibcall when
6785         !flag_optimize_sibling_calls
6786         * invoke.texi (flag_optimize_sibling_calls): Document.
6787         * toplev.c (flag_optimize_sibling_calls): New global variable.
6788         (f_options): Add flag_optimize_sibling_calls.
6789         (rest_of_compilation): Conditionize
6790         optimize_sibling_and_tail_recursive_calls by
6791         flag_optimize_sibling_calls.
6792         (main): Set flag_optimize_sibling_calls for -O2.
6793         * stmt.c (expand_return): Conditionize tail recursion by
6794         flag_optimize_sibling_calls.
6795
6796 2000-03-29  Richard Henderson  <rth@cygnus.com>
6797
6798         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
6799         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
6800
6801 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
6802
6803         * except.c (add_eh_table_entry): Mark type_info's as referenced.
6804
6805 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6806
6807         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
6808         is given.
6809         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
6810         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
6811         * config/rs6000/aix.h: then modified likewise.
6812
6813 2000-03-28  Richard Henderson  <rth@cygnus.com>
6814
6815         * rtl.h: Redistribute enum reg_note documentation.
6816         Kill trailing whitespace.
6817         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
6818         Kill trailing whitespace.
6819
6820 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
6821
6822         * cppfiles.c (hash_IHASH): Just return i->hash.
6823         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
6824         htab_find_with_hash.
6825         (cpp_read_file): Likewise.
6826         (find_include_file): Likewise.  Properly initialize
6827         ih->nshort.  Share ih->name and ih->nshort if possible.
6828         * cpphash.c (_cpp_calc_hash): New function.
6829         (hash_HASHNODE): Just return h->hash.
6830         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
6831         htab_find_with_hash.
6832         * cpphash.h: Prototype _cpp_calc_hash.
6833         * cppinit.c (initialize_builtins): Provide a valid hash
6834         to _cpp_make_hashnode, using _cpp_calc_hash.
6835
6836         * cpphash.c (collect_expansion): # is not a special character
6837         in object-like macros.  In -traditional mode, /**/ is not
6838         token paste at the beginning or end of the line.
6839         * cpplib.c (do_include, do_import, do_include_next): If
6840         parse_include fails, return immediately.
6841
6842 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
6843
6844         * config/arm/arm.md (return peepholes): Update to reflect the new
6845         call insn patterns.
6846         * config/arm/arm.c (arm_volatile_func): Also check
6847         current_function_nothrow.
6848         (output_return_instruction, output_func_prologue): Use it.
6849         (arm_output_epilogue, arm_expand_prologue): Likewise.
6850
6851 2000-03-27  Tom Tromey  <tromey@cygnus.com>
6852
6853         * gcc.c (handle_braces): In {x*...} case, break out of loop if
6854         switch is found.
6855
6856 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6857
6858         * expr.c (store_constructor): SIZE now signed.
6859         For EXPR_SIZE, don't evaluate size; just needed if constant.
6860         * fold-const.c (fold): Fix a number of cases when folded tree is
6861         wrong type.
6862         * function.c (flush_addressof): Reenable.
6863         * tree.h (flush_addressof): Likewise.
6864         * toplev.c (independent_decode_option): Look at strings_processed.
6865         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
6866
6867 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
6868
6869         * sibcall.c (indentify_call_return_value): Find last call in the chain;
6870         Allow stack adjustment after function call.
6871
6872         * regmove.c (struct csa_memlist): Make mem field rtx *.
6873         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
6874         (try_apply_stack_adjustment): Replace whole MEM rtx.
6875         (combine_stack_adjustments_for_block): Update calls
6876         to record_one_stack_ref.
6877
6878 2000-03-28  Neil Booth  <NeilB@earthling.net>
6879
6880         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
6881         '\\' rather than a null character, so nulls are not special.  Fix
6882         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
6883         speed trigraph conversion.
6884         (_cpp_init_input_buffer): Initialize trigraph map.
6885
6886 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
6887
6888         * config/i386/i386.c (output_387_binary_op): Correct intel
6889         mode assembly output, and add spaces after commas in AT&T
6890         output.  Correct Unixware assembler comment.  Document input
6891         constraints.  Comment fp operations.  Reduce profligate buffer
6892         size.  Remove extraneous abort.  Localize temp var.
6893         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
6894         (output_fix_trunc): Add spaces after commas in assembly output.
6895
6896 2000-03-27  Richard Henderson  <rth@cygnus.com>
6897
6898         * i386-protos.h (ix86_match_ccmode): Declare.
6899         * i386.c (ix86_match_ccmode): New.
6900         (ix86_expand_fp_compare): Update for pattern renames.
6901         (ix86_expand_strlensi_unroll_1): Likewise.
6902         * i386.h (EXTRA_CC_MODES): Add CCZ.
6903         (SELECT_CC_MODE): Use it for EQ/NE zero.
6904         * i386.md (cmpsi_ccz_1): New.
6905         (cmpqi_ccz_1): New.
6906         (*testsi_ccz_1): New.
6907         (testqi_ccz_1): New.
6908         (cmpsi_ccno_1): Rename from cmpsi_0.
6909         (testsi_ccno_1): Rename from testsi_1.
6910         (testqi_ccno_1): Rename from testqi_1.
6911         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
6912         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
6913         (*cmphi_0): Use ix86_match_ccmode.
6914         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
6915         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
6916         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
6917         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
6918         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
6919         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
6920         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
6921         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
6922         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
6923         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
6924         (appropriate peepholes): Likewise.
6925         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
6926         (*subsi_3, *subhi_3, *subqi_3): Remove.
6927         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
6928         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
6929         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
6930         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
6931         (x86_shift_adj_1): Use CCZ.
6932         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
6933
6934 2000-03-27  Stan Cox  <scox@cygnus.com>
6935
6936         * resource.h (mark_resource_type): New.
6937         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
6938         find_free_register): Use mark_resource_type.
6939         (mark_set_resources): Change include_delayed_effects
6940         to mark_resource_type.
6941         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
6942         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
6943         Use mark_resource_type.
6944
6945 2000-03-27  Richard Henderson  <rth@cygnus.com>
6946
6947         * i386.md (call_pop_0, call_value_pop_0): New.
6948         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
6949         (call_value_pop_1): Likewise.
6950         (call_0, call_value_0): New.
6951         (call_1, call_value_1): Remove constraint from unused arg.
6952
6953 2000-03-27  Nick Clifton  <nickc@cygnus.com>
6954
6955         * invoke.texi (Spec Files): Document new spec % command created by
6956         Tom Tromey's recent patch.
6957
6958 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
6959
6960         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
6961         if not defined.
6962
6963 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6964
6965         * expr.c (expand_assignment): Fix typo in last change.
6966
6967         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
6968
6969 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6970
6971         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
6972         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
6973         and DECL_INLINE if FUNCTION_DECL.
6974         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
6975         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
6976         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
6977         (combine_parm_decls): Likewise.
6978         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
6979         * print-tree.c (print_node): Likewise.
6980         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
6981         DECL_TRANSPARENT_UNION on proper decl types.
6982         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
6983         * stor-layout.c (layout_decl): Only check DECL_PACKED and
6984         DECL_BIT_FIELD of FIELD_DECL.
6985         * tree.h (DECL_RESULT_FLD): New macro.
6986
6987         * expr.c (expand_assignment): Add code to handle variable-sized
6988         BLKmode case.
6989
6990 2000-03-26  Richard Henderson  <rth@cygnus.com>
6991
6992         * calls.c (expand_call): Pass parms not original exp to
6993         optimize_tail_recursion.  Mind return value instead of looking
6994         for a barrier.
6995         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
6996         call_expr.  Move checks for call_expr and current_function_decl ...
6997         (expand_return): ... here.
6998
6999 2000-03-26  Tom Tromey  <tromey@cygnus.com>
7000
7001         * gcc.c (handle_braces): Recognize `%{<S}' construct.
7002         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
7003         defines.
7004         (process_command): Use them.
7005         (check_live_switch): Likewise.
7006         (give_switch): Skip ignored switches.
7007
7008 2000-03-26  Jan Hubicka  <jh@suse.cz>
7009
7010         * jump.c (jump_optimize_1): Fix typo in elide optimizations
7011         for minimal jump pass test.
7012
7013 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
7014
7015         * integrate.c (function_cannot_inline_p): Do inline functions that
7016         return `void'.
7017
7018 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7019
7020         * stor-layout.c (layout_type, set_sizetype): early_type_list is
7021         now a list of TREE_LIST entries, not types.
7022         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
7023
7024         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
7025         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
7026         int_bit_position.
7027         * config/mips/mips.c (function_arg): Likewise; also remove cast
7028         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
7029         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
7030         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
7031         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
7032         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
7033         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
7034         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
7035         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
7036         num_adjusts now unsigned.
7037         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
7038         * config/sparc/sparc.c (struct function_arg_record_value_parms):
7039         NREGS now unsigned.
7040         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
7041         as is BITPOS variable; use host_integerp and int_bit_position.
7042         (function_arg_record_value_2): Likewise.
7043         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
7044         Variable REGNO now unsigned.
7045         (function_arg_record_value): NREGS now unsigned.
7046
7047 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
7048
7049         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
7050
7051 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7052
7053         * Rework fields used to describe positions of bitfields and
7054         modify sizes to be unsigned and use HOST_WIDE_INT.
7055         * alias.c (reg_known_value_size): Now unsigned.
7056         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
7057         (really_start_incremental_init): Use bitsize_zero_node.
7058         (push_init_level, pop_init_level, output_init_element): Likewise.
7059         Use bitsize_unit_node and bitsize_one_node.
7060         (output_pending_init_elements, process_init_element): Likewise.
7061         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
7062         (make_extraction): Position and length HOST_WIDE_INT and unsigned
7063         HOST_WIDE_INT, respectively.
7064         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
7065         (num_sign_bit_copies): Returns unsigned.
7066         BITWIDTH now unsigned; rework arithmetic.
7067         Remove recursive call from arg to MAX.
7068         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
7069         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
7070         REGNO now unsigned.
7071         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
7072         (find_split_point, expand_compound_operation, make_extraction): LEN
7073         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
7074         (make_field_assignment): Likewise.
7075         (combine_simplify_rtx): Add cast.
7076         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
7077         (force_to_mode): WIDTH now unsigned; add cast.
7078         (if_then_else_cond): SIZE now unsigned.
7079         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
7080         (extended_count): Now returns unsigned.
7081         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
7082         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
7083         (simplify_comparison): MODE_WIDTH now unsigned.
7084         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
7085         (mark_used_regs_combine): Likewise; rework arithmetic.
7086         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
7087         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
7088         (record_promoted_value): REGNO now unsigned.
7089         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
7090         (get_last_value): REGNO now unsigned.
7091         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
7092         (reg_dead_regno, reg_dead_endregno): Now unsigned.
7093         (remove_death): Arg REGNO now unsigned.
7094         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
7095         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
7096         now unsigned.
7097         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
7098         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
7099         (struct cse_reg_info): REGNO now unsigned.
7100         (cached_regno): Now unsigned.
7101         (REGNO_QTY_VALID_P): Add cast.
7102         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
7103         (remove_invalid_regs): Likewise.
7104         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
7105         as are variables END and I.
7106         (get_cse_reg_info, insert): Likewise.
7107         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
7108         (canon_hash): Likewise.
7109         (insert_regs, lookup_for_remove): REGNO now unsigned.
7110         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
7111         New variable RN.
7112         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
7113         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
7114         * emit-rtl.c (subreg_realpart_p): Add cast.
7115         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
7116         (operand_subword_force): Arg I is now unsigned.
7117         * except.c (eh_regs): Variable I is now unsigned.
7118         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
7119         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
7120         length is unsigned HOST_WIDE_INT; likewise for internal variables.
7121         (store_split_bit_field, extract_fixed_bit_field): Likewise.
7122         (extract_split_bit_field, store_bit_field, extract_bit_field):
7123         Likewise.
7124         * expr.c (store_constructor_fields, store_constructor, store_field):
7125         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
7126         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
7127         (do_jump): Likewise.
7128         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
7129         MAX_SIZE is now unsigned.
7130         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
7131         (emit_group_store): Likewise.
7132         (emit_move_insn): I now unsigned.
7133         (store_constructor): Use host_integerp, tree_low_cst, and
7134         bitsize_unit_node.
7135         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
7136         Rework all calculations to use trees and new fields.
7137         * expr.h (promoted_input_arg): Regno now unsigned.
7138         (store_bit_field, extract_bit_field): Adjust types of pos and size.
7139         (mark_seen_cases): Arg is HOST_WIDE_INT.
7140         * flow.c (verify_wide_reg_1): REGNO now unsigned.
7141         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
7142         precisions and alignments are unsigned.
7143         (optimize_bit_field_compare, fold_truthop): Likewise.
7144         (int_const_binop): Adjust threshold for size_int_type_wide call.
7145         (fold_convert): Likewise.
7146         (size_int_type_wide): Make table larger and fix thinko that only
7147         had half of table used.
7148         (all_ones_mask_p, fold): Precisions are unsigned.
7149         * function.c (put_reg_info_stack): REGNO is unsigned.
7150         (instantiate_decl): Size is HOST_WIDE_INT.
7151         (instantiate_virtual_regs): I is unsigned.
7152         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
7153         (promoted_input_arg): REGNO is unsigned.
7154         * function.h (struct function): x_max_parm_reg is now unsigned.
7155         * gcse.c (max_gcse_regno): Now unsigned.
7156         (struct null_pointer_info): min_reg and max_reg now unsigned.
7157         (lookup_set, next_set): REGNO arg now unsigned.
7158         (compute_hash_table): REGNO and I now unsigned.
7159         (handle_avail_expr): regnum_for_replacing now unsigned.
7160         (cprop_insn): REGNO now unsigned.
7161         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
7162         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
7163         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
7164         * hard-reg-set.h (reg_class_size): Now unsigned.
7165         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
7166         * jump.c (mark_modified_reg): I now unsigned; add cast.
7167         (rtx_equal_for_thread_p): Add cast.
7168         * loop.c (max_reg_before_loop): Now unsigned.
7169         (struct_movable): REGNO now unsigned.
7170         (try_copy_prop): REGNO arg unsigned.
7171         (regs_match_p): XN and YN now unsigned.
7172         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
7173         (strength_reduce): Likewise; NREGS also unsigned.
7174         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
7175         * loop.h (struct iv_class): REGNO now unsigned.
7176         (max_reg_before_loop, first_increment_giv, last_increment_giv):
7177         Now unsigned.
7178         * machmode.h (mode_size, mode_unit_size): Now unsigned.
7179         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
7180         * optabs.c (expand_binop): I and NWORDS now unsigned.
7181         (expand_unop): I now unsigned.
7182         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
7183         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
7184         * real.c (significand_size): Now returns unsigned.
7185         * real.h (significand_size): Likewise.
7186         * regclass.c (reg_class_size): Now unsigned.
7187         (choose_hard_reg_mode): Both operands now unsigned.
7188         (record_reg_classes): REGNO and NR now unsigned.
7189         (reg_scan): NREGS now unsigned.
7190         (reg_scan_update): old_max_regno now unsigned.
7191         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
7192         * reload.c (find_valid_class): BEST_SIZE now unsigned.
7193         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
7194         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
7195         Likewise for variable R.
7196         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
7197         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
7198         (find_equiv_reg): Add casts.
7199         (regno_clobbered_p): Arg REGNO now unsigned.
7200         * reload.h (struct reload): NREGS now unsigned.
7201         (refers_to_regno_for_reload_p): Regno args are unsigned.
7202         (regno_clobbered_p): Likewise.
7203         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
7204         (compute_use_by_pseudos): REGNO now unsigned.
7205         (find_reg): I and J now unsigned, new variable K, and change loop
7206         variables accordingly; THIS_NREGS now unsigned.
7207         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
7208         (spill_hard_reg): REGNO arg now unsigned; add casts.
7209         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
7210         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
7211         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
7212         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
7213         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
7214         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
7215         (emit_reload_insns): REGNO now unsigned.
7216         (reload_cse_move2add): Add cast.
7217         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
7218         and rework loop.
7219         * resource.c (mark_referenced_resources, mark_set_resources): New
7220         variable R; REGNO and LAST_REGNO now unsigned.
7221         (mark_target_live_regs): J and REGNO now unsigned.
7222         * rtl.c (mode_size, mode_unit_size): Now unsigned.
7223         * rtl.h (union rtunion_def): New field rtuint.
7224         (XCUINT): New macro.
7225         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
7226         (operand_subword, operand_subword_force): Word number is unsigned.
7227         (choose_hard_reg_mode): Operands are unsigned.
7228         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
7229         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
7230         (regno_use_in, combine_instructions, remove_death): Likewise.
7231         (reg_scan, reg_scan_update): Likewise.
7232         (extended_count): Return is unsigned.
7233         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
7234         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
7235         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
7236         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
7237         (reg_reg_last_1): FIRS and LAST now unsigned.
7238         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
7239         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
7240         now unsigned.
7241         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
7242         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
7243         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
7244         (replace_regs): Arg NREGS now unsigned.
7245         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
7246         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
7247         (simplify_binary_operation): Likewise.
7248         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
7249         THIS_LAST now unsigned.
7250         (cselib_record_set): Add cast.
7251         * ssa.c (ssa_max_reg_num): Now unsigned.
7252         (rename_block): REGNO now unsigned.
7253         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
7254         sizes now unsigned.
7255         (all_cases_count): Just return -1 not -2.
7256         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
7257         Rework tests to use trees whenever possible.
7258         Use host_integerp and tree_low_cst.
7259         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
7260         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
7261         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
7262         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
7263         (smallest_mode_for_size): Likewise.
7264         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
7265         KNOWN_ALIGN is now an alignment, so simplify code.
7266         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
7267         (start_record_layout): Renamed from new_record_layout_info.
7268         Update to new fields.
7269         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
7270         New functions.
7271         (place_union_field): Renamed from layout_union_field.
7272         Update to use new fields in rli.
7273         (place_field): Renamed from layout_field.
7274         Major rewrite to use new fields in rli; pass alignment to layout_decl.
7275         (finalize_record_size): Rework to use new fields in rli and handle
7276         union.
7277         (compute_record_mode): Rework to simplify and to use new DECL fields.
7278         (finalize_type_size): Make rounding more consistent.
7279         (finish_union_layout): Deleted.
7280         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
7281         (layout_type, case RECORD_TYPE): Call new function names.
7282         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
7283         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
7284         (get_best_mode): UNIT is now unsigned; remove casts.
7285         * tree.c (bit_position): Compute from new fields.
7286         (byte_position, int_byte_position): New functions.
7287         (print_type_hash_statistics): Cast to remove warning.
7288         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
7289         (build_index_type): Likewise; make subtype of sizetype.
7290         (build_index_2_type): Pass sizetype to build_range_type.
7291         (build_common_tree_nodes): Use size_int and bitsize_int to
7292         initialize nodes; add bitsize_{zero,one,unit}_node.
7293         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
7294         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
7295         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
7296         (DECL_FIELD_BITPOS): Deleted.
7297         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
7298         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
7299         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
7300         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
7301         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
7302         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
7303         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
7304         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
7305         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
7306         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
7307         (DECL_ALIGN): Adjust to new field in union.
7308         (DECL_OFFSET_ALIGN): New field.
7309         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
7310         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
7311         (union tree_decl): Add struct for both aligns.
7312         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
7313         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
7314         (struct record_layout_info): Rework fields to have offset
7315         alignment and byte and bit position.
7316         (start_record_layout, place_field): Renamed from old names.
7317         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
7318         (byte_position, int_byte_position): Likewise.
7319         (get_inner_reference): Change types of position and length.
7320         * unroll.c (unroll_loop): New variable R; use for some loops.
7321         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
7322         (calculate_giv_inc): Arg REGNO now unsigned.
7323         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
7324         * varasm.c (assemble_variable): Clean up handling of size using
7325         host_integerp and tree_low_cst.
7326         (decode_addr_const): Use byte, not bit, position.
7327         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
7328         use tree_low_cst and int_bit_position.
7329         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
7330
7331 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
7332
7333         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
7334         (reorder_block_def): New members eff_head and eff_end.
7335         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
7336         (verify_insn_chain): New function.
7337         (skip_insns_between_block): Add code to skip deleted insns.
7338         Check for note before using.
7339         (chain_reorder_blocks): Replace calls to skip_insns_between_block
7340         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
7341         Check for note before using.
7342         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
7343         (fixup_reorder_chain): Restructure, clean up, defect removal.
7344         (reorder_basic_blocks): Remove last_insn and references to it.
7345         Moved insn chain verification code into a new function (see above).
7346         Delete defective code that sets last insn.
7347         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
7348         all blocks.
7349
7350 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7351
7352         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
7353
7354 2000-03-24  Richard Henderson  <rth@cygnus.com>
7355
7356         * tree.c (lang_safe_for_unsave): Remove.
7357         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
7358         allowing for two levels of unsafeness.  Remove lang hook.
7359         * tree.h: Update declarations.
7360         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
7361         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
7362         Always fail sibcalls when there are pending cleanups.
7363
7364 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
7365
7366         * flow.c (propagate_block): When we delete an ADDR_VEC,
7367         also delete the BARRIER following it if there is one.
7368
7369 2000-03-24  Richard Henderson  <rth@cygnus.com>
7370
7371         * builtins.c (expand_builtin_bzero): Convert `length' argument
7372         to sizetype.
7373
7374 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
7375
7376         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
7377         comparison if regno's are equal.
7378         * calls.c (initialize_argument_informat): Add ecf_flags argument.
7379         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
7380         (expand_call): Update caller.
7381         Avoid making a sibling call if argument size of the callee is larger
7382         than argument size of the caller.
7383         Call hard_function_value with outgoing set if in sibcall pass.
7384         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
7385
7386         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
7387         Change LEAF_REGISTERS from an array initializer to actual array
7388         identifier. Move static global variable into the function.
7389         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
7390         sequences for leaf functions.
7391         * global.c (global_alloc): Likewise.
7392         * tm.texi (LEAF_REGISTERS): Update documentation.
7393
7394         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
7395         TARGET_FLAT leaf disabling hack.
7396         (LEAF_REGISTERS): Changed from an array initializer to actual array
7397         identifier to avoid duplication and remove the above hack.
7398         (FUNCTION_OK_FOR_SIBCALL): Define.
7399         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
7400         always like call attribute.
7401         (eligible_for_sibcall_delay): New attribute.
7402         (sibcall): New delay type.
7403         (sibcall, sibcall_value, sibcall_epilogue): New expands.
7404         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
7405         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
7406         * config/sparc/sparc.c (sparc_leaf_regs): New array.
7407         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
7408         New functions.
7409         (output_function_epilogue): Move part of the code into
7410         output_restore_regs.
7411         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
7412         TYPE_SIBCALL.
7413         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
7414         prototypes.
7415
7416         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
7417         until infrastructure is finished.
7418
7419 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
7420
7421         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
7422         (save_parm_insns): Not here.
7423
7424 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7425
7426         * builtins.c (expand_builtin_bzero): New function.
7427         (expand_builtin): Handle bzero.
7428
7429         * builtins.def: Add BUILT_IN_BZERO.
7430
7431         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7432         prototype & function for bzero.
7433
7434 2000-03-23  Michael Meissner  <meissner@redhat.com>
7435
7436         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
7437         change adding TARGET_FP to the TF floating point insns, except for
7438         trunctfsf2, which generates direct calls to truncdfsf2.
7439
7440 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
7441
7442         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
7443         try to protect against middle-end changes that break binary
7444         compatibility.
7445         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
7446
7447 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7448
7449         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
7450
7451 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7452
7453         * calls.c (expand_call): If TARGET is passed by reference and
7454         is readonly, write a CLOBBER.
7455
7456 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7457
7458         * builtins.c (expand_builtin): Handle bcmp.
7459
7460         * builtins.def: Add BUILT_IN_BCMP.
7461
7462         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7463         prototype & function for bcmp.
7464
7465 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
7466
7467         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
7468         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
7469         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
7470
7471 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
7472
7473         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
7474         alternative when using -fp64 -gp32.
7475
7476 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7477
7478         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
7479         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
7480         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
7481
7482         * frame.h (frame_state): Revert last change.
7483         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
7484         * libgcc2.c (throw_helper): Revert last change.
7485
7486 2000-03-22  Richard Henderson  <rth@cygnus.com>
7487
7488         * stmt.c (expand_asm_operands): Don't promote the temporary.
7489
7490 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7491
7492         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
7493         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
7494           c_get_alias_set): Likewise.
7495         * c-decl.c (duplicate_decls): Likewise.
7496         * c-typeck.c (default_conversion,build_unary_op): Likewise.
7497         * calls.c (initialize_argument_information): Likewise.
7498         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
7499         Likewise.
7500         * dwarfout.c (decl_class_context,output_type): Likewise.
7501         * expr.c (get_inner_reference): Likewise.
7502         * fold-const.c (simple_operand_p,fold): Likewise.
7503         * function.c (aggregate_value_p): Likewise.
7504         * stmt.c (expand_asm_operands): Likewise.
7505         * varasm.c (named_section): Likewise.
7506
7507 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7508
7509         Implement dwarf2 exception handling for the ARM.
7510         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
7511         (DWARF_FRAME_RETURN_COLUMN): Define.
7512         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
7513         REG_FRAME_RELATED_EXPR note.
7514         (emit_sfm): Likewise.
7515         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
7516         * dwarf2out.c (reg_save): Handle saving a register to itself.
7517         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
7518         * except.c (eh_regs): Don't use the static chain reg if it's
7519         callee-saved.
7520         * frame.h (frame_state): Add cfa_saved field.
7521         * frame.c (execute_cfa_insn): Set it.
7522         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
7523         the epilogue.
7524         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
7525         Now takes a parm.
7526         (instantiate_virtual_regs): Adjust.
7527         * tm.texi: Adjust.
7528         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7529         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7530         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
7531
7532         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
7533         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
7534
7535 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7536
7537         * builtins.def: New file.
7538
7539         * Makefile.in (TREE_H): Depend on builtins.def.
7540
7541         * builtins.c (built_in_names): Use builtins.def.
7542
7543         * tree.h (built_in_function): Likewise.
7544
7545 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
7546
7547         * tree.c (size_in_bytes): Return size_zero_node, not
7548         integer_zero_node.
7549
7550 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
7551
7552         * config/fp-bit.c (pack_d): Correct the case when a denormal
7553         is rounded up and stops being denormal.
7554
7555 2000-03-21  Richard Henderson  <rth@cygnus.com>
7556
7557         * config/alpha/alpha.c (function_arg): Check for void_type_node
7558         before using MUST_PASS_IN_STACK.
7559
7560 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
7561
7562         * regmove.c (combine_stack_adjustments_for_block): Check that
7563         the stack pointer is a valid memory address.
7564
7565 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
7566
7567         * calls.c: re-install Mar 16 emit_library_call merge.
7568
7569 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
7570
7571         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
7572         we cannot be sure that if reload_completed base register will
7573         be properly aligned.
7574
7575 2000-03-21  Richard Henderson  <rth@cygnus.com>
7576
7577         * flow.c (delete_block): Fix typo last change.
7578
7579 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
7580
7581         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
7582         not COMPLETE_TYPE_P, to check the type of the expression.
7583
7584 2000-03-21  Michael Meissner  <meissner@redhat.com>
7585
7586         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
7587         all floating point insns that just tested the macro
7588         TARGET_HAS_XFLOATING_LIBS.
7589         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
7590         used to only use the gprs.
7591
7592 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
7593
7594         * tree.h (COMPLETE_TYPE_P): New macro.
7595         (COMPLETE_OR_VOID_TYPE_P): New macro.
7596         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
7597         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
7598         * c-aux-info.c (gen_type): Use them.
7599         * c-common.c (c_expand_expr_stmt): Likewise.
7600         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
7601         grokdeclarator, grokparms, finish_struct, start_function,
7602         store_parm_decls, combine_parm_decls): Likewise.
7603         * c-parse.y (cast_expr): Likewise.
7604         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
7605         c_size_in_bytes, c_alignof, build_component_ref,
7606         build_indirect_ref, build_array_ref, convert_arguments,
7607         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
7608         * calls.c (initialize_argument_information): Likewise.
7609         * convert.c (convert_to_integer): Likewise.
7610         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
7611         * dwarfout.c (location_or_const_value_attribute,
7612         output_enumeration_type_die, output_structure_type_die,
7613         output_union_type_die, output_type): Likewise.
7614         * expr.c (safe_from_p, expand_expr): Likewise.
7615         * function.c (assign_parms): Likewise.
7616         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
7617         * tree.c (build_array_type, build_function_type,
7618         build_method_type, build_offset_type, build_complex_type): Likewise.
7619         * c-parse.c, c-parse.h: Regenerated.
7620
7621 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7622
7623         * config/c4x/rtems.h: Include config/rtems.h.
7624
7625 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
7626
7627         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
7628         decl is a FUNCTION_DECL
7629
7630 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
7631
7632         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
7633         function uses output registers.  Don't save RP for leaf functions.
7634         Do save RP even if no epilogue.
7635         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
7636         (CALL_USED_REGISTERS): Unmark in registers.
7637         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
7638         to near the middle.
7639
7640 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7641
7642         * config/rs6000/rs6000.md (bunordered): New expander.
7643         (bordered): New expander.
7644         (buneq): New expander.
7645         (bunge): New expander.
7646         (bungt): New expander.
7647         (bunle): New expander.
7648         (bunlt): New expander.
7649         (bltgt): New expander.
7650
7651         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
7652         (ccr_bit_negated_p): New function.
7653         (print_operand): For %C, generate appropriate cror for UNEQ,
7654         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
7655
7656 2000-03-20  Andreas Jaeger  <aj@suse.de>
7657
7658         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
7659         warning.
7660
7661         * tree.h (safe_for_unsave): Prototype.
7662
7663 2000-03-20  Richard Henderson  <rth@cygnus.com>
7664
7665         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
7666         (combine_stack_adjustments_for_block): Don't allow sp references
7667         in the side of a set we're not fixing up.
7668         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
7669         after life_analysis.
7670
7671 2000-03-20  Richard Henderson  <rth@cygnus.com>
7672
7673         * calls.c (expand_call): Don't bother generating tail call
7674         sequences if there are pending cleanups.  Use
7675         expand_start_target_temps/expand_end_target_temps to elide
7676         cleanups created during sibcall expansion.
7677
7678 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7679
7680         * configure.in: Set $IFS to a value if it doesn't already have one
7681         in the --enable-checking handling.
7682         * configure: Regenerate.
7683
7684 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7685
7686         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
7687         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7688         Regenerated.
7689
7690 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
7691
7692         * jump.c (delete_noop_moves): Remove code attempting to
7693         combine stack adjustments.
7694
7695 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7696
7697         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
7698         * except.c (emit_cleanup_handler): Use them.
7699         (expand_end_all_catch): Likewise.
7700         * function.c (fixup_var_refs): Likewise.
7701         (expand_function_end): Clear catch_clauses_last.
7702         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
7703         * except.h (struct eh_status): New field x_catch_clauses_last.
7704         (catch_clauses_last): New define.
7705
7706         * Makefile.in (tree.o): Depend on HASHTAB_H.
7707         * tree.c: Include hashtab.h.
7708         (struct type_hash): Remove next field.
7709         (TYPE_HASH_SIZE): Remove.
7710         (TYPE_HASH_INITIAL_SIZE): New define.
7711         (type_hash_table): Change type to htab_t.
7712         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
7713         mark_hash_entry): New functions.
7714         (init_obstacks): Allocate type hash.
7715         (type_hash_lookup): Use htab functions.
7716         (type_hash_add, mark_type_hash): Likewise.
7717         (dump_tree_statistics): Call print_type_hash_statistics.
7718
7719 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7720
7721         * rs6000/t-aix41: New file.
7722
7723         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
7724
7725 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
7726
7727         * tm.texi (Driver): Fix typos and tweak entry for
7728         INCLUDE_DEFAULTS.
7729         Move misplaced STRUCT_FORCE_BLK entry ...
7730         (Storage Layout): ... to here.
7731         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
7732
7733 2000-03-19  Richard Henderson  <rth@cygnus.com>
7734
7735         * flow.c (delete_block): Delete the addr_vec along with the block.
7736         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
7737         reference labels.
7738
7739         * fold-const.c (extract_muldiv): Apply type check for defined
7740         overflow to multiply as well as divide.
7741
7742         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
7743
7744 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7745
7746         * emit-rtl.c (remove_unncessary_notes): Check that all
7747         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
7748         associated NOTE_BLOCK.
7749         * function.h (identify_blocks): Update comments.
7750         (reorder_blocks): Declare.
7751         * function.c (identify_blocks): Don't take paramters.
7752         (reorder_blocks): Don't take parameters.
7753         * loop.h (find_loop_tree_blocks): Remove.
7754         (unroll_block_trees): Likewise.
7755         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
7756         reorder_blocks instead of unroll_block_trees.h
7757         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
7758         * stmt.c (find_loop_tree_blocks): Remove.
7759         (unroll_block_trees): Likewise.
7760         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
7761         in whole-function mode.
7762         * tree.h (reorder_blocks): Remove declaration.
7763
7764         * expr.c: Include intl.h.
7765         * Makefile.in (expr.o): Depend on intl.h.
7766
7767 2000-03-18  Richard Henderson  <rth@cygnus.com>
7768
7769         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
7770
7771 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7772
7773         * tree.h (tree_index): Remove enumerals for integer types.
7774         (integer_type_kind): New type.
7775         (integer_types): New variable.
7776         (char_type_node): Adjust.
7777         (signed_char_type_node): Likewise.
7778         (unsigned_char_type_node): Likewise.
7779         (short_integer_type_node): Likewise.
7780         (short_unsigned_type_node): Likewise.
7781         (integer_type_node): Likewise.
7782         (unsigned_type_node): Likewise.
7783         (long_integer_type_node): Likewise.
7784         (long_unsigned_type_node): Likewise.
7785         (long_long_integer_type_node): Likewise.
7786         (long_long_unsigned_type_node): Likewise.
7787         * tree.c (integer_types): New variable.
7788         (init_obstacks): Register it as a root.
7789
7790 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
7791
7792         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
7793         NEXT_INSN. Update last insn in chain.
7794
7795 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
7796
7797         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
7798         with TYPE_DECL_SUPPRESS_DEBUG set.
7799
7800 2000-03-18  Richard Henderson  <rth@cygnus.com>
7801
7802         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
7803
7804 2000-03-18  Richard Henderson  <rth@cygnus.com>
7805
7806         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
7807         care for HALF_PIC_P.
7808         (expander_call_insn_operand): Remove.
7809         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
7810         * i386.h (PREDICATE_CODES): Update.
7811         * i386.md (all call expanders): Remove predicates, remove special
7812         handling for half-pic.
7813         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
7814         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
7815         (sibcall_epilogue): New.
7816
7817 2000-03-17  Richard Henderson  <rth@cygnus.com>
7818
7819         * rtlanal.c (single_set): Reject if the parallel has anything
7820         except SET or USE or CLOBBER.
7821
7822 2000-03-17  Jeff Law  <law@cygnus.com>
7823             Richard Henderson  <rth@cygnus.com>
7824
7825         * Makefile.in (OBJS): Add sibcall.o.
7826         (sibcall.o): New.
7827         * sibcall.c: New file.
7828         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
7829         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
7830         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
7831         Emit sibcall patterns when requested.  Update all callers.
7832         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
7833         elimination seems feasable.
7834         * final.c (leaf_function_p): Sibling calls don't discount being
7835         a leaf function.
7836         * flow.c (HAVE_sibcall_epilogue): Provide default.
7837         (find_basic_blocks_1): Sibling calls don't throw.
7838         (make_edges): Make edge from sibling call to EXIT.
7839         (propagate_block): Don't remove sibcall_epilogue insns.
7840         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
7841         (sibcall_epilogue): New.
7842         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
7843         (identify_blocks_1): Likewise.  Break out from ...
7844         (identify_blocks): ... here.
7845         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
7846         (reorder_blocks): ... here.
7847         (init_function_for_compilation): Zap prologue/epilogue as varrays.
7848         (record_insns): Extend a varray instead of mallocing new memory.
7849         (contains): Read a varray not array of ints.
7850         (sibcall_epilogue_contains): New.
7851         (thread_prologue_and_epilogue_insns): Emit and record
7852         sibcall_epilogue patterns.
7853         (init_function_once): Allocate prologue/epilogue varrays.
7854         * genflags.c (gen_insn): Treat sibcall patterns as calls.
7855         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
7856         Broken out from ...
7857         (save_for_inline_nocopy): ... here.
7858         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
7859         Broken out from ...
7860         (expand_inline_function): ... here.
7861         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
7862         (subst_constants): Handle 'n' formats.
7863         * jump.c (jump_optimize_minimal): New.
7864         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
7865         optimizations if it's set.
7866         * rtl.c (copy_rtx): Do copy jump & call for insns.
7867         * rtl.h (struct rtx_def): Document use of jump and call for insns.
7868         (SIBLING_CALL_P): New.
7869         (sibcall_use_t): New.
7870         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
7871         Invoke optimize_sibling_and_tail_recursive_calls.
7872         * tree.c (lang_safe_for_unsave): New.
7873         (safe_for_unsave): New.
7874         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
7875
7876         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
7877         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
7878         (*sibcall_osf_1, *sibcall_value_osf_1): New.
7879
7880 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
7881
7882         * objc/objc-act.c (encode_method_prototype): Pass types, not
7883         PARM_DECLs, to int_size_in_bytes.
7884
7885 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
7886
7887         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
7888
7889         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
7890         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
7891
7892 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7893
7894         * Clean up usages of TREE_INT_CST_LOW.
7895         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
7896         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7897         Regenerated.
7898         * c-tree.h (min_precision): Move declaration to here.
7899         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
7900         (build_unary_op, add_pending_init): Use bit_position.
7901         (pending_init_member, process_init_element): Likewise.
7902         (really_start_incremental_init, push_init_level, pop_init_level):
7903         Don't make copies of nodes or modify them in place, use consistent
7904         types when tracking positions, and use tree routines computations.
7905         (set_init_index, output_init_element): Likewise.
7906         (output_pending_init_elements, process_init_element): Likewise.
7907         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
7908         tree_low_cst and int_bit_position; also minor cleanup.
7909         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
7910         (print_cst_octal): Precision is unsigned.
7911         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
7912         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
7913         (simple_type_align_in_bits): Result is unsigned int.
7914         Use tree_int_low_cst and host_integerp.
7915         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
7916         (field_byte_offset): Result is HOST_WIDE_INT.
7917         Change types of internal variables so alignments are unsigned int,
7918         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
7919         Use host_integerp, tree_low_cst, and int_bit_position.
7920         (add_bit_offset_attribute): Likewise.
7921         (add_data_member_location_attribute): Use tree_cst_low.
7922         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
7923         (add_bit_size_attribute): Use tree_low_cst.
7924         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
7925         * dwarfout.c: Similar changes to dwarf2out.c.
7926         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
7927         * genoutput.c (n_occurences): Return -1 for null string.
7928         (strip_whitespace): Accept null string and make into function.
7929         (scan_operands): Reflect above changes.
7930         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
7931         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
7932         * ssa.c (rename_registers): Add missing cast of arg to bzero.
7933         * tree.c (int_size_in_bytes): Check for too big to represent.
7934         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
7935         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
7936         New declarations.
7937         (min_precision): Delete from here.
7938         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
7939         and int_bit_position.
7940         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
7941         (encode_method_def): Likewise.
7942         (build_ivar_list_initializer): Use int_bit_position.
7943         (generate_shared_structures): Convert size.
7944         (encode_type, encode_complete_bitfield): Use integer_zerop.
7945         (encode_bitfield): Use tree_low_cst and int_bit_position.
7946
7947 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7948
7949         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
7950
7951 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7952
7953         * call.c (special_function_p): It is only malloc if it returns
7954         Pmode.
7955
7956 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7957
7958         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
7959         (C33_FLAG, TARGET_C3X): Add macros.
7960         (TARGET_SWITCHES): Add -m33 option.
7961         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
7962
7963 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7964
7965         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
7966         (PARALLEL_PACK_FLAG): Delete.
7967         (TARGET_SWITCHES): Update.
7968         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
7969
7970 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7971
7972         * fold-const.c (fold): Fix a few cases when the returned result
7973         is not of the same type as the input.
7974
7975 2000-03-16  Nick Clifton  <nickc@cygnus.com>
7976
7977         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
7978         warning.
7979
7980 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7981
7982         * libgcc2.h: Move prototypes above macros with the same name.
7983         Wrap some function prototypes in the conditional which indicates
7984         whether they are supported, i.e. "BITS_PER_UNIT == 8".
7985
7986 2000-03-16  Richard Henderson  <rth@cygnus.com>
7987
7988         * calls.c: Revert last two changes.
7989
7990 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
7991
7992         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
7993         has exponent 0 is a zero.
7994
7995         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
7996         HASH may already be nonzero.  Add code/mode into hash value
7997         immediately after repeat label.
7998         (cselib_lookup): Don't leave the hash table in an inconsistent
7999         state before a hash lookup operation.
8000
8001 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
8002
8003         * i386.md (all HI and QI mode non-move patterns):  Conditionize
8004         by TARGET_[HQ]IMODE_MATH.
8005         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
8006         x86_promote_qi_regs): Declare.
8007         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
8008         TARGET_PROMOTE_QI_REGS): New macros.
8009         (PROMOTE_MODE): New macro.
8010         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
8011         x86_promote_qi_regs): New global variables.
8012
8013 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
8014
8015         * calls.c (emit_library_call_value_1): Break out from ...; handle
8016         VOIDmode function calls too.
8017         (emit_library_call_value): ... here.
8018         (emit_library_call): Implement by calling emit_library_call_value_1.
8019
8020 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
8021
8022         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
8023         Update arg_space_so_far on stack adjustments.
8024         (emit_library_call, emit_library_call_value): Likewise; take into
8025         account arg_space_so_far and pending_stack_adjust when calculcating
8026         the boundary.
8027
8028 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
8029
8030         * flow.c: Move all basic block reordering code into its own file.
8031         (create_basic_block): Externalize.
8032         * bb-reorder.c: New file. Copy all basic block reordering code from
8033         flow.c to this file.
8034         (reorder_basic_blocks): Fix fencepost error in for-loop.
8035         (reorder_basic_blocks): Remove braces from single statement for-loops.
8036         * basic-block.h: Add declaration for create_basic_block.
8037         * Makefile.in: Add rules for bb-reorder.o.
8038
8039 2000-03-16  Neil Booth  <NeilB@earthling.net>
8040
8041         * cppinit.c (handle_option):  Implement #unassert directive
8042         as -A- command line option.
8043         (print_help):  Update.
8044         * cpptexi.c:  Update.
8045
8046 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8047
8048         * md.texi (Standard Names): Document `jump'.
8049
8050 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8051
8052         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
8053         gotos.
8054
8055 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
8056
8057         Merge changes from newppc-branch onto trunk.
8058
8059         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
8060
8061         * rs6000.c (toc_hash_table): Update for new hash table functions.
8062         (toc_hash_function): Likewise.
8063         (toc_hash_eq): Likewise.
8064         (toc_hash_mark_entry): Likewise.
8065         (toc_hash_mark_table): Likewise.
8066         (output_toc): Likewise.
8067         (rs6000_add_gc_roots): Likewise.
8068
8069         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8070
8071         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
8072         (AR_FLAGS_FOR_TARGET): here.  New macro.
8073
8074         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
8075
8076         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
8077         fpmem_operand) Delete.
8078         (xer_operand) New.
8079         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
8080         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
8081         (rs6000_save_machine_status, rs6000_restore_machine_status,
8082         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
8083         references to above variables.
8084         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
8085         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
8086         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
8087         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
8088         (XER_REGNO_P, XER_REGNO): New.
8089         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
8090         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
8091         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
8092         XER_REGNO_P.
8093         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
8094         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
8095         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
8096
8097         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8098
8099         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
8100         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
8101         * rs6000.h: from here.
8102
8103         * rs6000-protos.h (rs6000_select_section): Provide prototype.
8104         (rs6000_select_rtx_section): Likewise.
8105         (rs6000_encode_section_info): Likewise.
8106         (sdata_section): Likewise.
8107         (sdata2_section): Likewise.
8108         (sbss_section): Likewise.
8109         * sysv4.h (rs6000_select_section): Delete prototype.
8110         (rs6000_select_rtx_section): Likewise.
8111         (rs6000_encode_section_info): Likewise.
8112         (sdata_section): Likewise.
8113         (sdata2_section): Likewise.
8114         (sbss_section): Likewise.
8115         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
8116
8117         * sysv4.h: Delete various unnecessary #undef's and put a comment
8118         on the remaining ones.
8119         Change various comments according to coding standard.
8120
8121         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
8122
8123         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
8124         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
8125         (CR0_REGNO_P) Remove.
8126         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
8127         setup_incoming_varargs, mtcrf_operation, print_operand,
8128         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
8129         Use the above macros.
8130
8131         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
8132
8133         * config/rs6000/rs6000.md: Added a new alternative for each
8134         pattern that had a 'x' alternative but no 'y' alternative.
8135         Added a new split for each of the above patterns.
8136
8137         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
8138
8139         * aix41.h (ASM_CPU_SPEC): Delete.
8140         (CPP_CPU_SPEC): Delete.
8141
8142         * aix.h (RS6000_OUTPUT_BASENAME): Define.
8143         (ASM_OUTPUT_LABEL): Define.
8144         (ASM_GLOBALIZE_LABEL): Define.
8145         (STRIP_NAME_ENCODING): Define.
8146         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
8147         (STRIP_NAME_ENCODING): Don't define.
8148         (ASM_OUTPUT_LABEL): Don't define.
8149         (ASM_GLOBALIZE_LABEL): Don't define.
8150         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
8151         names, and ASM_OUTPUT_LABEL to output labels, rather than
8152         asm_fprintf.
8153         (ASM_OUTPUT_LABEL): Define.
8154         (ASM_OUTPUT_INT): Use assemble_name.
8155         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
8156         (STRIP_NAME_ENCODING): Don't undefine first.
8157         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
8158         ELF.
8159         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
8160         specified with 'asm' even with -fleading-underscore.
8161         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
8162         (output_epilog): Likewise.
8163         (output_toc): Likewise.
8164         * tramp.asm: Handle -fleading-underscore correctly.
8165
8166         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
8167         -mminimal-toc.
8168         (nonlocal_goto_receiver): Delete.
8169         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
8170
8171         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
8172         (SET_ASM_OP): Define.
8173         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
8174
8175         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
8176         (ASM_LONG): Define.
8177
8178         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
8179         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
8180
8181         * rs6000.h: Add 'u' to more constants.
8182
8183         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
8184
8185         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
8186
8187         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
8188
8189         * rs6000.c (reg_or_u_cint_operand): New function.
8190         (logical_operand): Handle 64-bit hosts.
8191         (logical_u_operand): New function.
8192         (non_logical_cint_operand): Handle 64-bit hosts.
8193         (non_logical_u_cint_operand): New function.
8194         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
8195         (PREDICATE_CODES): Define new functions.
8196         * rs6000-protos.h: Declare new functions.
8197         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
8198         (movdi_64): Bracket code intended for 64-bit hosts.  Create
8199         CONST_DOUBLE for 32-bit values.
8200         (scc insns): Generate DImode compares.
8201         (mfcr insns): Create DImode versions.
8202         (sge matchers): New patterns.
8203
8204         2000-02-15  Gabriel Paubert  <paubert@iram.es>
8205
8206         * rs6000.md: Correct instructions length attributes and
8207         constraints on unsigned compare instructions.
8208         (*ne0): Disable for PowerPC64.
8209
8210         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8211
8212         * rs6000.c (output_function_profiler): Use .long for a 32-bit
8213         quantity, fix profile1.C test failure under -fPIC.
8214
8215         * rs6000.c: Add 'u' to many constants to suppress warnings.
8216         (constant_pool_expr_1): Make static.
8217         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
8218         * rs6000.h: Add 'u' to many constants to suppress warnings.
8219
8220         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
8221         for the start of the TOC, instead of LCTOC..0.
8222         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
8223         of the TOC.
8224         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
8225         (load_toc_aix_di): Use LCTOC..1.
8226
8227         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
8228         * rs6000.c (rs6000_legitimize_address): New function from
8229         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
8230         symbols in the constant pool that really are TOC references.
8231         (print_operand_address): For ELF, write TOC offsets under
8232         -fPIC as subtractions in the insn.
8233         (output_toc): For ELF, define symbols in TOC as normal labels,
8234         to match RTL.
8235         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
8236         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
8237         (create_TOC_reference): Prototype only when RTX_CODE is defined.
8238         * rs6000.md (movsi): Only use create_TOC_reference on
8239         symbols in the constant pool that really are TOC references.
8240
8241         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
8242         * rs6000.c (rs6000_reorg): Delete.
8243         * rs6000-protos.h (rs6000_reorg): Delete.
8244
8245         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
8246
8247         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
8248
8249         * aix.h (SETUP_FRAME_ADDRESSES): Define.
8250         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
8251         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
8252         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
8253         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
8254         rs6000_aix_emit_builtin_unwind_init.
8255         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
8256         rs6000_emit_eh_toc_restore on AIX.
8257         (return_eh_si): Use r2.
8258         (return_eh_di): Use r2.
8259
8260         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
8261         since we're breaking binary compatibility anyway.
8262
8263         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8264
8265         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
8266         constant_pool_expr_p): Declare them.
8267         (constant_pool_expr_p): Declare it.
8268         * config/rs6000/rs6000.c (toc_label_name): Define.
8269         (rs6000_override_options): Set toc_label_name.
8270         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
8271         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
8272         uses_TOC): New functions.
8273         (print_operand): Delete old '*' case.
8274         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
8275         and strip off rtl for TOC before calling output_addr_const.
8276         (rs6000_emit_load_toc_table): Use toc_label_name.
8277         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
8278         the default.
8279         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
8280         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
8281         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
8282         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
8283         into explicit TOC_REGISTER offsets.
8284         (TOC_REGISTER): New macro.
8285         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
8286         TARGET_TOC to reference TOC_REGISTER.
8287         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
8288         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
8289         uses_TOC before emitting label references.
8290
8291         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8292
8293         * rs6000.md (stack_tie): Fix warning.
8294
8295         * eabi-ctors.c: Use 'asm' names for the start/end variables,
8296         to handle -fleading-underscore.
8297         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
8298         (USER_LABEL_PREFIX): New macro.
8299         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
8300         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
8301         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
8302         call-linux can use the same multilibs.
8303         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
8304         and call-linux multilibs.  Do multilib with -fleading-underscore.
8305         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
8306         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
8307         to call-aix.
8308
8309         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
8310         have MASK_SOFT_FLOAT set.
8311         (CPP_FLOAT_DEFAULT_SPEC): New macro.
8312         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
8313         CPP_FLOAT_DEFAULT_SPEC.
8314
8315         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
8316         * rs6000.md: Whitespace change.
8317         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
8318         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
8319
8320         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8321
8322         * rs6000.md (eh_epilogue): New expander.
8323         (eh_reg_restore): New expand/split/insn combination.
8324         (return_eh_si): New insn.
8325         (return_eh_di): New insn.
8326
8327         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
8328         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
8329         * eabi-ctors.c (__do_global_ctors): Register this object's
8330         frame.  Clean up.  Call atexit() after the constructors.
8331         (__do_global_dtors): Deregister this object's frame.  Clean up.
8332         Allow for recursive calls to exit().
8333         * rs6000.c (fixuplabelno): New variable.
8334         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
8335         TARGET_RELOCATABLE, it slows down exec() under linux.
8336         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
8337
8338         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
8339         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
8340         (ASM_OUTPUT_DWARF_DELTA2): New macro.
8341         (ASM_OUTPUT_DWARF_DELTA4): New macro.
8342         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
8343         (ASM_OUTPUT_DWARF_ADDR): New macro.
8344         (ASM_OUTPUT_DWARF_DATA4): New macro.
8345         (ASM_OUTPUT_DWARF_DATA2): New macro.
8346         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
8347         (ASM_OUTPUT_DWARF_OFFSET): New macro.
8348         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
8349
8350         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
8351
8352         * rs6000.c (rs6000_sr_alias_set): New variable.
8353         (rs6000_override_options): Initialise rs6000_sr_alias_set.
8354         (rs6000_emit_stack_tie): New function.
8355         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
8356         in a way that dwarf2out can understand.
8357         (rs6000_frame_related): New function.
8358         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
8359         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
8360         Use rs6000_emit_stack_tie when needed.
8361         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
8362         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
8363         * rs6000.md (stack_tie): New insn.
8364         (return_internal_si): Allow return value to be in the count
8365         register.
8366         (return_internal_di): Likewise.
8367
8368         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
8369
8370         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
8371
8372         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
8373
8374         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
8375
8376         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
8377
8378         * rs6000.md (stmw): Use the right POWER opcode.
8379         (lmw): Likewise.
8380
8381         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8382
8383         * rs6000-protos.h: New file.
8384
8385         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
8386
8387         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
8388         warnings.
8389
8390         * sysv4.h: Likewise.
8391
8392         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
8393
8394         * ../../configure.in: Delete powerpcle-*-winnt*
8395         and powerpcle-*-pe|powerpcle-*-cygwin*.
8396         * ../../configure: Regenerated.
8397         * cygwin.h: Delete.
8398         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
8399         (TARGET_WINDOWS_NT): Delete.
8400         (ABI_NT): Delete.
8401         (CALL_NT_DLLIMPORT): Delete.
8402         Delete NT-specific code.
8403         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
8404         * win-nt.h: Delete.
8405         * t-winnt: Delete.
8406         * nt-ci.asm: Delete.
8407         * nt-cn.asm: Delete.
8408         * ntstack.asm: Delete.
8409
8410         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8411
8412         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
8413         (ASM_FILE_START): Likewise.
8414         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8415         (ASM_OUTPUT_LABELREF): Likewise.
8416         (ASM_OUTPUT_SKIP): Likewise.
8417         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
8418         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
8419         (ASM_OUTPUT_CASE_LABEL): Likewise.
8420         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8421         (ASM_OUTPUT_ASCII): Likewise.
8422
8423         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
8424
8425         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
8426         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
8427         increment rs6000_pic_labelno here.
8428         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
8429         and increment rs6000_pic_labelno here.
8430
8431         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
8432
8433         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
8434         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
8435         allocation knows (reg) is dead before the insn.
8436
8437         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
8438
8439         * rs6000.md (movsi_to_cr): Correct typo in output template.
8440
8441         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8442
8443         * rs6000.c (rs6000_pic_labelno): Always define.
8444         (rs6000_pic_func_labelno): Delete.
8445         (lmw_operation): Check for a zero base register,
8446         which doesn't mean what we want.
8447         (stmw_operation): New function.
8448         (print_operand): Define new 'l' modifier.
8449         (rs6000_stack_info): We must save all 64 bits of the registers
8450         if TARGET_POWERPC64.
8451         (rs6000_output_load_toc_table): Delete.
8452         (rs6000_emit_load_toc_table): New function.
8453         (rs6000_allocate_stack_space): Delete.
8454         (rs6000_emit_allocate_stack): New function.
8455         (rs6000_emit_prologue): New function.
8456         (output_prolog): Use rs6000_emit_prologue.
8457         (rs6000_emit_epilogue): Change a few variable names to be
8458         more accurate.  Restore all 64 bits of the registers if
8459         TARGET_POWERPC64.  Only restore the FP registers which were used
8460         if they are being saved/restored one-at-a-time.
8461         (output_mi_thunk): Delete inefficient code generation.
8462         (output_function_profiler): Don't use rs6000_output_load_toc_table.
8463         * rs6000.h: Declare rs6000_emit_load_toc_table,
8464         rs6000_allocate_stack_space, stmw_operation.  Don't declare
8465         rs6000_output_load_toc_table.
8466         * rs6000.md (elf_high): Allow register 0, but discourage it
8467         heavily.
8468         (elf_low): Support loading into register 0.
8469         (load_toc_aix_si): New pattern.
8470         (load_toc_aix_di): New pattern.
8471         (load_toc_v4_pic_si): New pattern.
8472         (load_toc_v4_pic_di): New pattern.
8473         (load_toc_v4_PIC_1): New pattern.
8474         (load_toc_v4_PIC_1b): New pattern.
8475         (load_toc_v4_PIC_2): New pattern.
8476         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
8477         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
8478         (prologue): New expander.
8479         (movesi_from_cr): New pattern.
8480         (stmw): New pattern.
8481         (save_fpregs_si): New pattern.
8482         (save_fpregs_di): New pattern.
8483
8484         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8485
8486         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
8487         (movdi): Likewise.
8488         (movhi): Likewise.
8489         (movqi): Likewise.
8490
8491         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8492
8493         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
8494         at present.
8495         (movsi_got_internal): Likewise.
8496         (movsi_got_internal+1): Likewise.
8497         (set_sp): 'unspec 7' does a SImode clobber.
8498
8499         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8500
8501         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
8502         allocate a stack temporary.
8503         (floatsidf2_internal): Likewise.
8504         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
8505         with unspec.
8506         (floatunssidf2): Don't use the fpmem "register", just
8507         allocate a stack temporary.
8508         (floatunssidf2_internal): Likewise.
8509         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
8510         with unspec.
8511         (floatsidf2_loadaddr): Delete.
8512         (floatsidf2_store1): Delete.
8513         (floatsidf2_store2): Delete.
8514         (floatsidf2_load): Delete.
8515         (fix_truncdfsi2): Don't use the fpmem "register", just
8516         allocate a stack temporary.
8517         (fix_truncdfsi2_internal_si): Delete.
8518         (fix_truncdfsi2_internal_di): Delete.
8519         (fix_truncdfsi2_internal): New insn.
8520         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
8521         (fix_truncdfsi2_store): Delete.
8522         (fix_truncdfsi2_load): Delete.
8523         (fctiwz): Produce gen_fctiwz.
8524
8525         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8526
8527         * eabi.h (INVOKE__main): Define.
8528         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
8529         specially.
8530         (rs6000_emit_prologue): Likewise.
8531         * rs6000.h (struct rs6000_stack): Don't keep track of whether
8532         this is the main program.
8533
8534         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8535
8536         * rs6000.c (rs6000_va_arg): Delete some unused variables.
8537
8538         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8539
8540         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
8541         goes after the argument.
8542
8543         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8544
8545         * rs6000.md: Document 'unspec' values used.
8546         (epilogue): New expander.
8547         (movesi_to_cr_one): New expander.
8548         (movesi_to_cr and following): New pattern.
8549         (lmw): New pattern.
8550         (return_internal_si): New pattern.
8551         (return_internal_di): New pattern.
8552         (return_and_restore_fpregs_si): New pattern.
8553         (return_and_restore_fpregs_di): New pattern.
8554         * rs6000.h: Declare new functions.
8555         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
8556         rather than rs6000_calls_p.
8557         (rs6000_makes_calls): Delete.
8558         (lmw_operation): New function.
8559         (mtcrf_operation): New function.
8560         (rs6000_emit_epilogue): New function.
8561         (output_epilog): Call rs6000_emit_epilogue and final if
8562         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
8563
8564         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8565
8566         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
8567         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
8568         * aix.h (SUBTARGET_SWITCHES): Document switches.
8569         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
8570         sched-prolog and sched-epilog the same.  Document all the
8571         switches.
8572         (TARGET_OPTIONS): No longer allow -mdebug-.
8573
8574         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8575
8576         * rs6000.h (ASM_FILE_END): Move to aix.h.
8577         (EXTRA_SECTIONS): Move to aix.h.
8578         (READONLY_DATA_SECTION): Move to aix.h.
8579         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
8580         (SELECT_SECTION): Move to aix.h.
8581         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
8582         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
8583         (LINK_REGISTER_REGNUM): New definition.
8584         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
8585         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
8586         AIX and SVR4.
8587         * sysv4.h: Delete the code between the inclusion of rs6000.h
8588         and svr4.h.
8589         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
8590         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
8591         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
8592         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
8593         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
8594         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
8595         (fix_truncdfsi2_internal_di): New pattern.
8596         (fix_truncdfsi2_store): The second arg here is Pmode too.
8597         (fix_truncdfsi2_load): The second arg here is Pmode too.
8598         (tablejumpdi): Now that switch tables hold only SImode values,
8599         gcc needs to know how to add them to the pc which is DImode.
8600         * rs6000.c (rs6000_stack_info): Use symbolic name for
8601         LINK_REGISTER_REGNUM.
8602         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
8603         (output_toc): Delete unused variables s1 and s2.
8604         (output_ascii): Use fputs not fprintf on a variable string.
8605
8606         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
8607
8608         * rs6000.c (processor_target_table): Add power3 as alias for 630.
8609         * aix43.h: Revert Aug 2 change.
8610         (HAS_INIT_SECTION): Define, not visible yet.
8611         (LD_INIT_SWITCH): Define, not visible yet.
8612         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
8613
8614         2000-01-04  Joel Sherrill (joel@OARcorp.com>
8615
8616         * config/rs6000/rtems.h: Include config/rtems.h.
8617
8618         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
8619
8620         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
8621         (SLOW_UNALIGNED_ACCESS): Define.
8622         (CASE_VECTOR_MODE): Always use 32-bit offsets.
8623         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
8624         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
8625         (toc_section): Likewise and .toc pseudo-op.
8626         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
8627         64-bit mode.
8628         (TEXT_SECTION_ASM_OP): Likewise.
8629         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
8630         32-bit offsets.
8631
8632         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
8633
8634         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
8635         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
8636         compiling libgcc2.
8637
8638         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8639
8640         * rs6000.h: Move more stuff from here...
8641         * aix.h: to here.
8642         * sysv4.h: Cleanup accordingly.
8643         * netware.h: Likewise
8644
8645         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8646
8647         * rs6000.h: Continue cleanup.
8648         * aix.h: Likewise.
8649         * lynx.h: Likewise.
8650         * netware.h: Likewise.
8651         * sol2.h: Likewise.
8652         * sysv4.h: Likewise.
8653         * win-nt.h: Likewise.
8654
8655         * rs6000.h (TARGET_SWITCHES): Add descriptions.
8656         (TARGET_OPTIONS): Likewise.
8657
8658         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
8659         (SUBTARGET_OPTIONS): Likewise.
8660
8661         * rs6000.md: Fix compile time warnings.
8662
8663         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8664
8665         vxworks patches from the Cygnus tree originally by
8666         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
8667         <vmakarov@cygnus.com>.
8668         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
8669         (ENDFILE_SPEC): Likewise.
8670         (LIB_VXWORKS_SPEC): New macro.
8671         (STARTFILE_VXWORKS_SPEC): New macro.
8672         (ENDFILE_VXWORKS_SPEC): New macro.
8673         (LINK_START_VXWORKS_SPEC): New macro.
8674         (LINK_OS_VXWORKS_SPEC): New macro.
8675         (CPP_OS_VXWORKS_SPEC): New macro.
8676         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
8677         * vxppc.h: Rewrite to use proper configuration method.
8678         * vxppcle.h: New file.
8679         * ../../configure.in: Add powerpcle-wrs-vxworks*.
8680         * ../../configure: Rebuilt.
8681
8682         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8683
8684         Lots of changes to rs6000.h, sysv4.h, aix.h,
8685         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
8686         with the aim that rs6000.h is the first header
8687         included and the others override it.
8688         * aix.h: New file.
8689
8690         * x-aix41-gld: Remove.
8691         * x-aix43: Remove.
8692         * x-aix41: Remove target-specific switches, and don't specify
8693         -Wl,-bbigtoc as we don't need it any more.
8694         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
8695         Use t-aix43 for AIX 4.3 and above.
8696         * ../../configure: Regenerated.
8697
8698         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
8699         options, that don't do anything yet.
8700         (MASK_SCHED_PROLOG): New macro.
8701         (MASK_SCHED_EPILOG): New macro.
8702         (TARGET_SCHED_PROLOG): New macro.
8703         (TARGET_SCHED_EPILOG): New macro.
8704
8705         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8706
8707         * rs6000.c: Correct comment, the `minimal' TOCs are actually
8708         one per translation unit, not one per function.
8709         (output_toc): Also do duplicate constant elimination
8710         for per-translation-unit TOCs.
8711
8712         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
8713         a comment explaining _exactly_ when this pattern gets used.
8714         (builtin_setjmp_receiver): New pattern for better clarity.
8715         (init_v4_pic): Move it into a section dealing with TOC registers.
8716
8717         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
8718
8719         * rs6000.c (toc_hash_table): New variable.
8720         (rs6000_hash_constant): New function.
8721         (toc_hash_function): New function.
8722         (toc_hash_eq): New function.
8723         (toc_hash_mark_entry): New function.
8724         (toc_hash_mark_table): New function.
8725         (output_toc): Don't output duplicate TOC entries in
8726         a single file.
8727         (rs6000_add_gc_roots): Add the hash table as a GC root.
8728         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
8729         where they clearly shouldn't be.  This may need to be fixed
8730         later when there is a GNU ar for AIX.
8731         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
8732         Don't define BOOT_LDFLAGS as it is now not necessary.
8733
8734         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
8735
8736         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
8737         for va_list on AIX.  Use unsigned_char_type_node rather than
8738         constructing our own version on svr4.
8739
8740         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
8741
8742         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
8743         since patently it's not.
8744
8745         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
8746
8747         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
8748         define_expand/define_insn pair, and handle restore of the
8749         SVR4 -fpic register.
8750
8751 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
8752
8753         * acconfig.h (HAVE_GAS_WEAK): New define.
8754         * configure.in (assembler weak support): Check for .weak support.
8755         * config.in, configure: Rebuilt.
8756         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
8757         HAVE_GAS_WEAK is defined.
8758
8759 2000-03-15  Nick Clifton  <nickc@cygnus.com>
8760
8761         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
8762         asm_fprintf().
8763
8764 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
8765
8766         * cppfiles.c (open_include_file): New function.
8767         (find_include_file, cpp_read_file): Use it.
8768
8769 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8770
8771         * cpphash.c (dump_hash_helper): Take the slot, not the element.
8772
8773 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
8774
8775         * flow.c (verify_flow_info): Check for unconditional return.
8776
8777 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
8778
8779         * config/ia64/ia64.md (restore_stack_nonlocal): New.
8780         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
8781         (__ia64_restore_stack_nonlocal): New.
8782         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
8783
8784 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8785
8786         * cpphash.c (collect_formal_parameters): Do not complain about
8787         parameter names that just start with `__VA_ARGS__'.
8788
8789 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
8790
8791         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
8792         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
8793         * i386.c (pentiumpro_cost): Set mul cost to 4.
8794         (x86_use_movx): Set for PPro.
8795
8796 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
8797
8798         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
8799         STACK_BOUNDARY for empty frames now.
8800
8801 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
8802
8803         * stor-layout.c (layout_union): Remove.
8804         (layout_union_field): New function, split out from layout_union.
8805         (finish_union_layout): Likewise.
8806         (layout_field): Handle unions by calling layout_union_field.
8807         (finish_record_layout): Handle unions.
8808         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
8809         QUAL_UNION_TYPE handling.
8810
8811 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
8812
8813         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
8814         end of basic block is jump_insn, not barrier; use create_basic_block
8815         instead of creating basic block by hand.
8816
8817 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
8818
8819         * flow.c (reorder_basic_blocks): Account for barriers when writing
8820         over NEXT_INSN (last_bb->end).
8821         (verify_flow_info): Add check for missing barriers.
8822
8823 2000-03-14  Greg McGary  <gkm@gnu.org>
8824
8825         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
8826         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
8827         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
8828         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
8829         __unbounded, __unbounded__): New keywords.
8830         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
8831         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
8832         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
8833
8834 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
8835
8836         * cselib.h: New file.
8837         * alias.c: Include "cselib.h".
8838         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
8839         MEMs as two new arguments.
8840         (get_addr): New static function.
8841         (find_base_term): Handle VALUEs.
8842         (memrefs_conflict_p): Likewise.
8843         (true_dependence): Call get_addr on the addresses.
8844         Call fixed_scalar_and_varying_struct_p with addresses that have been
8845         passed through get_addr and canon_rtx.
8846         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
8847         with true_dependence.
8848         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
8849         * loop.c: Include "cselib.h".
8850         (load_mems): Process extended basic block that enters the loop with
8851         cselib.  Use that information to change initialization of the shadow
8852         register so that a constant equivalence is seen by later passes.
8853         * reload1.c: Include "cselib.h".
8854         (reload_cse_invalidate_regno): Delete function.
8855         (reload_cse_mem_conflict_p): Likewise.
8856         (reload_cse_invalidate_mem): Likewise.
8857         (reload_cse_invalidate_rtx): Likewise.
8858         (reload_cse_regno_equal_p): Likewise.
8859         (reload_cse_check_clobber): Likewise.
8860         (reload_cse_record_set): Likewise.
8861         (reg_values): Delete static variable.
8862         (invalidate_regno_rtx): Likewise.
8863         (reload_cse_delete_noop_set): New static function.
8864         (reload_cse_simplify): New static function, broken out of
8865         reload_cse_regs_1.
8866         (reload_cse_noop_set_p): Delete unused argument INSN.
8867         Just call rtx_equal_for_cselib_p on set source and destination.
8868         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
8869         reload_cse_delete_noop_set.  Delete code to keep track of values; use
8870         cselib functions instead.  Delete code to push/pop obstacks.
8871         (reload_cse_simplify_set): Use cselib to find equivalent values.
8872         Delete code to push/pop obstacks.
8873         (reload_cse_simplify_operands): Likewise.
8874         * rtl.def (VALUE): New rtx code.
8875         * rtl.h (union rtunion_def): New elt rt_cselib.
8876         (X0CSELIB, CSELIB_VAL_PTR): New macros.
8877         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
8878         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
8879         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
8880         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
8881         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
8882         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
8883         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
8884         cselib_record_set, cselib_record_sets): New static functions.
8885         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
8886         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
8887         references_value_p): New functions.
8888         (MAX_USELESS_VALUES, REG_VALUES): New macros.
8889         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
8890         n_useless_values, reg_values, callmem, cselib_obstack,
8891         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
8892         New static variables.
8893         * varray.h (union varray_data_tag): New elt te.
8894         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
8895         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
8896         dependencies.
8897
8898 2000-03-14  Nick Clifton  <nickc@cygnus.com>
8899
8900         * gcc.c (do_spec_1): Catch the case where %* is used in a
8901         substitution pattern, but it has not been initialised.
8902         Issue a meaningful error message if an unrecognised operator
8903         is encountered in a spec string.
8904
8905 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
8906
8907         * function.c (prepare_function_start): Correctly initialize
8908         cfun->stack_alignment_needed.
8909
8910 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
8911
8912         * cppfiles.c (find_include_file): Don't assume nshort is a
8913         substring of name.
8914
8915 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
8916
8917         * configure.in (hppa configurations): Add pa32-regs.h to the
8918         list of tm files as appropriate.
8919         * configure: Rebuilt.
8920         * pa.c (compute_frame_size): Remove explicit knowledge about FP
8921         register numbering.
8922         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
8923         (fmpyaddoperands, fmpysuboperands): Likewise.
8924         * pa.h: Remove various definitions which depend on knowing
8925         how registers are numbered.
8926         * pa32-regs.h: New file with PA32 register numbering specific
8927         definitions.
8928
8929 2000-03-14  Richard Henderson  <rth@cygnus.com>
8930
8931         * regmove.c (combine_stack_adjustments): New.
8932         (stack_memref_p, single_set_for_csa): New.
8933         (free_csa_memlist, record_one_stack_memref): New.
8934         (try_apply_stack_adjustment): New.
8935         (combine_stack_adjustments_for_block): New.
8936         * rtl.h (combine_stack_adjustments): Declare.
8937         * toplev.c (rest_of_compilation): Call it.
8938
8939         * i386.md: Revert 2000-01-16 change.
8940
8941 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8942
8943         * gccbug.in: Add web category, gcc specific classes.
8944
8945 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
8946
8947         * stor-layout.c (finalize_record_size): Fix typo.
8948
8949 2000-03-14  Stan Shebs  <shebs@apple.com>
8950
8951         * c-typeck.c (c_alignof): Error on incomplete types.
8952         * extend.texi (Alignment): Document this.
8953
8954 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
8955
8956         * cppfiles.c: Include mkdeps.h.
8957         (find_include_file, read_include_file): Remove _cpp_ prefix
8958         from name, make static.
8959         (_cpp_execute_include): New function, broken out of
8960         do_include.
8961
8962         * cpplib.c: Don't include mkdeps.h.
8963         (struct directive): Remove type field. Reorder entries.  The
8964         function takes only one argument.
8965         (struct if_stack): Make type field an int.
8966         (directive_table): Rename to dtable.  Generate it, the
8967         prototypes of the directive handlers, and the enum for the
8968         directive numbers, from a template macro.
8969         (do_ifndef, do_include_next, do_import): New functions.
8970         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
8971         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
8972         do_ident, do_assert, do_unassert, do_sccs): Take only one
8973         argument.
8974         (do_sccs): Define always, but alter behavior based on
8975         SCCS_DIRECTIVE.
8976         (_cpp_handle_directive, consider_directive_while_skipping):
8977         Restructure for new directive table layout.
8978
8979         (pass_thru_directive): Take a directive number, not a pointer
8980         to a struct directive.
8981         (parse_include): New function, broken out of do_include.
8982         (do_include, do_import, do_include_next): Use parse_include
8983         and _cpp_execute_include.
8984         (do_elif, do_else): Test for T_ELSE specifically when checking
8985         for #elif/#else after #else.
8986         (parse_ifdef): New function, broken out of do_ifdef.
8987         (validate_else): Expect a name arg without a leading #.
8988         (if_directive_name): Delete.
8989         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
8990         directive handlers with only one argument.
8991
8992         * cpphash.h: Update prototypes.
8993         (enum node_type): Remove entries for directives.
8994         * Makefile.in: Update dependencies.
8995
8996         * cpphash.c (dump_hash_helper): Only dump nodes of type
8997         T_MACRO.  Emit a newline after each definition.
8998
8999 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9000
9001         * gccbug.in: New file.
9002         * configure.in (all_outputs): Add gccbug.
9003         * Makefile.in (install-common): Install gccbug.
9004         (GCCBUG_INSTALL_NAME): New variable.
9005         * configure: Rebuilt.
9006
9007 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
9008
9009         * function.c (put_var_into_stack): Use type_for_mode to calculate
9010         part_type.  Use MEM_SET_IN_STRUCT_P.
9011         * expr.c (store_field): Handle CONCAT.
9012         (store_constructor): Use fields_length.
9013         * tree.c (fields_length): New fn.
9014         * tree.h: Declare it.
9015
9016 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9017
9018         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
9019         (cpplex.o): New target.
9020         * po/POTFILES.in: Add cpplex.c.
9021
9022         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
9023         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
9024         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
9025         skip_block_comment, skip_line_comment, skip_comment,
9026         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
9027         _cpp_parse_name, skip_string, parse_string,
9028         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
9029         _cpp_get_directive_token, find_position,
9030         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
9031         (maybe_macroexpand, _cpp_lex_token): New functions.
9032
9033         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
9034         parse_goto_mark): Delete.
9035         (_cpp_handle_eof): New function.
9036         (_cpp_handle_directive): Rename from handle_directive.
9037         (_cpp_output_line_command): Rename from output_line_command.
9038         (do_if, do_elif): Call _cpp_parse_expr directly.
9039         * cppfiles.c (_cpp_read_include_file): Don't call
9040         init_input_buffer here.
9041         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
9042         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
9043         here; pop the token_buffer and skip the rest of the line here.
9044         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
9045         here.
9046
9047         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
9048         Define here.
9049         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
9050         CPP_GOTO_MARK): New macros.
9051         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
9052         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
9053         _cpp_read_and_prescan, _cpp_init_input_buffer,
9054         _cpp_grow_token_buffer, _cpp_get_directive_token,
9055         _cpp_handle_directive, _cpp_handle_eof,
9056         _cpp_output_line_command): Prototype them here.
9057         * cpplib.h (enum cpp_token): Add CPP_MACRO.
9058         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
9059         quote_string, output_line_command): Remove.
9060
9061 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
9062
9063         * stmt.c (expand_end_case): RANGE may be signed, and when checking
9064         whether it is too large we must also verify that it isn't negative.
9065
9066 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
9067
9068         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
9069         (movsi_zero_liveg0): Remove.
9070         (movsf_insn_novis_liveg0): Remove.
9071         (negsi2): Remove.
9072         (negsi2_not_liveg0): Rename to negsi2.
9073         (one_cmplsi2): Remove.
9074         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
9075         (one_cmplsi2_liveg0): Remove.
9076         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
9077         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
9078         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
9079         (PREDICATE_CODES): Remove zero_operand.
9080         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
9081         TARGET_BROKEN_SAVERESTORE.
9082         (zero_operand): Remove.
9083         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
9084         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
9085         options.
9086         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9087         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
9088         TARGET_BROKEN_SAVERESTORE): Remove.
9089         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9090         Remove.
9091         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9092         Remove.
9093         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9094         Remove.
9095
9096         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
9097
9098 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9099
9100         * cpplib.c (do_pragma_implementation): Fix off-by-one error
9101         truncating a string.  Don't assume tokens are nul terminated.
9102         Problem noted by Andreas Jaeger <aj@suse.de>
9103
9104 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
9105
9106         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
9107         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
9108         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
9109
9110 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
9111
9112         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
9113         STRUCTURE_SIZE_BOUNDARY.
9114
9115 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
9116
9117         * tree.h (record_layout_info_s): New structure.
9118         (record_layout_info): New type.
9119         (new_record_layout_info): New function.
9120         (layout_field): Likewise.
9121         (finish_record_layout): Likewise.
9122         * stor-layout.c (layout_record): Remove.
9123         (new_record_layout_info): New function.
9124         (layout_field): New function, broken out from layout_record.
9125         (finalize_record_size): Likewise.
9126         (compute_record_mode): Likewise.
9127         (finalize_type_size): New function, broken out from layout_type.
9128         (finish_record_layout): Likewise.
9129         (layout_type): Use them.
9130
9131 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
9132
9133         * cpphash.c: Don't include version.h.
9134         (special_symbol) [case T_VERSION]: Look for the string in
9135         hp->value.cpval; don't use version_string.
9136         * cppinit.c (initialize_builtins): Set hp->value.cpval for
9137         __VERSION__ to version_string.
9138         * Makefile.in (cpphash.o): Update deps.
9139
9140 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
9141
9142         Convert cpplib to use libiberty/hashtab.c.
9143
9144         * cpplib.h (struct cpp_reader): Make hashtab and
9145         all_include_files of type 'struct htab *'.  Delete HASHSIZE
9146         and ALL_INCLUDE_HASHSIZE macros.
9147
9148         * cpphash.h: Update prototypes.
9149         (struct hashnode): Remove next, prev, and bucket_hdr members.
9150         Make length a size_t.  Add hash member.
9151         (struct ihash): Remove next member.  Add hash member.  Make
9152         name a flexible array member.
9153
9154         * cppfiles.c: Include hashtab.h.
9155         (include_hash): Delete.
9156         (IHASHSIZE): New macro.
9157         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
9158         (cpp_included): Do the hash lookup here.
9159         (_cpp_find_include_file): Rewrite.
9160         (cpp_read_file): Put the "fake" hash entry into the hash
9161         table.  Honor the control_macro, if it turns out we've seen
9162         the file before.  Don't push the buffer here.
9163         (_cpp_read_include_file): Push the buffer here.
9164         (OMODES): New macro.  Use it whenever we call open(2).
9165
9166         * cpphash.c: Include hashtab.h.
9167         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
9168         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
9169         _cpp_lookup_slot): New functions.
9170         (HASHSIZE): new macro.
9171         (hashf, _cpp_install, _cpp_delete_macro): Delete.
9172         (_cpp_lookup): Use hashtab.h routines.
9173
9174         * cppinit.c: Include hashtab.h.
9175         (cpp_reader_init): Call _cpp_init_macro_hash and
9176         _cpp_init_include_hash.  Don't allocate hashtab directly.
9177         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
9178         pfile->all_include_files.
9179         (initialize_builtins): Use _cpp_make_hashnode and
9180         htab_find_slot to add hash entries.
9181         (cpp_finish): Just call _cpp_dump_macro_hash.
9182         * cpplib.c: Include hashtab.h.
9183         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
9184         create hash entries.
9185         (do_pragma_poison, do_assert): Likewise.
9186         (do_include): Don't push the buffer here.  Don't increment
9187         system_include_depth unless _cpp_read_include_file succeeds.
9188         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
9189         or htab_remove_elt.
9190         (do_pragma_implementation): Use alloca to create copy.
9191
9192         * Makefile.in: Update dependencies.
9193
9194 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9195
9196         * cppinit.c (cl_directive_handler): More K&R fixing.
9197
9198 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
9199
9200         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
9201         STACK_BOUNDARY.
9202         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
9203
9204 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9205
9206         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
9207         Change from char[] to macros.
9208
9209 2000-03-12  Neil Booth  <NeilB@earthling.net>
9210
9211         * cppinit.c (cpp_start_read): Update indirect function
9212         call to K&R C.
9213
9214 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
9215
9216         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
9217         entry.
9218
9219         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9220         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
9221
9222 2000-03-11  Neil Booth  <NeilB@earthling.net>
9223
9224         * cppinit.c (struct pending option): Replace undef with a
9225         pointer to a directive handling routine.
9226         (struct cpp_pending): Replace separate assert_ and define_
9227         lists with one directive_ list.
9228         (new_pending_define): Rename new_pending_directive. Extra
9229         argument is the directive's handling routine.
9230         (handle_option): Update to use new_pending_directive.
9231
9232 2000-03-11  Neil Booth  <NeilB@earthling.net>
9233
9234         * cppfiles.c (file_cleanup, _cpp_find_include_file,
9235         remap_filename, _cpp_read_include_file, actual_directory,
9236         hack_vms_include_specification): Replace bcopy(), index() etc
9237         calls.  Add casts to some allocations.  Make some variables
9238         pointers to const [unsigned] char.
9239         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
9240         collect_formal_parameters): Similarly.
9241         * cppinit.c (struct pending_option, append_include_chain,
9242         cpp_options_init, cpp_reader_init, initialize_standard_includes,
9243         cpp_start_read, new_pending_define, handle_option): Similarly.
9244         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
9245         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
9246         do_pragma_implementation, detect_if_not_defined,
9247         do_ifdef, skip_if_group, cpp_get_token, parse_string,
9248         do_assert, do_unassert): Similarly.
9249         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
9250         function prototypes.
9251         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
9252
9253 2000-03-10  Richard Henderson  <rth@cygnus.com>
9254
9255         * builtins.c (expand_builtin_strlen): Revert last change.
9256         Use emit_insn_before if we're at the beginning of a sequence.
9257
9258 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
9259
9260         * builtins.c (expand_builtin_strlen): Make sure that we have something
9261         at the beginning of the sequence.
9262
9263         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
9264         deferred inlines.
9265
9266         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
9267
9268 2000-03-10  Richard Henderson  <rth@cygnus.com>
9269
9270         * except.c (can_throw): Use INTVAL on a CONST_INT.
9271         (reachable_handlers): Likewise.
9272         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
9273
9274 2000-03-10  Andreas Jaeger  <aj@suse.de>
9275
9276         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
9277         MD_STARTFILE_PREFIX since those are not needed on linux.
9278         (ASM_FILE_START): New, from mips/gnu.h.
9279
9280 2000-03-09  Richard Henderson  <rth@cygnus.com>
9281             Alex Samuel  <samuel@codesourcery.com> and others
9282
9283         * Makefile.in (ssa.o): New rule.
9284         (OBJS): Add ssa.o.
9285         (STAGESTUFF): Add *.ssa and *.ussa.
9286         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
9287         * rtl.def (PHI): New RTL expression.
9288         * rtl.h (clear_log_links): New declaration.
9289         (convert_to_ssa): Likewise.
9290         (convert_from_ssa): Likewise.
9291         * flow.c (split_edge): If the entry node falls through to the
9292         split edge's source block, split the entry edge.
9293         (clear_log_links): New function.
9294         * toplev.c (ssa_dump): New variable.
9295         (flag_ssa): Likewise.
9296         (f_options): Add "ssa".
9297         (compile_file): Create SSA dump files.
9298         (rest_of_compilation): Go to and from SSA if enabled.
9299         (decide_d_option): Handle -de for SSA dump files.
9300         * ssa.c: New file.
9301
9302 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
9303
9304         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
9305         same as VAR_DECL.
9306
9307 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
9308
9309         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
9310
9311 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
9312
9313         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
9314         (MD_STARTFILE_PREFIX_1): New macro.
9315
9316 2000-03-09  Robert Lipe  <robertl@sco.com>
9317
9318         * config/ia64/ia64.c: Include system.h.
9319
9320 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
9321
9322         * except.c (nothrow_function_p): If -fno-exceptions, just return.
9323         (init_eh_nesting_info): Likewise.
9324
9325         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
9326         (TREE_NOTHROW): Rename from TREE_RAISES.
9327         * toplev.c (rest_of_compilation): Set it.
9328         * print-tree.c (print_node): Adjust.
9329         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
9330         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
9331         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
9332         REG_EH_REGION note as appropriate.
9333         (libfunc_nothrow): New fn.
9334         (emit_library_call, emit_library_call_value): Use it.
9335         (expand_call): Check TREE_NOTHROW.
9336
9337         * varasm.c (make_decl_rtl): Skip initial '*' when setting
9338         DECL_ASSEMBLER_NAME.
9339
9340 2000-03-09  Andreas Jaeger  <aj@suse.de>
9341
9342         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
9343         (TARGET_MEM_FUNCTIONS): Define.
9344
9345 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
9346
9347         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
9348
9349         * except.c (can_throw): See through a SEQUENCE.
9350         (nothrow_function_p): New fn.
9351         * except.h: Declare it.
9352         * function.c (current_function_nothrow): New var.
9353         (prepare_function_start): Initialize it.
9354         * output.h: Declare it.
9355         * toplev.c (rest_of_compilation): Set it.
9356         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
9357
9358 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
9359
9360         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
9361         match.  (cpp_compare_defs): Count the nul separator when
9362         advancing over argument names.
9363
9364 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
9365
9366         * recog.c (preprocess_constraints): Matching constraints affect
9367         same alternative/different operand, not same operand/different
9368         alternative.
9369
9370         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
9371         register and a constant specially.
9372
9373 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9374
9375         * libgcc2.h: New file.
9376         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
9377
9378 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
9379
9380         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
9381         * configure: Regenerate.
9382         * config/ia64: New.
9383
9384 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9385
9386         * Makefile.in (LIBCPP_DEPS): New macro.
9387         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
9388         it to declare deps.
9389         * cpperror.c: Include cpphash.h.
9390         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
9391         dingleberry.
9392         (lex): Don't use CPP_WARN_UNDEF.
9393         (_cpp_parse_expr): Return an int, the truth value.
9394         * cppfiles.c: Include cpphash.h.
9395         (_cpp_merge_include_chains): Move to cppinit.c and make static.
9396         * cppinit.c (include_defaults_array): Disentangle.
9397         (cpp_cleanup): Don't free the if stack here.
9398         (cpp_finish): Pop off all buffers, not just one.
9399         * cpplib.c (eval_if_expr): Return int.
9400         (do_xifdef): Rename do_ifdef.
9401         (handle_directive): Don't use CPP_PREPROCESSED.
9402         (cpp_get_token): Don't use CPP_C89.
9403         * fix-header.c: Don't use CPP_OPTIONS.
9404
9405         * cpplib.h: Move U_CHAR, enum node_type, struct
9406         file_name_list, struct ihash, is_idchar, is_idstart,
9407         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
9408         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
9409         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
9410         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
9411         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
9412         of _cpp_simplify_pathname, _cpp_find_include_file,
9413         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
9414         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
9415         cppinit.c.
9416         Change all uses of U_CHAR to be unsigned char instead.
9417         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
9418
9419 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9420
9421         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
9422         (dwarf2out_begin_prologue): Set it.
9423         (output_call_frame_info): Don't emit EH unwind info for leaves.
9424
9425         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
9426         can occur outside of an EH region.
9427         * except.c: Correct comments about rethrow behavior.
9428         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
9429
9430 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
9431
9432         * flow.c (make_edges): Always call make_eh_edge for calls.
9433
9434 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9435
9436         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
9437         (struct cpp_buffer): Remove fname and underflow fields.
9438         (struct cpp_reader): Remove get_token field.
9439         (struct include_hash): Rename to struct ihash.  Add typedef to
9440         IHASH.
9441         (struct if_stack): Remove fname field.
9442         (IF_STACK_FRAME): Rename to IF_STACK.
9443
9444         * cpperror.c (print_containing_files): Trust that there are no
9445         macro buffers below the top file buffer.
9446         * cppfiles.c: Replace all references to 'struct include_hash'
9447         with 'IHASH'.  Rename initialize_input_buffer to
9448         init_input_buffer.  Don't set or reference cpp_buffer->fname,
9449         use buffer->ihash->name instead.
9450         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
9451         not CPP_NULL_BUFFER.
9452         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
9453         IF_STACK_FRAME, IHASH not struct include_hash.
9454         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
9455         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
9456         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
9457         references to cpp_buffer->fname (delete entirely, or use
9458         ->ihash->name instead) and IF_STACK->fname.
9459         (cpp_push_buffer): Don't set new->underflow.
9460         (do_include): Use cpp_file_buffer.
9461
9462         * cpphash.c (collect_formal_parameters): Remove duplicate
9463         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
9464         used as a macro argument name.  Don't append "..." to namebuf
9465         for varargs macros.  After we're done scanning, go through
9466         namebuf and make it NUL separated, not comma separated.
9467         (_cpp_compare_defs): Remove register tag from variables.
9468         Expect defn->argnames to be NUL separated.
9469         (_cpp_dump_definition): Expect defn->argnames to be NUL
9470         separated and in forward order.
9471         * cpphash.h: Update documentation of argnames field.
9472
9473 2000-03-08  Richard Henderson  <rth@cygnus.com>
9474
9475         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
9476         to fail.  Don't pre-expand the source operand.
9477
9478         * i386.md (strlensi): Initialize eoschar and align before use.
9479
9480 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9481
9482         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
9483         CONSTRUCTOR element.
9484
9485 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
9486
9487         * mips.c (mips_expand_prologue): If the last
9488         named argument is the vararg marker "va_list", treat it as
9489         an unnamed argument.
9490
9491 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
9492
9493         * dbxout.c (dbxout_parms): When correcting for promoted
9494         big-endian parameters, use the mode of the DECL_RTL rather
9495         than UNITS_PER_WORD.
9496
9497 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
9498
9499         * c-common.h (make_fname_decl): Declare.
9500         * c-common.c (make_fname_decl): Define.
9501         (declare_hidden_char_array): Remove.
9502         (declare_function_name): Use make_fname_decl.
9503         * c-decl.c (c_make_fname_decl): New function.
9504         (init_decl_processing): Set make_fname_decl.
9505
9506 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
9507
9508         * cccp.c (handle_directive): Initialize backslash_newlines_p.
9509
9510 2000-03-07  Philipp Thomas  <pthomas@suse.de>
9511
9512         * po/POTFILES.in: Remove cppalloc.c from file list.
9513
9514 2000-03-07  Steve Chamberlain  <sac@pobox.com>
9515
9516         * pj.c (pj_expand_prologue): current_function->args_info is
9517         now current_function_args_info.
9518
9519         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
9520         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
9521         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
9522
9523 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9524
9525         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
9526         output as hexadecimal rather than the default octal.
9527
9528 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9529
9530         * cpphash.c (special_symbol): Fix thinko in previous commit.
9531
9532 2000-03-07  Neil Booth  <NeilB@earthling.net>
9533
9534         * cppexp.c (struct operation, left_shift, right_shift,
9535         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
9536         "int"s to "unsigned int"s.
9537         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
9538         Similarly.
9539         * cpplib.h: Update for above.
9540         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
9541         returned from allocations.
9542
9543         * cppinit.c (opt_comp, parse_options): New functions.
9544         (handle_option): Use parse_option to parse a single command
9545         line option, that possibly takes an argument.
9546         (cpp_handle_options): Sort the array of command line options on
9547         first invocation (non-ASCII hosts only).
9548         (print_help): Update.
9549
9550 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9551
9552         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
9553         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
9554
9555         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
9556         initialized.
9557         * cppinit.c (cpp_cleanup): Free imp->nshort also.
9558
9559         * cpperror.c (cpp_print_containing_files,
9560         cpp_print_file_and_line, v_cpp_message): Rename to
9561         print_containing_files, print_file_and_line, and v_message.
9562         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
9563         to _cpp_parse_expr, parse_escape, and lex.
9564         (parse_charconst): Remove broken multibyte support.
9565         * cppfiles.c (include_hash): Make static.
9566         (cpp_included): New function.
9567         (merge_include_chains, find_include_file, finclude,
9568         simplify_pathname): Rename to _cpp_merge_include_chains,
9569         _cpp_find_include_file, _cpp_read_include_file, and
9570         _cpp_simplify_pathname.
9571         * cpphash.c (cpp_lookup, free_definition, delete_macro,
9572         cpp_install, create_definition, macroexpand, compare_defs,
9573         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
9574         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
9575         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
9576         * cppinit.c (cpp_handle_option): Rename to handle_option, make
9577         static.
9578         * cpplib.c: Remove extern prototype of cpp_parse_expr.
9579
9580         * cpphash.h: Update prototypes.
9581         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
9582
9583 2000-03-07  Andrew Haley  <aph@cygnus.com>
9584
9585         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
9586         PTRDIFF_TYPE should be based solely on Pmode.
9587         (SIZE_TYPE): ditto.
9588
9589 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9590
9591         * rtl.h (rtunion_def): Constify member `rtstr'.
9592         (emit_line_note_after, emit_line_note, emit_line_note_force,
9593         emit_note, decode_asm_operands): Constify.
9594
9595         * cse.c (canon_hash): Likewise.
9596
9597         * dbxout.c (dbxout_block): Likewise.
9598
9599         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
9600         v_warning_for_asm): Likewise.
9601
9602         * dwarfout.c (function_start_label): Likewise.
9603
9604         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
9605         emit_line_note_force): Likewise.
9606
9607         * final.c (last_filename, asm_insn_count, final_scan_insn,
9608         output_source_line): Likewise.
9609
9610         * function.h (struct emit_status): Likewise.
9611
9612         * gcse.c (hash_expr_1): Likewise.
9613
9614         * genattr.c (gen_attr, main): Likewise.
9615
9616         * genattrtab.c (struct function_unit, current_alternative_string,
9617         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
9618         attr_numeral, check_attr_test, check_attr_value,
9619         convert_set_attr_alternative, convert_set_attr,
9620         compute_alternative_mask, simplify_by_exploding, gen_attr,
9621         gen_unit): Likewise.
9622
9623         * genflags.c (gen_insn): Likewise.
9624
9625         * gengenrtl.c (type_from_format): Likewise.
9626
9627         * genopinit.c (gen_insn): Likewise.
9628
9629         * genoutput.c (n_occurrences, process_template, process_template):
9630         Likewise.
9631
9632         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9633         Likewise.
9634
9635         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9636         Likewise.
9637
9638         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
9639         ggc_set_mark, ggc_get_size): Likewise.
9640
9641         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
9642
9643         * optabs.c (init_one_libfunc): Likewise.
9644
9645         * output.h (assemble_start_function): Likewise.
9646
9647         * recog.c (decode_asm_operands): Likewise.
9648
9649         * toplev.c (rest_of_compilation): Likewise.
9650
9651         * tree.h (emit_line_note_after, emit_line_note,
9652         emit_line_note_force): Likewise.
9653
9654         * varasm.c (asm_output_bss, asm_output_aligned_bss,
9655         asm_emit_uninitialised, assemble_start_function,
9656         assemble_variable, const_hash, compare_constant_1,
9657         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
9658
9659         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
9660
9661         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
9662
9663         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
9664
9665         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
9666
9667         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
9668         arm_dllimport_name_p): Likewise.
9669
9670         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
9671         Likewise.
9672
9673         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
9674
9675         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9676
9677         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
9678         arm_mark_dllexport, arm_mark_dllimport,
9679         arm_pe_encode_section_info): Likewise.
9680
9681         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
9682         ASM_FINISH_DECLARE_OBJECT): Likewise.
9683
9684         * arm/thumb.c (thumb_function_prologue): Likewise.
9685
9686         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
9687
9688         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9689
9690         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
9691
9692         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
9693
9694         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
9695
9696         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9697
9698         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
9699         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
9700
9701         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
9702
9703         * i386/i386.c (asm_output_function_prefix): Likewise.
9704
9705         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
9706
9707         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9708
9709         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
9710
9711         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
9712         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
9713         ASM_OUTPUT_SECTION_NAME): Likewise.
9714
9715         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
9716
9717         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
9718
9719         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
9720
9721         * m32r/m32r.c (m32r_encode_section_info): Likewise.
9722
9723         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9724
9725         * mcore/mcore.c (mcore_encode_section_info): Likewise.
9726
9727         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9728
9729         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9730
9731         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9732
9733         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
9734
9735         * mips/mips.md (movdi, movsi): Likewise.
9736
9737         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9738
9739         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9740
9741         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9742
9743         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
9744         ASM_OUTPUT_ASCII): Likewise.
9745
9746         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
9747         output_mi_thunk, output_toc): Likewise.
9748
9749         * rs6000/rs6000.md (movsi): Likewise.
9750
9751         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
9752
9753         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
9754
9755         * v850/v850.c (print_operand, print_operand_address,
9756         v850_encode_data_area): Likewise.
9757
9758 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
9759
9760         * config/mips/mips.md (zero_extendsidi2): Always force operand
9761         one to memory for mips16.
9762
9763 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9764
9765         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
9766         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
9767         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
9768         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
9769         (min_precision): Result is unsigned.
9770         (add_double, neg_double, mul_double): Low word is unsigned.
9771         (lshift_double, rshift_double, lrotate_double): Likewise.
9772         (rrotate_double, div_and_round_double): Likewise.
9773         (tree_floor_log2, compare_tree_int): New functions.
9774         (preserve_rtl_expr_temps): New declaration.
9775         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
9776         (decl_attributes): Use tree_log2 to find alignment.
9777         Check for TREE_INT_CST_HIGH for format args.
9778         (min_precision): Now unsigned.
9779         Use tree_floor_log2.
9780         (truthvalue_conversion): Delete long-disabled code.
9781         * c-decl.c (finish_struct): Clean up tests on field width.
9782         (finish_function): Use compare_tree_int.
9783         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
9784         * c-typeck.c (comptypes): Use tree_int_cst_equal.
9785         (default_conversion, digest_init): Use compare_tree_int.
9786         (build_binary_op): Use integer_all_onesp and compare_tree_int.
9787         Fix type errors in forming masks.
9788         * calls.c (initialize_argument_information): Use compare_tree_int.
9789         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9790         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
9791         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
9792         (store_field): Use compare_tree_int.
9793         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
9794         (expand_expr, case ARRAY_REF): Use compare_tree_int.
9795         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
9796         (do_store_flag): Use compare_tree_int.
9797         * fold-const.c (encode, decode): Low part is always unsigned.
9798         (force_fit_type, add_double, neg_double, mul_double): Likewise.
9799         (lshift_double, rshift_double, lrotate_double): Likewise.
9800         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
9801         (fold_convert): Use compare_tree_int.
9802         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
9803         (invert_truthvalue, case INTEGER_CST): Likewise.
9804         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
9805         * mkdeps.c (deps_dummy_targets): Make I unsigned.
9806         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
9807         (lshift_double, rshift_double, lrotate_double, rrotate_double):
9808         Likewise.
9809         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
9810         (expand_end_case): Use compare_tree_int.
9811         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9812         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
9813         (layout_decl): Likewise.
9814         (layout_record, layout_union): Make sizes unsigned.
9815         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
9816         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
9817         * tree.c (struct type_hash): hashcode is unsigned.
9818         (build_type_attribute_variant, type_hash_list): Likewise.
9819         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
9820         (attribute_hash_list, build_array_type, build_method_type): Likewise.
9821         (build_complex_type): Likewise.
9822         (real_value_from_int_cst): Remove unneeded casts.
9823         (integer_all_onesp): Add casts.
9824         (tree_floor_log2, compare_tree_int): New functions.
9825         (build_index_type): Use tree_int_cst_sgn.
9826         * varasm.c (assemble_variable): Use compare_tree_int.
9827
9828 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
9829
9830         * cpphash.c (collect_expansion): Also catch ## at start of macro.
9831
9832         * varasm.c (make_decl_rtl): Don't add a number to members of
9833         local classes.
9834         (make_function_rtl): Likewise.
9835
9836 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9837
9838         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
9839         patch from 2000-01-28.
9840
9841 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
9842
9843         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
9844         filled with an insn from the jump target.
9845
9846 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9847
9848         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
9849         (c4x_external_ref): Likewise.
9850         * config/c4x/c4x.c (struct name_list): Likewise.
9851
9852 1999-12-16  Ben Collins  <bcollins@debian.org>
9853
9854         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
9855         argument to genmultilib.
9856         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
9857         the contents into the multilib.h header.
9858         * gcc.c: Declare multilib_exclusions for the specs file.
9859         (set_multilib_dir): Use it.
9860         (print_multilib_info): Likewise.
9861         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
9862         to pass to genmultilib.
9863
9864 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9865
9866         * builtins.c (built_in_class_names, built_in_names): Constify a
9867         char*.
9868
9869         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
9870         int.
9871         (_mcleanup): Ensure value matches format specifier in sprintf.
9872
9873         * cpphash.c (special_symbol): Don't needlessly cast away
9874         const-ness.
9875
9876         * cppinit.c (base_name): Delete unused prototype.
9877
9878         * mkdeps.c (deps_init): Make definition K&R safe.
9879
9880         * tree.h (built_in_class_names, built_in_names): Constify a
9881         char*.
9882
9883 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
9884
9885         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
9886         floating point instructions for epilogue delay.
9887
9888         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
9889         to gas if it supports .register pseudo.
9890
9891         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
9892         LONG_DOUBLE_TYPE_SIZE if not defined.
9893         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
9894         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
9895         * real.c: Likewise.
9896         * gengenrtl.c: Likewise.
9897         * print-rtl.c: Likewise.
9898         * rtl.c: Likewise.
9899         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
9900         MASK_LONG_DOUBLE_128.
9901         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
9902         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
9903         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
9904         (SUBTARGET_SWITCHES): Define.
9905         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
9906         with -mlong-double-128.
9907         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9908         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9909         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9910         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
9911         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
9912         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
9913         with -mlong-double-128.
9914         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9915         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9916         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9917         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
9918         TARGET_LONG_DOUBLE_128): Define.
9919         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9920         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
9921         long double on TARGET_ARCH64.
9922
9923 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
9924
9925         * function.c (free_temps_for_rtl_expr): Don't free slots
9926         that have been pushed into a higher level.
9927
9928         Revert this patch:
9929         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9930
9931 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9932
9933         * basic-block.h (ALLOCA_REG_SET): Remove.
9934         (INITIALIZE_REG_SET): New macro.
9935         * flow.c (update_life_info): Use it.
9936         (calculate_global_regs_live): Likewise.
9937         (propagate_block): Likewise.
9938         * global.c (build_insn_chain): Likewise.
9939         * haifa-sched.c (schedule_region): Likewise.
9940
9941 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
9942
9943         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
9944         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
9945         (DWARF_ARANGES_PAD_SIZE): New define.
9946         (output_aranges): Use it to pad the address range header.
9947         (DWARF_ROUND): Fix for non power of 2 rounding.
9948
9949 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
9950
9951         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
9952
9953 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9954
9955         * tree.def (RTL_EXPR): Update documentation.
9956         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
9957         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
9958         * function.c (preserve_rtl_expr_temp): New function.
9959         (preserve_rtl_expr_temps): Likewise.
9960         (preserve_rtl_expr_result): Use it.
9961
9962         Revert this patch:
9963         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
9964
9965 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
9966
9967         * regmove.c (copy_src_to_dest)  Do not create src->dest move
9968         for unchanging destination.
9969
9970 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
9971
9972         * function.h (struct sequence_stack): Remove rtl_expr.
9973         (struct emit_staus): Likewise.
9974         (seq_rtl_expr): Remove.
9975         * tree.h (free_temps_for_rtl_expr): Don't declare.
9976         (start_sequence_for_rtl_expr): Likewise.
9977         * rtl.h (preserve_rtl_expr_result): Likewise.
9978         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
9979         (start_sequence_for_rtl_expr): Remove.
9980         (push_topmost_sequence): Don't save sequence_rtl_expr.
9981         (pop_topmost_sequence): Remove comment about not restoring it.
9982         (end_sequence): Don't set seq_rtl_expr.
9983         (init_emit): Don't initialize it.
9984         (mark_sequence_stack): Don't mark it.
9985         (mark_emit_status): Likewise.
9986         * except.c (protect_with_terminate): Use
9987         start_sequence_for_rtl_expr, not start_sequence.
9988         * expr.c (expand_expr, case RTL_EXPR): Don't call
9989         preserve_rtl_expr_result or free_temps_for_rtl_expr.
9990         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
9991         (preserve_rtl_expr_result): Remove.
9992         (free_temps_for_rtl_expr): Likewise.
9993         (pop_temp_slots): Likewise.
9994         (mark_temp_slot): Don't mark the rtl_expr.
9995         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
9996         start_sequence_for_rtl_expr.
9997
9998 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
9999
10000         * mkdeps.c, mkdeps.h: New files.
10001         * po/POTFILES.in: Add them.
10002         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
10003         (cpplib.o, cppinit.o): Depend on mkdeps.h.
10004         (mkdeps.o): New target.
10005
10006         * cppfiles.c: Delete deps_output.
10007         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
10008         OBJECT_SUFFIX, and base_name.
10009         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
10010         the include hash.
10011         (initialize_dependency_output): Use deps_init,
10012         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
10013         all the unnecessary string bashing.
10014         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
10015         level.
10016         * cpplib.c (do_include): Use deps_add_dep.
10017         * cpplib.h (struct cpp_reader): Replace deps_buffer,
10018         deps_allocated_size, deps_size, deps_column members with
10019         single pointer to a struct deps.  Delete prototype of
10020         deps_output.
10021
10022         * cppinit.c: Fix thinko in previous patch.
10023
10024 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10025
10026         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
10027         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
10028         (mode_for_size_tree): New function.
10029         (layout_decl, layout_type): Call it and clean up BLKmode checks.
10030         * tree.h (mode_for_size_tree): New declaration.
10031
10032         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
10033
10034 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
10035
10036         * stmt.c (is_body_block): Move...
10037         * dwarfout.c, dwarf2out.c: ...from here.
10038         * tree.h: Declare it.
10039         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
10040         * final.c (final_start_function): Do call remove_unnecessary_notes
10041         when scheduling.
10042
10043 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
10044
10045         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
10046
10047         * cpplib.h (_dollar_ok): New macro.
10048         (is_idchar, is_idstart): Use it.
10049         (IStable): Rename to _cpp_IStable.  Declare it const if
10050         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
10051         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
10052         is_space): Update for renamed IStable.
10053
10054         * cppinit.c: Delete all references to FAKE_CONST and CAT
10055         macros. Define init_IStable as empty macro if gcc >=2.7 or
10056         C99. Change TABLE() to ISTABLE and hardcode name of table.
10057         (cpp_start_read): Don't change the IStable based on
10058         dollars_in_ident.
10059
10060         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
10061         changed.  Handle '$' for char1 correctly.
10062         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
10063
10064         * cppexp.c (tokentab2): Make const.
10065         (cpp_lex): Make toktab const.
10066         * cppinit.c (include_defaults_array): Make const.
10067         (initialize_standard_includes): Make default_include const.
10068
10069 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
10070
10071         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
10072         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
10073         (gen_decl_die): Likewise.
10074         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
10075         (output_decl): Likewise.
10076
10077         * varasm.c (make_function_rtl): If we change the name used in the
10078         rtl, update DECL_ASSEMBLER_NAME accordingly.
10079         (make_decl_rtl): Likewise.
10080
10081         * toplev.c (rest_of_compilation): Tweak formatting.
10082
10083         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
10084         remove_unnecessary_notes.
10085         (debug_ignore_block): New fn.
10086         * toplev.h: Declare it.
10087         * emit-rtl.c (remove_unncessary_notes): Call it.
10088         * dwarf2out.c (dwarf2out_ignore_block): New fn.
10089         * dwarf2out.h: Declare it.
10090         * final.c (final_start_function): Don't call remove_unnecessary_notes
10091         if we did insn scheduling.
10092
10093 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
10094
10095         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
10096         * cpplib.h: Delete SET_CPP_PEDANTIC.
10097
10098 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10099
10100         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
10101         result is a RECORD_TYPE.
10102
10103 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
10104
10105         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
10106
10107 2000-03-03  Richard Henderson  <rth@cygnus.com>
10108
10109         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
10110         addition over compliments over shifts.
10111
10112 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10113
10114         * reload1.c (reload_combine_note_use): Handle return register USEs.
10115         REG case: Handle multi-hard-register hard regs.
10116
10117 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10118
10119         * md.texi: Document use of '*' in insn pattern name.
10120
10121 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
10122
10123         * calls.c (special_function_p): operator new may not be malloc-like.
10124
10125         * gcse.c (dump_hash_table): Really fix error in last change.
10126
10127 2000-03-02  Denis Chertykov  <denisc@overta.ru>
10128
10129         * avr.c (print_operand): Use print_operand_address instead of
10130         output_addr_const.
10131         * avr/libgcc.S: Cleanup code.
10132
10133 2000-03-02  Richard Henderson  <rth@cygnus.com>
10134
10135         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
10136
10137 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
10138
10139         * tree.h (TYPE_ALIGN_UNIT): New macro.
10140
10141 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
10142
10143         * i386.c: (constant_call_address_operand): Reject CONST_INT.
10144
10145 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
10146
10147         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
10148         for the buffer.
10149         (SET_CPP_PEDANTIC): New macro.
10150         * cpplib.c (do_include): Don't bother checking system_header_p.
10151         (do_warning, do_ident, do_assert, do_unassert): Likewise.
10152         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
10153
10154         * function.h (struct expr_status): Add x_arg_space_so_far.
10155         (arg_space_so_far): New macro.
10156         * expr.c (init_expr): Initialize it.
10157         * calls.c (emit_call_1): Reset it.
10158         (compute_argument_block_size, expand_call): Use it.
10159         (expand_call, store_one_arg): Increment it.
10160
10161 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10162
10163         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
10164         a UNION_TYPE.
10165
10166 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
10167
10168         * cppfiles.c (cpp_read_file): New function.
10169
10170         * cpphash.c (collect_expansion): Make sure to reset last_token
10171         to NORM when we hit a string.  Handle trailing whitespace
10172         properly when the expansion is empty.
10173         (create_definition): Disable line commands while parsing the
10174         directive line.
10175         (dump_definition): If pfile->lineno == 0, output a line
10176         command ahead of the dump, and add a trailing newline.
10177
10178         * cppinit.c (append_include_chain): Add fifth argument, which
10179         indicates whether or not system headers are C++ aware.
10180         (initialize_standard_includes): New function,
10181         broken out of read_and_prescan.  Pass 'cxx_aware' value from
10182         the include_defaults_array on to append_include_chain.
10183         (dump_special_to_buffer): Const-ify char array.
10184         (builtin_array): Don't dump __BASE_FILE__.
10185         (cpp_start_read): Use cpp_read_file.  Reorder code for
10186         clarity.  Don't output line commands here for -D/-A/-U
10187         switches.  Don't call deps_output for files included with
10188         -include or -imacros.
10189
10190         * cpplib.c (do_define): Don't pay any attention to the second
10191         argument.
10192         (cpp_expand_to_buffer): Disable line commands while scanning.
10193         (output_line_command): Work in the file buffer.
10194         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
10195         Fix formatting of comments.  Prototype cpp_read_file.
10196
10197 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10198
10199         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
10200         reference the language-equivalent of sizetype.
10201         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
10202         * fold-const.c (size_binop, size_diffop): Put back checks.
10203         * gcse.c (dump_hash_table): Fix minor error in last change.
10204         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
10205         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
10206         all sizetypes.
10207
10208 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
10209
10210         * calls.c (expand_call)  Do not attempt to combine stack adjustments
10211         with inhibit_defer_pop set.
10212
10213 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
10214
10215         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
10216         the DECL_SIZE for a FIELD_DECL.
10217
10218 2000-03-01  Bruce Korb  <bkorb@gnu.org>
10219
10220         * fixinc/inclhack.tpl: remove unused symlinks
10221         * fixinc/README: GCC Maintainer info
10222         * fixinc/inclhack.sh: regen
10223         * fixinc/fixincl.sh: regen
10224
10225 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
10226
10227         * cpphash.c (collect_expansion): Trim trailing white space
10228         from macro definitions, but don't go past the last insertion
10229         point.
10230
10231 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
10232
10233         * i386.md (mulqi3): New pattern.
10234
10235 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
10236
10237         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
10238         token types.
10239         (struct cpp_reader): Add parsing_if_directive and
10240         parsing_define_directive flags.
10241         (struct cpp_options): Remove output_conditionals flag.
10242         (check_macro_name): Delete prototype.
10243
10244         * cpphash.h (struct macrodef): Delete.
10245         (struct reflist): Separate from struct definition.
10246         (struct definition): Remove unused fields.  Add column number.
10247         (create_definition): Returns a DEFINITION *.  Takes a
10248         cpp_reader * and an int.
10249
10250         * cpphash.c (SKIP_WHITE_SPACE): Delete.
10251         (PEEKC): Copy defn from cpplib.c.
10252         (rest_extension, REST_EXTENSION_LENGTH): Delete.
10253         (struct arg): New.
10254         (struct arglist): Simplify.
10255         (collect_expansion): Rewrite.  Get tokens by calling
10256         cpp_get_token.  Add more error checking.
10257         (collect_formal_parameters): New function, broken out of
10258         create_definition and reworked to use get_directive_token.
10259         (create_definition): All real work is now in collect_expansion
10260         and collect_formal_parameters.  do_define handles finding the
10261         macro name.  Return a DEFINITION, not a MACRODEF.
10262         (macroexpand): Replace bcopy with memcpy throughout.  Replace
10263         character-at-a-time copy loop with memcpy and pointer increments.
10264         (compare-defs): d1->argnames / d2->argnames might be null.
10265
10266         * cpplib.c (copy_rest_of_line): Delete function.
10267         (skip_rest_of_line): Do all the work ourselves.
10268         (skip_string): New function.
10269         (parse_string): Use skip_string.
10270         (get_macro_name): New function.
10271         (check_macro_name): Delete.
10272         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
10273         (cpp_skip_hspace): Use CPP_BUMP_LINE.
10274         (handle_directive): ICE if we're called on a macro buffer.
10275         (do_define): Determine macro name and type (funlike/objlike)
10276         here.  Expunge all uses of MACRODEF.
10277         (cpp_push_buffer): Set line_base to NULL.
10278         (do_undef, read_line_number): Don't worry about getting a POP token.
10279         (eval_if_expression): Set/reset parsing_if_directive around
10280         cpp_parse_expr. Don't clear only_seen_white.
10281         (skip_if_group): Remove output_conditionals logic.  Use
10282         skip_rest_of_line.
10283         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
10284         tokens under appropriate conditions.
10285         (cpp_unassert): Call do_unassert not do_assert.  Oops.
10286
10287         * cppexp.c (parse_defined): New function, break out of
10288         cpp_lex.
10289         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
10290         ourselves, with cpp_defined.
10291         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
10292
10293         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
10294         * gcc.dg/strpaste-2.c: New.
10295
10296 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
10297
10298         * fold-const.c (size_binop): Don't asert inputs are the same and
10299         have TYPE_IS_SIZETYPE set.
10300         (size_diffop): Likewise.
10301
10302 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
10303
10304         * dwarfout.c (output_block): Output abstract blocks even if they
10305         don't have TREE_ASM_WRITTEN set.
10306
10307         * calls.c (emit_library_call): Check for null REG.
10308
10309 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
10310
10311         * c-decl.c (current_function_decl): Move to toplev.c.
10312         (init_decl_processing): Don't add current_function_decl as a ggc
10313         root here.
10314         * dbxout.c (dbxout_symbol): Change return type to int.
10315         (dbxout_symbol_location, dbxout_syms): Likewise.
10316         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
10317         any locals. Use current_function_func_begin_label if set.
10318         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
10319         * dwarf2out.c (dwarf2out_begin_prologue): Set
10320         current_function_func_begin_label.
10321         * final.c (final_start_function): Reset it.
10322         * toplev.c (current_function_decl): Define it here.
10323         (current_function_func_begin_label): New variable.
10324         (main): Add both as ggc roots.
10325         * tree.h (current_function_func_begin_label): Declare.
10326
10327 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10328
10329         * gcse.c: Cleanups throughout: mostly white-space, but also
10330         some minor rearrangement of code.
10331
10332 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
10333
10334         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
10335         returns a PARALLEL.  Use emit_group_load and use_group_regs
10336         as needed.
10337         (emit_library_call_value): Similarly.
10338
10339         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
10340         * pa/quadlib.asm: Remove.
10341         * pa/quadlib.c: New file.
10342
10343         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
10344         * configure: Rebuilt.
10345
10346 2000-02-29  Philip Blundell  <pb@futuretv.com>
10347
10348         * config/arm/conix-elf.h: New file.
10349         * configure.in (arm*-*-conix*): New configuration.
10350         * configure: Regenerate.
10351
10352 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
10353
10354         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
10355         don't have TREE_ASM_WRITTEN set.
10356
10357 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10358
10359         * Eliminate DECL_FIELD_SIZE.
10360         * builtins.c (built_in_class_names, built_in_names): New variables.
10361         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
10362         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
10363         DECL_SIZE, not DECL_FIELD_SIZE.
10364         * print-tree.c (print_node): Remove code that prints extra blank
10365         lines in some cases.
10366         Properly handle inline and builtin function cases.
10367         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
10368         * tree.h (built_in_class_named, built_in_names): New declarations.
10369         (union tree_decl): Rename internal unions to u1 and u2 and change
10370         some of their components.
10371         Add new field built_in_class.
10372         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
10373         Reflect above changes.
10374         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
10375         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
10376         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
10377         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
10378
10379 2000-02-28  Dmitri Makarov  <dim@windriver.com>
10380
10381         * extend.texi: Document ARM's support for long/short calls.
10382
10383         * invoke.texi: Document ARM's -mlong-calls command line switch.
10384
10385         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
10386         (arm_encode_call_attribute): Add prototype.
10387         (arm_set_default_type_attribute): Add prototype.
10388         (arm_strip_name_encoding): Add prototype.
10389
10390         * config/arm/arm.c (arm_init_cumulative_args): replace
10391         initialisation og 'long_calls' field with initialisation of
10392         'call_cookie' field.
10393         (enum arm_pragma_enum): New enum.
10394         (arm_pragma_long_calls): New static variable.
10395         (arm_process_pragma): Also process "#pragma long_calls_off".
10396         (arm_valid_type_attribute_p): Accept short_call attribute.
10397         (arm_comp_type_attributes): Check long/short call attributes.
10398         (arm_encode_call_attribute):  New function:  Encode long_call
10399         or short_call attribute in function name.
10400         (arm_set_default_type_attributes): New function: Assign
10401         default attributes to newly defined type.
10402         (current_file_function_operand): New function: Return true if
10403         the symbol is a function which has already been compiled.
10404         (arm_is_longcall_p): New function: Return true if the
10405         indicated function should be called via a long call.
10406         (arm_get_strip_length): New function.  Returns number of
10407         prefix characters to be stripped from a function's name.
10408         (arm_strip_name_encoding): New function.  Strip prefix characters
10409         from a function's name.
10410
10411         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
10412         with 'call_cookie'.
10413         (SHORT_CALL_FAG_CHAR): Define.
10414         (LONG_CALL_FAG_CHAR): Define.
10415         (ENCODED_SHORT_CALL_ATTR_P): Define.
10416         (ENCODED_LONG_CALL_ATTR_P): Define.
10417         (ARM_NAME_ENCODING_LENGTHS): Define.
10418         (STRIP_NAME_ENCODING): Define.
10419         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
10420         (ARM_ENCODE_CALL_TYPE): Define.
10421         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
10422         (ARM_DECLARE_FUNCTION_SIZE): Define.
10423         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
10424
10425         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
10426         if a long call is needed.
10427         (call_value): Ditto.
10428         (call_symbol): Ditto.
10429
10430         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
10431         ARM_DECLARE_FUNCTION_SIZE.
10432
10433         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
10434         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
10435         (ARM_STRIP_NAME_ENCODING): Undefine.
10436         (STRIP_NAME_ENCODING): Undefine.
10437         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
10438         (ASM_DECLARE_FUNCTION_NAME): Ditto.
10439         (ASM_OUTPUT_COMMON): Ditto.
10440         (ASM_DECLARE_OBJECT_NAME): Ditto.
10441
10442         * config/arm/pe.c (arm_dllexport_name_p): Check for
10443         ARM_PE_FLAG_CHAR.
10444         (arm_dllimport_name_p): Ditto.
10445         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
10446         (arm_mark_dllimport): Ditto.
10447
10448 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10449
10450         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
10451
10452 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
10453
10454         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
10455
10456 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
10457
10458         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
10459         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
10460         NO_BUILTIN_WCHAR_TYPE is not defined.
10461         (CPP_WCHAR_TYPE): Delete.
10462         * cccp.c (main): Don't change wchar_type if cplusplus.
10463         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
10464
10465 2000-02-28  Nick Clifton  <nickc@cygnus.com>
10466
10467         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
10468
10469 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
10470
10471         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
10472         (ASM_WEAKEN_LABEL): Define.
10473
10474 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
10475
10476         * expr.c (store_constructor): Do not emit USE.
10477         * rtl.h (stupid_life_analysis): Remove.
10478
10479 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10480
10481         * function.c (number_blocks): Reset next_block_index based on
10482         what debugging format is used, not what is defined.
10483
10484         * lcm.c: Minor reformatting throughout.
10485         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
10486
10487         * toplev.c (rest_of_compilation): Account for time in
10488         optimize_mode_switching.
10489
10490         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
10491         if only marking labels.
10492
10493 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
10494
10495         * calls.c (expand_call): Attempt to combine stack adjustments with
10496         pending stack adjustments.
10497
10498 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10499
10500         * loop.c (reg_in_basic_block_p): Don't abort when falling through
10501         to the end of the function.
10502
10503 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
10504
10505         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
10506         blocks.
10507         * final.c (next_block_index): Remove.
10508         (max_block_depth): Likewise.
10509         (pending_blocks): Likewise.
10510         (init_final): Don't initialize them.
10511         (final_start_function): Don't set next_block_index.  Set up
10512         BLOCK_NUMBER.
10513         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
10514         * function.h (number_blocks): New function.
10515         * function.c (get_block_vector): New function.
10516         (identify_blocks): Use it.
10517         (reorder_blocks): Set NOTE_BLOCK.
10518         (number_blocks): New function.
10519         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
10520         * tree.h (BLOCK_NUMBER): New macro.
10521         (tree_block): Add block_num field.
10522         * dbxout.c (next_block_number): Remove.
10523         (dbxout_init): Don't set it.
10524         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
10525         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
10526         block numbers.
10527         * toplev.c (rest_of_compilation): Always call
10528         find_loop_tree_blocks.  Fix indentation.
10529         * dwarf2out.c (next_block_number): Remove.
10530         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10531         to determine block numbers.
10532         (gen_inlined_subroutine_die): Likewise.
10533         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
10534         (decls_for_scope): Don't increment next_block_number.
10535         * dwarfout.c (next_block_number): Remove.
10536         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10537         to determine block numbers.
10538         (output_inlined_subroutine_die): Likewise.
10539         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
10540         (output_decls_for_scope): Don't increment next_block_number.
10541         * sdbout.c (next_block_number): Remove.
10542         (sdbout_block): Use BLOCK_NUMBER.
10543         (sdbout_begin_block): Simplify.
10544         * xcoffout.c (next_block_number): Remove.
10545         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
10546         (xcoffout_begin_block): Don't set next_block_number.
10547         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
10548         next_block_number.
10549
10550 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10551
10552         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
10553         (expand_builtin_strcpy): Pass correct type to size_binop.
10554         (expand_builtin_strcmp): Likewise.
10555         Clean up conditional structure.
10556         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
10557         (complete_array_type): Don't use size_binop for MAXINDEX.
10558         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
10559         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
10560         (c_alignof): Use size_one_node.
10561         (build_unary_op): Pass arg of proper type to size_binop.
10562         (really_start_incremental_init, push_init_level): Use sizetype for
10563         constructor{,_bit,_unfilled}_index.
10564         (pop_init_label, output_init_element): Likewise.
10565         (output_pending_init_elements, process_init_element): Likewise.
10566         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
10567         * expr.c (store_expr): Use size_int.
10568         (store_constructor): Use proper types for size_binop args.
10569         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
10570         (expand_expr_unaligned): Likewise.
10571         (string_contant): Return object of sizetype.
10572         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
10573         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
10574         (ARGS_SIZE_TREE): Pass proper types to size_binop.
10575         * fold-const.c (int_const_binop): Refine when size_int is called.
10576         (fold_convert): Likewise.
10577         (size_int_wide): Rework to take KIND as arg, only take low order
10578         bits, handle new sizetype_tab datatype, and chain entries in
10579         size_table.
10580         (size_int_type_wide): New function.
10581         (size_binop): Validate types of arguments.
10582         (ssize_binop): Deleted.
10583         (size_diffop): New function.
10584         (extract_muldiv): Only fold division into multiplication for sizetypes.
10585         * function.c (assign_parms): Use size_diffop and make sure
10586         VAR field is of ssizetype; also pass proper type to size_binop.
10587         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
10588         (round_down): Deleted from here.
10589         * store-layout.c (sizetype_tab): Now an array.
10590         (sizetype_set, early_root_list): New variables.
10591         (variable_size): Use size_one_node.
10592         (round_up): Pass proper type to size_binop.
10593         (round_down): Moved to here and corrected as above.
10594         (layout_record): Pass proper arg types to size_binop.
10595         (layout_type): Likewise.
10596         If sizetype_set is zero, record the type just laid out.
10597         (make_unsigned_type): Don't call set_sizetype;
10598         (make_signed_type): Likewise; also, call fixup_signed_type.
10599         (initialize_sizetypes): New function.
10600         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
10601         set name of bitsizetype to "bit_size_type".
10602         Fix up type of sizes of all types made before call.
10603         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
10604         * tree.c (fix_sizetype): Deleted.
10605         (build_common_tree_nodes): Call initialize_sizetypes.
10606         (build_common_tree_nodes_2): Don't call fix_sizetype.
10607         * tree.h (TYPE_IS_SIZETYPE): New macro.
10608         (initialize_sizetype): New declaration.
10609         (enum size_type_kind): New type.
10610         (struct sizetype_tab): Deleted.
10611         (sizetype_tab): Now array; adjust sizetype macros.
10612         (size_diffop, size_int_type_wide): New functions.
10613         (size_int_wide): Change number of args and type; access macros changed.
10614         (ssize_int, sbitsize_int): New macros.
10615         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
10616         (ROUND_TYPE_SIZE_UNIT): New macro.
10617
10618 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
10619
10620         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
10621
10622 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10623
10624         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
10625         Mark as possibly unused.
10626
10627         * cse.c (cse_insn): Delete dead code involving tablejump.
10628         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
10629
10630         * Makefile.in (libcpp.a): Start by deleting it.
10631
10632 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10633
10634         * cpplib.h (enum file_change_code): Added rename_file.
10635         * cpplib.c (do_line): If a filename is given, set file_change to
10636         rename_file.
10637         (output_line_command): If file_change is rename_file, always
10638         output a # directive with the file name.
10639
10640         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
10641
10642 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
10643
10644         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
10645         when copying a PARM_DECL or RESULT_DECL.
10646
10647 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10648
10649         * fix-header.c (recognized_function): Also fix prototypes for
10650         functions taking "void".
10651
10652 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10653
10654         * reload1.c (do_output_reload): Check reg_reloaded_valid before
10655         looking at reg_reloaded_contents.
10656
10657 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
10658
10659         * Makefile.in (STMP_FIXINC): New toggle.
10660         (LIBGCC2_DEPS): Delete all references.
10661         (stmp-headers): Delete target.  All references either deleted
10662         or changed to stmp-int-headers.
10663         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
10664         (LIBCPP_OBJS): Take out cppalloc.o.
10665         (cppalloc.o): Delete target.
10666         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
10667         (gen-protos, fix-header): Link with libiberty.a.
10668         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
10669         to empty.
10670
10671         * configure.in: Remove refs to strerror.
10672         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
10673         * system.h: Take out strerror stanza.
10674
10675         * cpperror.c (my_strerror): Delete function.
10676         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
10677         * cppmain.c (main): Call xmalloc_set_program_name first thing.
10678         * cppalloc.c: Delete file.
10679         * gen-protos.c: Don't provide xrealloc.
10680
10681         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
10682         xstrerror throughout.
10683
10684 2000-02-26  Bruce Korb  <bkorb@gnu.org>
10685
10686         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
10687         match for DOS headers, too.
10688         * fixinc/inclhack.sh,fixincl.x: Regenerate.
10689
10690 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10691
10692         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
10693         is right for most ELF targets.
10694         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
10695         Let the default file use %U properly.
10696         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
10697         default.
10698
10699         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
10700         numbers.
10701
10702 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10703
10704         * toplev.c (documented_lang_options): Correct spelling error.
10705         (decode_d_option, decode_f_option, main): Likewise.
10706
10707         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
10708
10709         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
10710         to tell assembler it is permitted to expand large constants.
10711
10712 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
10713
10714         * protoize.c: (AUX_INFO_SUFFIX): New macro.
10715         (aux_info_suffix): Use.
10716         (SAVE_SUFFIX): New macro.
10717         (save_suffix): Use.
10718         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
10719         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
10720         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
10721
10722         * invoke.texi (Running Protoize): Update documentation.
10723
10724 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
10725
10726         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
10727
10728 2000-02-25  John Wehle  (john@feith.com)
10729
10730         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
10731
10732 2000-02-25  Anthony Green  <green@cygnus.com>
10733
10734         * toplev.c (rest_of_compilation): Rebuild jump labels if
10735         combine_instructions has created a new direct jump.
10736         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
10737         when appropriate.
10738         (combine_instructions): Call try_combine with new argument.
10739         Return non-null value when new direct jump instruction is created.
10740         * rtl.h: combine_instructions returns an int.
10741
10742 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
10743
10744         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
10745         jump when changing a computed jump into a jump to a known
10746         target.
10747
10748 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
10749
10750         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
10751         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
10752
10753         * i386.md (define_expand "clrstrsi"): Fix typo.
10754
10755 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
10756
10757         * rtl.texi: Fix typo.
10758
10759 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10760
10761         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
10762         UNITS_PER_WORD.  Change caller initial_elimination_offset.
10763         (rounded_frame_size): Take into account that argument pushed has
10764         changed.  Fix TARGET_ALIGN_DOUBLE problem.
10765
10766 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
10767
10768         * haifa-sched.c (schedule_block): Explain the real reason
10769         we delete REG_SAVE_NOTEs on the first insn of a block.
10770         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
10771
10772 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
10773
10774         * input.h (push_srcloc): New function.
10775         (pop_srcloc): Likewise.
10776         * toplev.c (push_srcloc): Define it.
10777         (pop_srcloc): Likewise.
10778
10779 2000-02-24  Richard Henderson  <rth@cygnus.com>
10780
10781         * flow.c (life_analysis): When collecting reg info, clear
10782         regs_ever_live.
10783
10784 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10785
10786         Fix bug exposed by reload.c no longer rounding the frame
10787         size to BIGGEST_ALIGNMENT:
10788         * sh.c (rounded_frame_size): New function.
10789         (sh_expand_prologue, sh_expand_epilogue): Use it.
10790         (initial_elimination_offset): Likewise.
10791
10792 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10793
10794         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
10795         * sh-protos.h (sh_need_epilogue): Declare.
10796         * sh.c (sh_need_epilogue_known): New static variable.
10797         (sh_need_epilogue): New function.
10798         (function_epilogue): Clear need_epilogue_known.
10799         * sh.md (return): Split into expander / insn pattern.
10800         Make the expander conditional on ! sh_need_epilogue ().
10801
10802 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
10803
10804         * machmode.h (get_mode_alignment): Declare.
10805         (GET_MODE_ALIGNMENT): Call it.
10806         * stor-layout.c (get_mode_alignment): New function. Make
10807         sure alignment is always power of 2.
10808
10809 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10810
10811         * i386.h: Remove useless definition of "I386" and misleading
10812         comment above it.
10813
10814 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10815
10816         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
10817         under which TREE_PERMANENT will be set.
10818         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
10819         build1): Use TREE_SET_PERMANENT.
10820         * print-tree.c (print_node): Don't report value of
10821         TREE_PERMANENT if ggc_p is true.
10822
10823         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
10824         decide whether to give a type a new alias set.
10825         * objc/objc-act.c (build_objc_string_object): Never copy the string.
10826         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
10827         of value of 'obstack'.
10828
10829
10830 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10831
10832         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
10833
10834 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10835
10836         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
10837         * cpplib.c (cpp_get_token): Produce them.
10838         * cppexp.c (cpp_lex): Handle them.
10839
10840 2000-02-23  Nick Clifton  <nickc@cygnus.com>
10841
10842         * config/arm/arm.c (arm_comp_type_attributes): Simply and
10843         comment tests on type attributes.
10844
10845 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10846
10847         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
10848         conform to documentation.
10849         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
10850         to check for special cases.
10851         * sh-protos.h (sh_loop_align): Declare.
10852         * sh.c (sh_loop_align): Define.
10853
10854 2000-02-22  Andrew Haley  <aph@cygnus.com>
10855
10856         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
10857         (SIZE_TYPE): Is 32 bits when using -mgp32.
10858         (PTRDIFF_TYPE): Ditto.
10859
10860 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10861
10862         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
10863
10864 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10865
10866         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
10867         BIGGEST_FIELD_ALIGNMENT a constant.
10868
10869 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
10870
10871         * dwarf2out.c (output_line_info): Put the marker for the end of
10872         the line number info at the actual end.
10873         (gen_struct_or_union_type_die): Use decl_function_context
10874         to check for local classes.
10875         * dwarfout.c (output_type): Likewise.
10876
10877 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
10878
10879         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
10880         for arguments with a mode, but no type.
10881         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
10882         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
10883         * pa/long_double.h: New file.
10884         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
10885         both have 128bit wide long doubles.
10886         * configure: Rebuilt.
10887
10888 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10889
10890         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
10891
10892         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
10893         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
10894         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
10895
10896         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
10897
10898         * integrate.c (compare_blocks, find_block): Likewise.
10899
10900         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
10901
10902         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
10903
10904         * stmt.c (stmt_status, set_file_and_line_for_stmt,
10905         expand_asm_operands): Likewise.
10906
10907 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
10908
10909         * predict.c (estimate_probability): Added the pointer heuristic to
10910         the collection of static branch predictors.
10911
10912 2000-02-21  Catherine Moore  <clm@cygnus.com>
10913
10914         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
10915         * invoke.texi (-mfix7000): Document.
10916
10917 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
10918
10919         * diagnostic.c (init_output_buffer): Make it possible to output at
10920         least 32 characters if we're given a too long prefix.
10921
10922 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
10923
10924         * varasm.c (initializer_constant_valid_p): Call
10925         lang_expand_constant to simplify the constant.
10926
10927 2000-02-20  Bruce Korb  <bkorb@gnu.org>
10928
10929         * fixinc/inclhack.def(stdio_va_list):
10930         typedef needs to be disabled.
10931         * fixinc/inclhack.sh: regen
10932         * fixinc/fixincl.x: regen
10933
10934 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
10935
10936         * print-rtl.c (print_rtx): Don't print addresses when
10937         flag_dump_unnumbered.
10938
10939 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10940
10941         * sparc.c (sparc_output_scratch_registers): Mark parameter with
10942         ATTRIBUTE_UNUSED.
10943         (sparc_va_arg, sparc_flat_output_function_prologue,
10944         sparc_flat_output_function_epilogue): Cast value to unsigned in
10945         comparison.
10946         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
10947
10948         * sparc.md: Add default case in switch.
10949
10950 2000-02-19  Richard Henderson  <rth@cygnus.com>
10951
10952         * c-typeck.c (add_pending_init): Don't abort for multiple
10953         fields at the same offset.
10954         (pending_init_member): Test the correct member.
10955
10956 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10957
10958         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
10959         instead of SImode.
10960         (start_catch_handler) : Same.
10961
10962 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
10963
10964         * Makefile.in: Have flow.o depend on $(EXPR_H)
10965
10966 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10967
10968         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
10969         * c-decl.c (duplicate_decls, finish_enum): Likewise.
10970         (finish_decl): Remove -Wlarger-than code from here.
10971         * flags.h (id_clash_len): Now int.
10972         (larger_than_size): Now HOST_WIDE_INT.
10973         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
10974         Clean up checking to see if in table.
10975         (make_bit_field_ref): Remove extra parm to bitsize_int.
10976         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
10977         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
10978         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
10979         and for computing size of decl.
10980         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
10981         Move -Wlarger-than code to here.
10982         (layout_record): Remove extra arg to bitsize_int.
10983         Set TYPE_BINFO_SIZE_UNIT.
10984         (layout_union): Remove extra arg to bitsize_int.
10985         Use proper type for size of QUAL_UNION.
10986         (layout_type): Remove extra arg to bitsize_int.
10987         * toplev.c (id_clash_len): Now int.
10988         (larger_than_size): Now HOST_WIDE_INT.
10989         (decode_W_option): Clean up id-clash and larger-than- cases.
10990         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
10991         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
10992         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
10993         (struct tree_decl): New field size_unit.
10994         (size_int_wide): No HIGH operand; NUMBER is now signed.
10995         (size_int_2): Deleted.
10996         (size_int, bitsize_int): Don't use it and rework args.
10997         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
10998
10999 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
11000
11001         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
11002
11003 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11004
11005         * invoke.texi (Warning Options): Add an explanation of why
11006         you might want the -Wfloat-equal flag.
11007
11008 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11009
11010         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
11011         * cppinit.c (new_pending_define): Add cast to avoid warning.
11012         * expmed.c (extract_bit_field): Likewise.
11013         * flow.c (enum reorder_skip_type): New type.
11014         (skip_insns_between_blcok): New it.
11015         Rework to avoid warning about possibly undefined variable.
11016         * function.c (assign_parms): Make thisparm_boundary unsigned.
11017         * genrecog.c (write_switch): Cast XWINT result to int.
11018         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
11019         * mips-tfile.c (init_file): Make two versions of FDR intializer:
11020         one for MIPS and one for Alpha.
11021         (get_tag, copy_object): Add casts to avoid warnings.
11022         * optabs.c (init_one_libfunc): Cast NAME to (char *).
11023         * reload.c (find_reloads): Make TYPE enum reload_type.
11024         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
11025         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
11026         * varasm.c (compare_constant_1): Add cast to avoid warning.
11027         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
11028         to (char *).
11029         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
11030         Cast switch operand of size to int.
11031         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
11032         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
11033         in unhandled case.
11034
11035 2000-02-18  Nick Clifton  <nickc@cygnus.com>
11036
11037         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
11038         anything for an alignment of zero.
11039
11040         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
11041         anything for an alignment of zero.
11042
11043 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
11044
11045         * gcc.texi (Bug Reporting): Refer to bugs.html.
11046         (Bug Lists): Likewise.
11047         * system.h (GCCBUGURL): New preprocessor define.
11048         * rtl.c (fancy_abort): Use it.
11049         * gcc.c (main): Likewise.
11050
11051 2000-02-18  Richard Henderson  <rth@cygnus.com>
11052
11053         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
11054         (life_analysis_1): Subsume into ...
11055         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
11056         Use update_life_info for the relaxation.
11057         (update_life_info): Update REG_BASIC_BLOCK for registers live on
11058         entry and regs_live_at_setjmp.
11059         (set_noop_p): Simplify.
11060         (notice_stack_pointer_modification_1): Renamed from s/_1//.
11061         (record_volatile_insns): Split into ...
11062         (delete_noop_moves): ... here,
11063         (notice_stack_pointer_modification): ... here,
11064         (insn_dead_p): ... and here.
11065         (propagate_block): Don't query INSN_VOLATILE.
11066         (mark_used_regs): Mind !PROP_REG_INFO.
11067         * toplev.c (rest_of_compilation): Call mark_constant_function here,
11068         not in life_analysis.
11069
11070 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
11071
11072         * loop.c (canonicalize_condition): New function,
11073         broken out of get_condition.
11074         (get_condition): Use it.
11075         * expr.h (canonicalize_condition): Prototype it.
11076
11077         * tree.h (tree_int_cst_msb): Declare.
11078         * tree.c (tree_int_cst_msb): New function.
11079
11080 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
11081
11082         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
11083         isn't set.
11084
11085         * invoke.texi (-fmessage-length=n): Document.
11086
11087 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
11088
11089         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
11090
11091 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
11092
11093         * function.c (thread_prologue_and_epilogue_insns): Put a line note
11094         after the prologue.
11095
11096 2000-02-17  Nick Clifton  <nickc@cygnus.com>
11097
11098         * config/arm/thumb.c: Replace includes of system headers with
11099         #include "system.h".
11100
11101 2000-02-16  Richard Henderson  <rth@cygnus.com>
11102
11103         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
11104         Add crtbeginS.o and crtendS.o.
11105         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
11106         (ENDFILE_SPEC): Use crtendS.o.
11107         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
11108
11109         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
11110         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
11111         shared and present.
11112         (__dso_handle): New variable.
11113         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
11114         bias to __CTOR_END__.
11115
11116 2000-02-16  Richard Henderson  <rth@cygnus.com>
11117
11118         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
11119
11120 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11121
11122         * longlong.h (__clz_tab): Declare as static to match definition.
11123
11124 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
11125
11126         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
11127         (XREF_FILE_NAME): Define.
11128
11129         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
11130         (EH_FRAME_SECTION_ASM_OP): Define.
11131         (IDENT_ASM_OP): Define.
11132         (TEXT_SECTION_ASM_OP): Define.
11133         (CPP_SPEC): Define.
11134         (CTORS_SECTION_ASM_OP): Define.
11135         (CTOR_SECTION_FUNCTION): Use it.
11136         (DTORS_SECTION_ASM_OP): Define.
11137         (DTOR_SECTION_FUNCTION): Use it.
11138
11139 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
11140
11141         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
11142         NOTE_BASIC_BLOCK.
11143
11144         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
11145         debug_bb_n): New functions.
11146         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
11147         * basic-block.h: Prototype new functions.
11148
11149 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
11150
11151         * configure.in: Add support for avr target.
11152         * configure: Rebuilt.
11153
11154         * invoke.texi: Add AVR invocation docs.
11155         * install.texi: Add information about AVR.
11156         * md.texi: Add AVR constraint letters description.
11157         * extend.texi: Add description for AVR specific attributes.
11158
11159 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
11160
11161         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
11162
11163 2000-02-16  Nick Clifton  <nickc@cygnus.com>
11164
11165         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
11166         (make_insn_raw): Move RTL check here.
11167
11168 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11169
11170         * version.c: Include gansidecl.h and version.h.
11171
11172         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
11173
11174         * configure.in (gcc_version): When setting, narrow search to
11175         lines containing `version_string'.
11176
11177         * Makefile.in (mainversion): Likewise.
11178         (GCC_H): New variable.
11179         (gcc.h): Delete target.
11180         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
11181         (version.o): Depend on version.h.
11182         (dbxout.o): Don't depend on gcc.h.
11183
11184 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11185                           Michael Meissner  <meissner@cygnus.com>
11186
11187         * md.texi (Simple Constraints): Add item about whitespace.
11188         * genoutput.c (strip_whitespace): New.
11189         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
11190         strip_whitespace for constraints.
11191         Test pointer using NULL, not 0.
11192
11193 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11194
11195         * cpplib.c (do_line): Pedwarn for #line > 32767.
11196
11197         * c-lex.c (readescape): Warn about '\x', but do not reject it.
11198
11199 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
11200
11201         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
11202         to default cpp spec.
11203         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
11204         * cpp.texi: Document __GNUC_PATCHLEVEL__.
11205         * cpp.1: Likewise.
11206
11207         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
11208         default spec.
11209
11210 2000-02-15  Denis Chertykov  <denisc@overta.ru>
11211
11212         * configure.in: Add support for avr target.
11213
11214 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11215
11216         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
11217         (sh_addr_diff_vec_mode): Don't declare.
11218         * sh.c (sh_addr_diff_vec_mode): Delete.
11219
11220 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11221
11222         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
11223
11224 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11225
11226         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
11227         (smulsi3_highpart_i): Name.
11228         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
11229         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
11230         (smulsi3_highpart, umulsi3_highpart): Likewise.
11231
11232         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
11233         correctly independent of endianness.
11234         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
11235         confuse the optimizers.
11236         (mulsidi3+1, umulsidi3+1): New define_split.
11237
11238 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
11239
11240         * config/sh/sh.md: Guard insn splits against illegal registers.
11241         * config/sh/sh.h: Correct comment about macros.
11242
11243 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11244                           Andrew MacLeod  <amacleod@cygnus.com>
11245
11246         * Makefile.in (lcm.o): Depend on insn-attr.h.
11247         * basic-block.h (optimize_mode_switching): Declare.
11248         * lcm.c (tm_p.h, insn-attr.h): #include.
11249         (seginfo, bb_info): New structs.
11250         (antic, transp, comp, delete, insert) : New file-scope static variables.
11251         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
11252         (reg_becomes_live, optimize_mode_switching): Likewise.
11253         * tm.texi: Add description of mode switching macros.
11254         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
11255
11256         * sh-protos.h (remove_dead_before_cse): Remove prototype.
11257         (fldi_ok, fpscr_set_from_mem): New prototypes.
11258         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
11259         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
11260         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
11261         (sh_flag_remove_dead_before_cse): Remove declaration.
11262         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
11263         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
11264         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
11265         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
11266         (barrier_align): Allow for JUMP_INSNS containing a parallel.
11267         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
11268         (fldi_ok): New function.
11269         (get_fpscr_rtx): Add fpscr_rtx as GC root.
11270         (emit_sf_insn): Only generate fpu switches when optimize < 1.
11271         (emit_df_insn): Likewise.
11272         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
11273         (sh_flag_remove_dead_before_cse): Delete.
11274         (get_free_reg, fpscr_set_from_mem): New functions.
11275         * sh.md (movdf, movsf): Remove no_new_pseudos code.
11276         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
11277
11278 2000-02-15  Loren Rittle  <ljrittle@acm.org>
11279
11280         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
11281
11282 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11283
11284         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
11285         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
11286
11287         * cccp.c: Include version.h and/or don't declare `version_string'.
11288         * collect2.c: Likewise.
11289         * alpha.c: Likewise.
11290         * arm/aof.h: Likewise.
11291         * arm/coff.h: Likewise.
11292         * arm/elf.h: Likewise.
11293         * arm/pe.h: Likewise.
11294         * arm/tcoff.h: Likewise.
11295         * arm/telf.h: Likewise.
11296         * arm/tpe.h: Likewise.
11297         * arm/vxarm.h: Likewise.
11298         * convex/convex.c: Likewise.
11299         * i386/dgux.c: Likewise.
11300         * i386/sun386.h: Likewise.
11301         * m88k/m88k.c: Likewise.
11302         * mcore/mcore-pe.h: Likewise.
11303         * mips/mips.h: Likewise.
11304         * romp/romp.h: Likewise.
11305         * sh/sh.c: Likewise.
11306         * cpphash.c: Likewise.
11307         * cppinit.c: Likewise.
11308         * dwarf2out.c: Likewise.
11309         * dwarfout.c: Likewise.
11310         * gcc.c: Likewise.
11311         * gcc.h: Likewise.
11312         * mips-tfile.c: Likewise.
11313         * protoize.c: Likewise.
11314         * toplev.c: Likewise.
11315         * tree.h: Likewise.
11316
11317         * version.c (version_string): Constify a char*.
11318
11319         * version.h: New file.
11320
11321 2000-02-14  Nick Clifton  <nickc@cygnus.com>
11322
11323         * configure.in: Add mcore-elf and mcore-pe targets.
11324         * configure: Regenerate.
11325
11326         * NEWS: Add note that MCore port has been contributed.
11327
11328         * invoke.texi: Document command line switches for MCore port.
11329         * install.texi: Add MCore to list of supported targets.
11330
11331 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
11332
11333         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
11334         then we will need to import the frame handling functions.
11335         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
11336         to import the frames themselves.
11337
11338 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
11339                           Jason Eckhardt  <jle@cygnus.com>
11340
11341         * basic_block.h: Added prototype for reorder_basic_blocks.
11342         * toplev.c: Changes to add -freorder-blocks and graph dump after
11343         block reordering is done.
11344         * flow.c (reorder_block_def): New structure for use during block
11345         reordering.
11346         (REORDER_BLOCK_*): New macros to access members of above structure.
11347         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
11348         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
11349         functions for block reordering.
11350
11351 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11352
11353         * gcc.texi (Passes): Fix typo.
11354         * md.texi (Standard Names): Ditto.
11355         * tm.texi (Storage Layout): Ditto.
11356
11357 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
11358
11359         * cpplib.c (do_define): Only free the old definition if it
11360         actually had one.
11361
11362 2000-02-13   Neil Booth  <NeilB@earthling.net>
11363
11364         * cppfiles.c (read_and_prescan): When emitting deferred
11365         newlines, test speccase[] again instead of checking each
11366         possible whitespace character in turn.  When we encounter \r,
11367         look behind for \n first, then ahead.
11368
11369 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
11370
11371         * cse.c (cse_altered): New internal flag.
11372         (cse_insn): Set it if we changed an insn.
11373         (cse_main): Clear cse_altered before each basic block.
11374         Only garbage collect if cse_altered is true afterward.
11375
11376 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11377
11378         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
11379
11380 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
11381
11382         * combine.c (simplify_comparison): Fix typo.
11383
11384 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
11385
11386         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
11387         consistently.
11388
11389 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11390
11391         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
11392         previously inserted node instead of root node.  Caller changed.
11393
11394 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11395
11396         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
11397
11398 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11399
11400         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
11401         __dereg_frame_dtor): Add prototype argument.
11402
11403         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
11404
11405         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
11406
11407         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
11408
11409         * gthr-vxworks.h (__gthread_once): Likewise.
11410
11411         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
11412
11413 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
11414
11415         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
11416         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
11417         stack pointer in functions w/o saved registers, output LEAVE more often
11418         on TARGET_USE_LEAVE machines.
11419
11420 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
11421
11422         * config/arm/arm.c (arm_init_cumulative_args); New function:
11423         Initlaise the CUMULATIE_ARGS strcuture for a function
11424         defintion.
11425         (arm_function_arg): New function: Determine where to place a
11426         function's argument.  Also handles deciding the function's
11427         call cookie.
11428         (current_file_function_operand): New function: Return true if
11429         the symbol is a function which has already been compiled.
11430         (arm_is_long_call_p): New function: Return true if the
11431         indicated function should be called via a long call.
11432         (arm_valid_type_attribute_p): New function: Return true if the
11433         attribute is a valid, arm specific, attribute.
11434         (arm_comp_type_attribute): New function: Return true if the
11435         two types have compatable, arm specific, attributes.
11436
11437         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
11438         structure.
11439         (FUNCTION_ARG): Redefine to call arm_function_arg.
11440         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
11441         structure field.
11442         (INIT_CUMULATIVE_ARGS): Redefine to call
11443         arm_init_cumulative_args.
11444         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
11445         field.
11446         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
11447         field.
11448         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
11449         functions.
11450         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
11451         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
11452         (COMP_TYPE_ATTRIBUTES): Define.
11453
11454         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
11455         if a long call is needed.
11456         (call_value): Call arm_is_long_call_p to decide if a long call
11457         is needed.
11458         (call_symbol): Call arm_is_long_call_p to decide if a long call
11459         is needed.
11460
11461         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
11462
11463 2000-02-11  Denis Chertykov  <denisc@overta.ru>
11464
11465         * README.AVR: New file with information about the avr ports.
11466         * config/avr: New directory with avr port files.
11467
11468 2000-02-11  Andreas Jaeger  <aj@suse.de>
11469
11470         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
11471
11472 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
11473
11474         * cpphash.c: Fix formatting, update commentary.
11475         (dump_definition): Take three separate arguments instead of a
11476         MACRODEF structure argument.
11477         * cpphash.h: Update prototype of dump_definition.
11478         * cppinit.c (cpp_finish): Update call of dump_definition.
11479
11480         * cpplib.c (do_define): Always create new hash entry with
11481         T_MACRO type.  Remove redundant check for redefinition of
11482         poisoned identifier.  Update call of dump_definition.
11483         (do_undef): Don't call check_macro_name.  Rename sym_length to
11484         len.
11485         (do_error, do_warning): Don't use copy_rest_of_line or
11486         SKIP_WHITE_SPACE.
11487         (do_warning): Don't use pedwarn for the actual warning,
11488         only the notice about its not being in the standard.  (Fixes
11489         bug with #warning in system headers.)
11490         (do_ident): Stricter argument checking - accept only a single
11491         string after #ident.  Also, macro-expand the line.
11492         (do_xifdef): Use cpp_defined.  De-obfuscate.
11493
11494         (do_pragma): Split out specific pragma handling to separate
11495         functions.  Use get_directive_token.  Update commentary.  Do
11496         not pass on #pragma once or #pragma poison to the front end.
11497         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
11498         do_pragma_default): New.
11499
11500 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
11501
11502         * jump.c (jump_optimize_1): The first operand in a relational
11503         can be a CONST_INT.
11504         * optabs.c (emit_conditional_move): Handle relationals which
11505         have a known true/false result.
11506
11507 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11508
11509         * function.c (thread_prologue_and_epilogue_insns): Don't insert
11510         a RETURN insn into a block which already ends with a jump.
11511
11512 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11513
11514         * haifa-sched.c (BUF_LEN): Increase a lot.
11515
11516 2000-02-11  Nick Clifton  <nickc@cygnus.com>
11517
11518         * configure.in: Add tm_p_file specification for thumb targets.
11519         * configure: Regenerate.
11520
11521         * config/arm/thumb-protos.h: New file: Prototypes for exported
11522         functions defined in thumb.c.
11523
11524 2000-02-11  Robert Lipe  <robertl@sco.com>
11525
11526         * Makefile.in (bootstrap-lean): Remove additional files.
11527         (bootstrap2-lean): Likewise.
11528         (VOL_FILES): List of files for above.
11529
11530 2000-02-11  Nathan Sidwell  <nathan@acm.org>
11531
11532         * cpphash.c (special_symbol): Remove spurious argument to
11533         cpp_lookup.
11534
11535 2000-02-11  Joel Sherrill (joel@OARcorp.com>
11536
11537         * configure.in: (i*86-*-rtems*): Swapped elf and coff
11538         stanzas.
11539         * configure: Rebuilt.
11540
11541 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
11542
11543         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
11544
11545 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
11546
11547         * pa.c, pa.h: Remove trigraph sequences within comments.
11548
11549 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
11550
11551         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
11552
11553 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
11554
11555         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
11556
11557 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11558
11559         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
11560
11561 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11562
11563         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
11564         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
11565         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11566         (ASM_FILE_END): Use c4x_file_end.
11567         * config/c4x/c4x.c (c4x_global_label): New function.
11568         (c4x_external_ref, c4x_file_end): Likewise.
11569
11570         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
11571         (c4x_external_ref, c4x_end_file): Likewise.
11572
11573 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
11574
11575         * cppexp.c: Don't include cpphash.h.
11576         (parse_charconst, cpp_lex): Use cpp_defined.
11577         (cpp_lex): Use get_directive_token throughout.  Remove
11578         unnecessary cases from switch.  Move assertion-handling code
11579         down to OTHER case.
11580         (cpp_parse_expr): If we see '+' or '-', check the context to
11581         determine if they are unary or binary operators.  Streamline
11582         the jumps a bit.  Do not call skip_rest_of_line.
11583
11584         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
11585         static.  Export get_directive_token.  Update commentary.
11586         (cpp_defined): New function.
11587         (do_define): Remove reference to T_PCSTRING.  Call
11588         free_definition to release memory for old definition, when
11589         redefining a macro.
11590         (eval_if_expression): Set only_seen_white to 0 before calling
11591         cpp_parse_expr.  Call skip_rest_of_line after it returns.
11592         (cpp_read_check_assertion): Don't preserve a pointer into the
11593         token buffer across a call to cpp_get_token.
11594
11595         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
11596         * cppfiles.c (redundant_include_p): Use cpp_defined.
11597         * cpphash.c (free_definition): New function.
11598         (delete_macro): Use it.  Update commentary.
11599         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
11600         free_definition.
11601         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
11602         from enum node_type.  Prototype cpp_defined and get_directive_token.
11603         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
11604
11605         * fix-header.c (check_macro_names): Use cpp_defined.
11606         (read_scan_file): Set inhibit_warnings and inhibit_errors in
11607         the options structure.
11608
11609 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11610
11611         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
11612
11613 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
11614
11615         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
11616         rather than die->die_tag.
11617
11618 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11619
11620         * combine.c (make_extraction, force_to_mode): Avoid warning on
11621         mixed-signedness conditionals.
11622         (make_field_assignment, nonzero_bits): Likewise.
11623         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
11624         (store_split_bit_field, extract_split_bit_field): Likewise.
11625         (extract_fixed_bit_field, store_bit_field,
11626         * expr.c: Change alignment to be unsigned everywhere.
11627         (move_by_pieces, store_constructor_field, store_constructor):
11628         Alignment parm is unsigned.
11629         (emit_block_move, emit_group_load, emit_group_store): Likewise.
11630         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11631         (do_compare_rtx_and_jump): Likewise.
11632         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
11633         Compare align with GET_MODE_ALIGNMENT.
11634         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
11635         (get_inner_reference): Likewise.
11636         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
11637         (expand_assignment): Local vars for alignment now unsigned.
11638         (store_constructor, store_field, expand_expr, do_jump): Likewise.
11639         (do_compare_and_jump): Likewise.
11640         (store_field): Call new function expr_align.
11641         * expr.h (emit_block_move, emit_group_load, emit_group_store):
11642         Alignment arg now unsigned.
11643         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11644         (do_compare_rtx_and_jump, store_bit_field): Likewise.
11645         (extract_bit_field): Likewise.
11646         * fold-const.c (add_double): Add cast to eliminate signedness warning.
11647         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
11648         (get_best_mode): Alignment arg is unsigned.
11649         * rtl.h (move_by_pieces): Likewise.
11650         * store-layout.c (maximum_field_alignment, set_alignment):
11651         Now unsigned.
11652         (layout_decl): Alignment arg is now unsigned.
11653         Remove unneeded casts.
11654         (layout_record, layout_union, layout_type): Remove unneeded casts.
11655         Local alignment variables now unsigned.
11656         (get_best_mode): Alignment arg now unsigned.
11657         * tree.c (expr_align): New function.
11658         * tree.h (expr_align): Likewise.
11659         (maximum_field_alignment, set_alignment): Now unsigned.
11660         (get_inner_reference): Alignment argument is now pointer to unsigned.
11661         * varasm.c (assemble_variable): Add cast to eliminate warning.
11662
11663 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
11664
11665         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
11666         then store directly into op0.
11667
11668         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
11669         the CALL_INSN, and emit the note immediately after it.
11670
11671 2000-02-10  Nick Clifton  <nickc@cygnus.com>
11672
11673         * config/arm/thumb.md (epilogue): Include a (return) in the
11674         generated insn, and emit it using emit_jump_insn not
11675         emit_insn.
11676
11677 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
11678
11679         * function.c (assign_temp): Change zero-sized arrays to size 1.
11680         * integrate.c (expand_inline_function): Do not update
11681         stack_alignment_needed
11682         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
11683         add some sanity checking, remove optimization for function with
11684         zero frame size.
11685
11686 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11687
11688         * flow.c (mark_regs_live_at_end): Delete unused variables.
11689
11690         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
11691
11692         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
11693         in macro FRAME_GROWS_DOWNWARD.
11694
11695         * stmt.c (expand_end_bindings): Delete unused variable.
11696
11697         * unroll.c (iteration_info): Mark parameter `loop' with
11698         ATTRIBUTE_UNUSED.
11699
11700 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11701
11702         * fixinc/server.c (load_data): Return NULL if the marker line is
11703         not found.
11704         (run_shell): If load_data returns NULL, retry the command once, in
11705         a new shell.
11706
11707         * configure: Rebuilt.
11708
11709 2000-02-09  Bruce Korb  <bkorb@gnu.org>
11710
11711         * gcc/fixincludes:  ** DELETED **
11712         * gcc/fixcpp:  ** DELETED **
11713         * gcc/fixinc-nt.sed:  ** DELETED **
11714         * gcc/just-fixinc:  ** DELETED **
11715         * gcc/Makefile.in:  Removed out-dated commentary
11716         * gcc/configure.in: Removed fast-fixincludes disablement.
11717         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
11718
11719 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11720         * function.c (thread_prologue_and_epilogue_insns): Uncomment
11721         last change.
11722
11723 2000-02-09  Richard Henderson  <rth@cygnus.com>
11724
11725         * jump.c (delete_insn): Don't delete user labels at -O0.
11726
11727 2000-02-09  Robert Lipe  <robertl@sco.com>
11728
11729         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
11730         Don't link with HOST_LIBS.
11731
11732 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11733
11734         * configure.in: Correct --help text for --with-dwarf2.
11735         Put tm-dwarf2.h after other tm files, if it's requested.
11736         * configure: Regenerate.
11737         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
11738         defining it.
11739
11740 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11741
11742         * cpplib.h: Provide HASHNODE typedef and forward decl of
11743         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
11744         DEFINITION, struct hashnode, struct macrodef, struct
11745         definition, scan_decls prototype, default defn of
11746         INCLUDE_LEN_FUDGE moved elsewhere.
11747
11748         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
11749         definition, and struct hashnode moved here. Remove the unused
11750         'predefined' field from struct definition.  Replace the 'args'
11751         union with its sole member.  All users updated (cpphash.c).
11752         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
11753         multiple include guard.
11754
11755         * cpphash.c (hashf): Make static; use better algorithm; drop
11756         HASHSIZE parameter; return an unsigned int.
11757         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
11758         used. Calculate HASHSIZE modulus here.
11759         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
11760         here.
11761         (create_definition): Drop PREDEFINITION parameter.
11762         * cpplib.c (do_define): Don't calculate a hash value here.
11763         Don't pass (keyword == NULL) to create_definition.
11764
11765         * scan.h: Prototype scan_decls here.
11766         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
11767         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
11768         callers of cpp_lookup and cpp_install updated.
11769
11770         * cpphash.c (macarg): Hoist all the flag diddling out of the
11771         function...
11772         (macroexpand): ... and out of the loop that calls macarg.
11773         Skip over the initial paren before macro arguments with
11774         cpp_get_non_space_token; point may be some distance before
11775         that paren.  Abort if it's not there.
11776
11777         * cpplib.c (parse_clear_mark): Delete function.
11778         (parse_set_mark, parse_goto_mark): Make static.
11779         (ACTIVE_MARK_P): New macro.
11780         (skip_block_comment, skip_line_comment): Do not bump the line
11781         if ACTIVE_MARK_P is true.
11782         (cpp_pop_buffer): The buffer to be popped may not have an
11783         active mark.
11784         (cpp_get_token): When looking for the initial paren before
11785         macro arguments, only set a mark in a file buffer, Always
11786         return to that mark before proceeding to call macroexpand or
11787         return a NAME token.
11788
11789         * cpplib.h: Remove prototypes of parse_set_mark,
11790         parse_clear_mark, parse_goto_mark.
11791         (struct cpp_options): Rename 'put_out_comments' to
11792         'discard_comments' and invert its sense.
11793         * cppinit.c, cpphash.c, cpplib.c: All users of
11794         put_out_comments changed to use discard_comments, with
11795         opposite sense.
11796
11797 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11798
11799         * function.c (thread_prologue_and_epilogue_insns): Don't delete
11800         the edge from a block that both jumps and falls through to the
11801         fallthru block.
11802
11803 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
11804
11805         * config/arm/arm.md (movsi): In PIC mode, make sure that a
11806         constant source address is legitimate.
11807
11808 2000-02-09  Philip Blundell  <pb@futuretv.com>
11809
11810         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
11811         correctly.
11812
11813         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
11814         generating PIC.
11815         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
11816
11817 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11818
11819         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
11820         ends with a newline and a NUL.  Don't be so clever manipulating
11821         strings.
11822
11823 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
11824
11825         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
11826         not to BIGGEST_ALIGNMENT.
11827
11828 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
11829
11830         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
11831         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
11832         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
11833         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
11834         * frame.c (execute_cfa_insn): Handle
11835         DW_CFA_GNU_negative_offset_extended.
11836
11837 2000-02-08  Richard Henderson  <rth@cygnus.com>
11838
11839         * flow.c (tidy_fallthru_edges): Split out from ...
11840         (delete_unreachable_blocks): ... here.
11841         (find_basic_blocks): Use it.
11842
11843 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11844
11845         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
11846
11847 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
11848
11849         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
11850         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
11851         (fix-header.o): Don't depend on cpphash.h.
11852
11853         * scan.c (hashstr): New function.
11854         * scan.h: Prototype it.
11855         * fix-header.c: Don't include cpphash.h.  Use hashstr.
11856         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
11857         hashstr.  Report hash table statistics.  Add private
11858         definition of xrealloc.
11859
11860 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11861
11862         * i386.h (TARGET_SWITCHES): Fix typo in option name.
11863
11864 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
11865
11866         * function.c (thread_prologue_and_epilogue_insns): Don't replace
11867         jumps with returns unless they are jumps to the fallthru block.
11868
11869 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
11870
11871         * i386.md (addqi3_cc): Fix contraints.
11872
11873 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11874
11875         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
11876
11877 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
11878
11879         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
11880         carriage return after a macro name.
11881
11882 2000-02-07  Fred Fish  <fnf@be.com>
11883
11884         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
11885         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
11886
11887 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
11888
11889         * cppfiles.c (deps_output): Count spacers in deps_column.
11890
11891 2000-02-07  Neil Booth  <NeilB@earthling.net>
11892
11893         * cppinit.c (initialize_dependency_output): If there is no
11894         suffix, don't try to look for known suffixes.  Use strrchr.
11895         (cpp_start_read): Remove duplicate initialization.
11896
11897 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
11898
11899         * calls.c (compute_argument_block_size): New argument
11900         preferred_stack_boundary.
11901         (expand_call): update cfun->preferred_stack_boundary, update call of
11902         compute_argument_block_size
11903         (emit_library_call): Increate cfun->preferred_stack_boundary
11904         to PREFERRED_STACK_BOUNDARY
11905         (emit_library_call_value): Likewise.
11906         * explow.c (allocate_dynamic_stack_spave): Likewise.
11907         * function.c (prepare_function_start): Set
11908         cfun->preferred_stack_boundary
11909         * function.h (struct function): Add preferred_stack_boundary field.
11910         * integrate.c (expand_inline_function): Update
11911         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
11912         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
11913         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
11914
11915 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
11916
11917         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
11918         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
11919         cpp_pedwarn, cpp_pedwarn_with_line,
11920         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
11921         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
11922         v_cpp_error_with_line, v_cpp_warning_with_line,
11923         cpp_message_from_errno, cpp_perror_with_name): Delete.
11924
11925         * cpperror.c (cpp_print_containing_files): Take starting
11926         buffer as argument.
11927         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
11928         (v_cpp_message): Now called directly by all entry points.
11929         Remove -1 case.
11930         (cpp_pfatal_with_name, cpp_message): Delete.
11931         (cpp_notice_from_errno, cpp_ice): New functions.
11932         (cpp_notice): Is now for reporting error conditions, just
11933         without an associated file.
11934         (cpp_error, cpp_error_with_line): Don't do anything if
11935         opts->inhibit_errors is on.
11936         (cpp_pedwarn_with_file_and_line): Take column argument also.
11937
11938         * cpplib.h: Update prototypes of exported functions.
11939         (struct cpp_options): Add inhibit_errors.
11940
11941         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
11942         non-error messages.  Include intl.h.
11943
11944         * cppinit.c, cppmain.c: Likewise.  Also, use
11945         cpp_notice_from_errno instead of cpp_perror_with_name or
11946         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
11947
11948         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
11949         report internal errors.
11950
11951         * cpplib.c (do_define): Switch bcopy to memcpy.
11952         Give cpp_pedwarn_with_file_and_line a dummy column argument.
11953
11954         * cpplib.c (copy_rest_of_line): Revert previous change: don't
11955         bail out early if we hit a line comment.
11956
11957 2000-02-06  Richard Henderson  <rth@cygnus.com>
11958
11959         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
11960         * basic-block.h: Declare them.
11961         * emit-rtl.h (active_insn_p): New.
11962         (next_active_insn, prev_active_insn): Use it.
11963         * rtl.h: Declare it.
11964         * function.c (emit_return_into_block): New.
11965         (thread_prologue_and_epilogue_insns): Insert return insns instead
11966         of epilogues when possible.
11967         * jump.c (jump_optimize_1): Remove code to insert a return insn
11968         on the fallthru to the exit block.
11969
11970         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
11971         and for non-empty stack frames.
11972         * i386.md (return): Expand to return-pop as needed.
11973
11974 2000-02-06  Richard Henderson  <rth@cygnus.com>
11975
11976         * simplify-rtx.c (simplify_relational_operation): Canonicalize
11977         constant to op1 for testing.
11978
11979 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11980
11981         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
11982         (fixuns_truncqfqi2): Use it.
11983
11984 2000-02-06  Richard Henderson  <rth@cygnus.com>
11985
11986         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
11987         as a TYPE_LEA insn.
11988
11989         * i386.md (widening and peepholes): Mask the constant instead of
11990         using gen_lowpart.
11991
11992 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
11993
11994         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
11995         input pointer before possibly branching off to the backslash
11996         code.
11997         * cpphash.c (macroexpand): Correctly delete \r escapes when
11998         stringifying parameters.
11999         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
12000         if we can; bail out early if we hit a line comment.
12001         (handle_directive): Treat '# 123' in an .S file just like
12002         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
12003         Return 1 for '# not_a_directive'.
12004         (get_directive_token): Pop macro buffers here, so that
12005         cpp_get_token can't sneakily move past a newline.
12006         Add sanity checks.
12007         (cpp_get_token): goto randomchar if handle_directive returns 0.
12008
12009         * cppalloc.c: Update copyright.
12010         * cpplib.c: Merge all the static function prototypes into one
12011         block.
12012         * cpplib.h: Remove #if 0 block.
12013
12014         * cpperror.c: Remove #ifdef EMACS block.
12015         * cppmain.c: Likewise.
12016         * cpphash.c: Remove #if 0 blocks.
12017         * cppinit.c: Remove #if 0 blocks, and the -lint option.
12018         * cpplib.c: Remove #if 0 blocks and code referencing
12019         pcp_inside_if or for_lint.  Remove duplicate error message.
12020         Fix error messages for #else after #else or #elif.  Reformat.
12021         Remove archaic TODO list.
12022         * cpplib.h: Remove pcp_inside_if and for_lint flags.
12023
12024 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
12025
12026         * i386/osf1elf.h: Add missing backslash to multiline string.
12027
12028 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12029
12030         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
12031
12032 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12033
12034         * Makefile.in (c-common.o): Depend on $(EXPR_H).
12035
12036         * c-common.c: Include expr.h.
12037
12038         * c-pragma.c (mark_align_stack): Add prototype.
12039
12040         * caller-save.c (add_stored_regs): Likewise.
12041
12042         * combine.c (record_promoted_value): Likewise.
12043
12044         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
12045         Likewise.
12046
12047         * cppinit.c (new_pending_define): Likewise.
12048
12049         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
12050
12051         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
12052         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
12053         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
12054         class_scope_p): Likewise.
12055
12056         * dwarf2out.h (dwarf2out_set_demangle_name_func,
12057         dwarf2out_add_library_unit_info): Likewise.
12058
12059         * ggc.h (ggc_page_print_statistics): Likewise.
12060
12061         * haifa-sched.c (propagate_deps): Likewise.
12062
12063         * reg-stack.c (next_flags_user, record_label_references): Likewise.
12064
12065         * rtl.h (set_stack_check_libfunc): Likewise.
12066
12067         * toplev.h (set_fatal_function): Likewise.
12068
12069         * toplev.c (set_fatal_function): Delete prototype.
12070
12071         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
12072
12073 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
12074
12075         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
12076         (FUNC_END): Likewise.
12077
12078 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12079
12080         * caller-save.c: Include tm_p.h.
12081
12082 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12083
12084         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
12085
12086 2000-02-04  Neil Booth  <NeilB@earthling.net>
12087
12088         * cccp.c (main): Check 'dir' for a NULL pointer before passing
12089         it to strcmp.
12090
12091 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
12092
12093         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
12094         * genflags.c: Use the max_operand_1 logic from genemit.c to
12095         calculate how many arguments gen_insn prototypes have.  Remove
12096         NO_MD_PROTOTYPES ifdefs from the generated file.
12097         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
12098         file.  Cast gen_insn initializers to insn_gen_fn.
12099         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
12100         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
12101
12102 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12103
12104         * fixinc/Makefile.in (HDR): Add machname.h.
12105         (clean): Likewise.
12106
12107 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12108
12109         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
12110         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
12111         (c4x_cpu_version): Ditto.
12112         * config/c4x/c4x-protos.h: ... here.
12113
12114 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
12115
12116         * dwarf2out.c (add_abstract_origin_attribute): Don't call
12117         gen_abstract_function on our context if we're a nested function.
12118
12119 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12120
12121         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
12122         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
12123
12124 2000-02-04  Bruce Korb  <bkorb@gnu.org>
12125
12126         * fixinc/genfixes(machname.h):
12127         Move the functionality from gen-machine.h into this file.
12128         UNdef MN_NAME_PAT if there are no names to change.
12129         Also, be a little kinder when AutoGen is not present.
12130
12131         * fixinc/Makefile.in(machname.h):
12132         Change the generation rule to use genfixes.
12133
12134         * fixinc/fixfixes.c(machine_name):
12135         machine_name_fix's functionality now dependent upon whether
12136         MN_NAME_PAT is defined.
12137
12138         * fixinc/fixtests.c(machine_name):
12139         ditto.
12140
12141         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
12142         of MN_NAME_PAT.
12143
12144         * fixinc/fixlib.h(mn_get_regexps):
12145         ditto
12146
12147         * fixinc/gen-machine.h: DELETED
12148
12149 2000-02-04  Jan Hubicka  <jh@suse.cz>
12150             Richard Henderson  <rth@cygnus.com>
12151
12152         * i386.c (SAVE_REGS_FIRST): Remove.
12153         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
12154         (ix86_compute_frame_size): Likewise.
12155         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
12156         (ix86_emit_restore_regs): Remove.
12157         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
12158         when a frame pointer is in use.
12159         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
12160         instead of pop to restore a register when profitable; emit leave
12161         when profitable.
12162         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
12163         as a TYPE_LEA insn.
12164         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
12165         * i386.md (prologue_allocate_stack): Remove.
12166         (epilogue_deallocate_stack): Remove.
12167         (pro_epilogue_adjust_stack): New.
12168
12169 2000-02-04  Richard Henderson  <rth@cygnus.com>
12170
12171         * function.c (diddle_return_value): Rework to use a callback function.
12172         Use current_function_return_rtx if it's been set up.
12173         (do_clobber_return_reg, clobber_return_register): New.
12174         (do_use_return_reg, use_return_register): New.
12175         (expand_function_end): Use them.
12176         * stmt.c (expand_null_return): Likewise.
12177         * function.h: Declare them.
12178         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
12179         (mark_reg): Change arguments as appropriate for callback.
12180         * integrate.c (expand_inline_function): Revert 19 Jan change.
12181
12182 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12183
12184         * tm.texi (Values in Registers): Fix typo: "fo" "for".
12185         (Misc): Say the scheduler, not the Haifa scheduler.
12186
12187 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
12188
12189         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
12190         when in_mem is set.  Update all callers.
12191
12192 2000-02-04  Richard Henderson  <rth@cygnus.com>
12193
12194         * i386/openbsd.h (INT_ASM_OP): Define.
12195
12196 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12197
12198         * tm.texi: Fix various typos.
12199
12200 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
12201
12202         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
12203         (MD_STARTFILE_PREFIX_1): New macro.
12204
12205 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
12206
12207         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
12208         destination when needed.
12209         (strmovsi, strsetsi): New expander.
12210         (strmovsi_1, strsetsi_1): New pattern.
12211         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
12212         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
12213         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
12214         * invoke.texi (align-stringops, inline-all-stringops): Document.
12215
12216 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
12217
12218         * i386/netbsd.h (INT_ASM_OP): Define.
12219
12220 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
12221
12222         * cpplib.h (cpp_reader): Add new flag, no_directives.
12223         * cpphash.c (macarg): Set it.
12224         * cpplib.c (handle_directive): If no_directives is on and we
12225         find a directive, issue an error and discard the line.
12226
12227 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
12228
12229         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
12230         FP constants.  Add ! TARGET_FPU check for FP constants.
12231
12232 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
12233
12234         * flow.c (find_basic_blocks): Don't kill label_value_list
12235         here.
12236         (cleanup_cfg): Kill it here.
12237
12238 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12239
12240         * expr.c (store_field): Ensure ALIGN is no stricter than the
12241         alignment of EXP.
12242
12243 2000-02-02  Richard Henderson  <rth@cygnus.com>
12244
12245         * jump.c (delete_insn): Partially revert 19 Jan change;
12246         don't convert unused code labels to notes at -O0.
12247
12248 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12249
12250         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
12251         split_all_insns to recreate REG_LABEL notes for flow2 pass.
12252
12253 2000-02-01  Richard Henderson  <rth@cygnus.com>
12254
12255         * i386.c (general_no_elim_operand): New.
12256         (nonmemory_no_elim_operand): New.
12257         (ix86_expand_move): Copy eliminable operands before a push.
12258         * i386-protos.h: Declare new functions.
12259         * i386.h (CAN_ELIMINATE): Simplify.
12260         (PREDICATE_CODES): Update.
12261         * i386.md (push insns): Don't allow eliminable register operands.
12262
12263 2000-02-01  Richard Henderson  <rth@cygnus.com>
12264
12265         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
12266         replace BLKmode with DECL_RTL's mode.
12267
12268 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
12269
12270         * frame.c (find_fde): Convert for loop to do-while so compiler
12271         sees it's always executed at least once.
12272         * libgcc2.c (BBINBUFSIZE): Kill.
12273         (__bb_init_prg): Use fgets.
12274         (__bb_exit_trace_func): Don't paste strings.
12275         * unroll.c (unroll_loop): Initialize unroll_type, not
12276         unroll_number, and tweak logic to match.
12277
12278         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
12279         all failure paths.
12280         (ix86_flags_dependant): Likewise.  Disentangle control flow.
12281         (ix86_sched_reorder): Break guts out to
12282         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
12283         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
12284         any possible use.
12285
12286         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
12287         use string concatenation.  Don't save and restore esi.
12288
12289         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
12290         (machname.h): Remove script to separate file.  Use two-step
12291         sequence so target is not created if script fails.
12292         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
12293         identifiers are defined.
12294         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
12295         an empty string, machine_name doesn't need to do anything at
12296         all.
12297         (is_cxx_header): Add more cases to regexp.
12298         * fixinc/fixlib.h: Update prototype.
12299         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
12300         mn_get_regexps.
12301         * fixinc/fixincl.c: Define NO_BOGOSITY.
12302
12303         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
12304         (hp_sysfile): Add missing comma.
12305         (math_exception): Put the wrapper ifdefs at the beginning and
12306         the end of the file.
12307         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
12308
12309 2000-02-01  Richard Henderson  <rth@cygnus.com>
12310
12311         * sparc.c (fp_zero_operand): Turn into a normal predicate.
12312         Use CONST0_RTX.  Update all callers.
12313         * sparc.h, sparc-protos.h: Update accordingly.
12314         * sparc.md (fp mov insns): Use fp_zero_operand directly
12315         where applicable.
12316
12317 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12318
12319         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
12320         example.
12321
12322 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12323
12324         * Makefile.in (specs.ready): New target.
12325         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
12326
12327 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12328
12329         * fixinc.irix: Use unique filenames for writing into /tmp,
12330         * fixinc.ptx: Likewise.
12331         * fixinc.sco: Likewise.
12332         * fixinc.svr4: Likewise.
12333         * fixinc.winnt: Likewise.
12334
12335 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12336
12337         * tsystem.h: New file.
12338
12339         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
12340         s-crtS): Depend on tsystem.h.
12341
12342         * crtstuff.c: Include tsystem.h.
12343         * frame.c: Likewise.
12344         * libgcc2.c: Likewise.
12345
12346 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
12347
12348         * builtins.c (expand_builtin_memset): Expand for variable sized
12349         lengths too.
12350
12351 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
12352
12353         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
12354         on ABI.
12355
12356 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12357
12358         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
12359
12360         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
12361
12362 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
12363
12364         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
12365         case 3->2 combining (combining with splitting) in which 2 is CC0
12366         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
12367         checked at the begining of the function with the aid of calling
12368         function 'can_combine_p'.
12369
12370 2000-01-31  Dave Brolley  <brolley@redhat.com>
12371
12372         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
12373
12374 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
12375
12376         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
12377         new label.
12378
12379 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12380
12381         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
12382
12383         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
12384         PROTO -> PARAMS.
12385
12386 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12387
12388         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
12389         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
12390         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
12391         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
12392         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
12393         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
12394         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
12395         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
12396         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
12397         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
12398
12399         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
12400         Add %(cpp_cpu) to CPP_SPEC.
12401
12402         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
12403         Add %(cc1_cpu) to CC1_SPEC.
12404
12405 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12406
12407         * c-decl.c (c_decode_option): Accept optional numeric argument to
12408         -Wformat and set warn_format.
12409         * c-common.c: Don't emit warning about non-constant printf format
12410         string unless warn_format > 1.
12411
12412 2000-01-30  Richard Henderson  <rth@cygnus.com>
12413
12414         * alpha.md (return_internal): Allow after reload only.
12415
12416 2000-01-30  Richard Henderson  <rth@cygnus.com>
12417
12418         * i386.c (ix86_compute_frame_size): Omit padding1 if the
12419         local frame size is zero.
12420
12421 2000-01-30  Richard Henderson  <rth@cygnus.com>
12422
12423         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
12424         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
12425         * alpha.md (return): Turn into an expander.
12426         (return_internal): Don't use $26.
12427         (epilogue): Emit the return insn.
12428
12429 2000-01-30  Richard Henderson  <rth@cygnus.com>
12430
12431         * alpha.md (negtf2, abstf2): Fix word order thinko.
12432         (extendsftf2): New.
12433         (trunctfsf2): Avoid intermediate rounding errors.
12434
12435 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12436
12437         * cppfiles.c (find_position): Drop 'colp' argument, return the
12438         new line base.
12439         (read_and_prescan): Adjust to match.  Don't ever manipulate
12440         line or line_base except via find_position.
12441
12442 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12443
12444         * c-parse.in: Apply Ulrich's changes from c-parse.y.
12445         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
12446         Regenerate.
12447
12448 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12449
12450         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
12451         just print "<command line>".  If 'filename' is null or an
12452         empty string, print "<stdin>" for the filename.
12453         * cpplib.c (do_define): Don't print the 'location of the
12454         previous definition' message if we're still parsing the
12455         command line.
12456         (cpp_pedwarn_with_file_and_line): Always call
12457         cpp_file_line_for_message.
12458
12459 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
12460
12461         * flow.c (mark_regs_live_at_end): Fix typo.
12462
12463 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12464
12465         * c-common.c: Adjust variable names, comments, help strings to c99.
12466         * c-lex.c: Likewise.
12467         * c-parse.y: Likewise.
12468         * c-tree.h: Likewise.
12469         * cccp.c: Likewise.
12470         * cpplib.h: Likewise.
12471         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
12472         * cppinit.c: Likewise.
12473
12474 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12475
12476         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
12477         * c4x.c: Define the optab rtx values.
12478         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
12479         (c4x_emit_libcall): Use new optab rtx values.
12480         (c4x_emit_libcall3): Likewise.
12481         (c4x_emit_libcall_mulhi): Likewise.
12482         * c4x-protos.h: Add prototypes for optab rtx values and change
12483         prototypes for above c4x_emit_libcall functions.
12484
12485 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12486
12487         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
12488         syntax is used.
12489         (c4x_function_prologue): Use regnames intead of float_reg_names when
12490         TI syntax is used.
12491         (c4x_function_epilogue): Likewise.
12492         (c4x_print_operand): Likewise.
12493         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
12494         * c4x.md (set_high): Disable for TARGET_TI.
12495
12496 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12497
12498         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
12499         of framepointer + constant to ADDR_REGS class.
12500         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
12501         * c4x.c (std_or_reg_operand): New function.
12502         * c4x-protos.h (std_or_reg_operand): Prototype it.
12503
12504 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12505
12506         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
12507                 object names as libgcc2.c.
12508         * libgcc.S: Use newly defined names.
12509
12510 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
12511         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
12512         function.
12513         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
12514         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
12515         (FLOW_LOOP_LAST_BLOCK): Likewise.
12516
12517 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12518
12519         * basic-block.h (struct loop): New fields 'first' and 'last'.
12520         * flow.c (flow_loops_find): Compute loop->first and loop->last.
12521         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
12522         and loop->last to check for NOTE_INSN_LOOP_END.
12523
12524 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
12525
12526         * predict.c (estimate_probability): Use the new FIRST and LAST fields
12527         of the loop descriptor rather than HEADER and LATCH. Also added
12528         missing break statements as well making some coding style modifications
12529         as suggested by Michael Hayes.
12530
12531 2000-01-28  Richard Henderson  <rth@cygnus.com>
12532
12533         * flow.c (find_basic_blocks): Remove do_cleanup argument.
12534         Break out that code ...
12535         (cleanup_cfg): ... here.
12536         (commit_one_edge_insertion): Detect a return instruction being
12537         emitted to an edge.  Emit a barrier following; clear fallthru.
12538         (commit_edge_insertions): Verify CFG consistency.
12539         * function.c (expand_function_start): Kill unused variable.
12540         (expand_function_end): Likewise.
12541         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
12542         to insert the epilogue.
12543
12544         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
12545         (delete_null_pointer_checks): Likewise.
12546         * output.h: Likewise.
12547         * reg-stack.c (reg_to_stack): Likewise.
12548         * toplev.c (rest_of_compilation): Likewise.  Run
12549         thread_prologue_and_epilogue_insns after rebuilding the CFG.
12550
12551 2000-01-28  Richard Henderson  <rth@cygnus.com>
12552
12553         * Makefile.in (flow.o): Revert 24 Jan change.
12554         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
12555         FUNCTION_VALUE result to DECL_RESULT's mode.
12556
12557         * haifa-sched.c (schedule_insns): Don't recompute reg info
12558         after reload.
12559
12560 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
12561
12562         * configure.in: Make --enable-cpplib the default.
12563         * configure: Regenerate.
12564         * gcc.dg/990119-1.c: No longer expected to fail.
12565
12566 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
12567
12568         * jump.c (jump_optimize_1): Delete an optimization that is also done
12569         by merge_blocks in flow.
12570
12571 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12572
12573         * diagnostic.c (build_message_string, output_printf,
12574         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
12575         (build_location_prefix): Fix non-literal format string.
12576
12577 2000-01-27  Richard Henderson  <rth@cygnus.com>
12578
12579         * alpha.md (trunctfsf2): New.
12580
12581 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
12582
12583         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
12584
12585 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12586
12587         * cppinit.c (cpp_handle_option): Recognize C++ comments under
12588         -std=gnu89.
12589         * cpplib.c (skip_block_comment, skip_line_comment): Split code
12590         out of...
12591         (skip_comment) ... here.  Permit C++ comments in system
12592         headers always.  Warn about C++ comments in user code under
12593         -std=gnu89 -pedantic.
12594         (copy_comment): Use skip_comment.
12595         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
12596         return EOF.
12597         (consider_directive_while_skipping, do_else, do_endif): Call
12598         validate_else unconditionally.
12599         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
12600         text after the conditional in a system header.
12601         * cpplib.h (struct cpp_buffer): Add flag
12602         warned_cplusplus_comments.
12603
12604 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12605
12606         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
12607         Use unshare_all_rtl_1.
12608         (unshare_all_rtl_again): New function.
12609         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
12610
12611         * function.c (purge_addressof_1): Use unshare_all_rtl_again
12612         rather than resetting the 'used' flags ourself.
12613
12614         * toplev.c (rest_of_compilation): Add current_function_decl
12615         to the unshare_all_rtl call.
12616         * tree.h: Prototype unshare_all_rtl.
12617         * rtl.h: Prototype unshare_all_rtl_again here.
12618
12619 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12620
12621         * genoutput.c (output_prologue): Include ggc.h in generated
12622         files.
12623         * Makefile.in (insn-output.o): Depends on ggc.h.
12624
12625 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
12626             Hans-Peter Nilsson  <hp@bitrange.com>
12627
12628         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
12629         Remove redundant include of xm-ns32k.h.
12630         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
12631         Remove redundant include of xm-ns32k.h.
12632         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
12633         Remove redundant include of xm-ns32k.h.
12634         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
12635
12636         * ns32k/ns32k.h: Update comment on multiply-add instructions.
12637         (TARGET_SWITCHES): Add documentation strings.
12638         (DWARF_FRAME_REGNUM): Override default definition.
12639         (REG_CLASS_CONTENTS): Add comments.
12640         (SUBSET_P): Format to reduce line length.
12641         (SMALL_REGISTER_CLASSES): Make a run time option.
12642         (GO_IF_NONINDEXED_ADDRESS): Reformat.
12643         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
12644         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
12645         (regclass_map): fix typo in comment.
12646         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
12647         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
12648         (trace, reg_or_mem_operand): Delete, unused function.
12649         (calc_address_cost): Small offsets are cheaper than large ones.
12650         (expand_block_move): Generate more efficient code when bytes is a
12651         known at compile time.
12652         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
12653         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
12654         instead of reg_or_mem_operand.
12655
12656         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
12657         not general_operand.  Similarly use "=rm" or stricter, not "=g".
12658         For input operands, use stricter constraints than "g" if not
12659         general_operand.  Similarly use stricter predicate than
12660         "general_operand" when stricter constraints than "g" are present,
12661         except for matching constraints.
12662         (movstrsi): Use "memory_operand" for operands 0 and 1.
12663         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
12664         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
12665         not reg_or_mem_operand.
12666         (udivmoddisi4): Ditto.
12667         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
12668         Use nonimmediate_operand for operand 3, not register_operand.
12669         (udivmoddiqi4_internal): Use register_operand for operand 1, not
12670         reg_or_mem_operand.
12671
12672 2000-01-27  Fred Fish  <fnf@be.com>
12673
12674         * gthr-posix.h: Fix typo; compatibily -> compatibility.
12675         * gthr-single.h: Likewise.
12676         * gthr-solaris.h: Likewise.
12677         * gthr-vxworks.h: Likewise.
12678         * gthr-win32.h: Likewise.
12679         * gthr.h: Likewise.
12680
12681 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12682
12683         * cppinit.c: Add " (cpplib)" to end of string printed by
12684         -v / --version.
12685
12686 2000-01-27  Richard Henderson  <rth@cygnus.com>
12687
12688         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
12689         testing for a signed comparison.
12690         (alpha_emit_floatuns): New.
12691         * alpha-protos.h: Declare it.
12692         * alpha.md (floatunsdisf2, floatunsdidf2): New.
12693         (extendsfdf2): Tidy.
12694
12695 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
12696
12697         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
12698         no -g option specifying debugging format, default to -gstabs+.
12699
12700 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
12701
12702         * calls.c (special_function_p): New argument fork_or_exec.
12703         (expand_call): When profile_arc_flag is set and the function
12704         is in the fork_or_exec group, call __bb_fork_func first.
12705         * libgcc2.c, _bb module (__bb_fork_func): New function.
12706         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
12707         output file.
12708         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
12709         * tree.h (special_function_p): Update prototype.
12710
12711 2000-01-26  Richard Henderson  <rth@cygnus.com>
12712
12713         * alpha.c (alpha_split_tfmode_pair): New.
12714         * alpha-protos.h: Declare it.
12715         * alpha.md (abstf2, negtf2): New.
12716         (movtf insn): Add input G constraint.
12717         (movtf splitter): Use alpha_split_tfmode_pair.
12718
12719 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12720
12721         * i386/cygwin.h: PROTO -> PARAMS.
12722
12723 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
12724
12725         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
12726         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
12727         using _Qp_cmp/_Q_cmp and testing the return value.
12728         (print_operand): Call reverse_condition_maybe_unordered if
12729         we are handling CCFPmode or CCFPEmode.
12730         Handle ORDERED, UN* and LTGT comparisons.
12731         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
12732         if not TARGET_HARD_QUAD.
12733         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
12734         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
12735         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
12736         Adjust gen_b* calls so that they reflect return comparison of
12737         sparc_emit_float_lib_cmp.
12738
12739 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12740
12741         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
12742         incoming operands array is large enough for one more operand.
12743         (alpha_emit_xfloating_arith): Likewise.
12744
12745 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12746
12747         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
12748         file with one line and no trailing newline.
12749         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
12750         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
12751         checking if the match is on the line.
12752         * fixinc/gnu-regex.c: Provide regerror not __regerror.
12753
12754 2000-01-25  Richard Henderson  <rth@cygnus.com>
12755
12756         * sparc.c (output_cbranch): Fix accidental squashing of the
12757         fp branch pre-delay nop.
12758
12759 2000-01-25  Richard Henderson  <rth@cygnus.com>
12760
12761         * tree.def (UNNE_EXPR): Remove.
12762         * c-typeck.c (build_binary_op): Don't handle it.
12763         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
12764
12765         * rtl.def (UNNE): Remove.
12766         (LTGT): Add.
12767         * jump.c (reverse_condition): Update accordingly.
12768         (swap_condition): Likewise.
12769         (comparison_dominates_p): Handle unordered comparisons.
12770         (reverse_condition_maybe_unordered): New.
12771         * rtl.h (reverse_condition_maybe_unordered): Declare.
12772
12773         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
12774         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
12775         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
12776         * sparc.md (bltgt): New.
12777
12778 2000-01-25  Nick Clifton  <nickc@redhat.com>
12779
12780         * emit-rtl.c (emit_insn): Only check machine class insns for
12781         improper emission of a RETURN.
12782
12783 2000-01-25  Richard Henderson  <rth@cygnus.com>
12784
12785         * Makefile.in (flow.o): Depend on $(EXPR_H).
12786         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
12787         duplicate the structure of diddle_return_value for keeping regs live.
12788
12789 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12790
12791         * loop.c (current_loop_info): Delete.
12792         (consec_sets_invariant_p): Add loop argument, update callers.
12793         (get_condition_for_loop): Likewise.
12794         (count_nonfixed_reads, update_giv_derive): Likewise.
12795         (simplify_giv_expr, general_induction_var): Likewise.
12796         (consec_sets_giv, recombine_givs): Likewise.
12797         (move_movables): Delete loop_start and loop_end arguments,
12798         add loop argument, and update callers.
12799         (find_mem_givs, check_final_value): Likewise.
12800         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
12801         (loop_invariant_p): Rename from invariant_p, add loop argument, and
12802         update callers.
12803         (basic_induction_var): Add loop argument, delete loop_level argument,
12804         and update callers.
12805         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
12806         add loop argument, and update callers.
12807         (find_splittable_regs, find_splittable_givs): Likewise.
12808         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
12809         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
12810         (biv_total_increment): Delete loop_start and loop_end arguments;
12811         update callers.
12812         (precondition_loop_p): Delete loop_start and loop_info arguments;
12813         update callers.
12814         * loop.h (get_condition_for_loop): Add loop argument.
12815         (biv_total_increment): Delete loop_start and loop_end arguments.
12816         (precondition_loop_p): Delete loop_start and loop_info arguments;
12817         add loop argument.
12818         (final_biv_value): Delete loop_start and loop_end arguments;
12819         add loop argument.
12820         (final_giv_value, back_branch_in_range_p): Likewise.
12821
12822 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12823
12824         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
12825
12826 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12827
12828         * Makefile.in (c-gperf.h) : Change the "See" pointer to
12829         point to the new "generated_files" doc.
12830
12831 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12832
12833         * config/fp-bit.c (_unord_f2): Fix typo.
12834
12835 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12836
12837         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
12838         c-typeck.c, objc/objc-act.c: Remove all references to obstack
12839         functions obsoleted by GC, such as push_obstacks_nochange,
12840         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
12841         and code which existed only to decide whether or not to call
12842         them.  Remove now-unused NESTED argument from start_function;
12843         all callers changed.  Do not change behavior based on ggc_p.
12844         The use of the ixp_obstack in c-iterate.c and the util_obstack
12845         in objc/objc-act.c remain; these are not obsoleted by garbage
12846         collection.
12847         * c-tree.h: Update prototype for start_function.
12848
12849         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
12850
12851 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12852
12853         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
12854         mips16.
12855
12856 2000-01-25  Richard Henderson  <rth@cygnus.com>
12857
12858         * sparc-protos.h (select_cc_mode): Declare.
12859         * sparc.c (select_cc_mode): New.  Handle unordered compares.
12860         (output_cbranch): Always reverse via code change.  Handle
12861         unordered compares.  Factor tests and string updates.
12862         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
12863         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
12864         * sparc.md (bunordered, bordered): New.
12865         (bungt, bunlt, buneq, bunge, bunle): New.
12866
12867 2000-01-25  Richard Henderson  <rth@cygnus.com>
12868
12869         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
12870         * ggc-common.c (ggc_add_rtx_varray_root): New.
12871         (ggc_mark_rtx_varray): New.
12872         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
12873         functions down below ggc_mark_foo.
12874         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
12875
12876 2000-01-25  Richard Henderson  <rth@cygnus.com>
12877
12878         * alpha.c (secondary_reload_class): Don't allocate a secondary
12879         for integral mode memories into FLOAT_REGS.  Rearrange the more
12880         complicated memory expression inward.
12881
12882 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12883
12884         * inclhack.def: Fixes to play nicer with FreeBSD, and
12885         corrections to comments.
12886         (cxx_unready): Add select expression.
12887         (irix_sockaddr): Add bypass expression.
12888         (machine_ansi_h_va_list): New fix.
12889         (stdio_va_list): No need to edit _BSD_VA_LIST_.
12890         Split out addition of "#include <stdarg.h>" to...
12891         (stdio_stdarg_h): ... here.
12892         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
12893         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
12894         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
12895         size_t.
12896         (ultrix_ifdef): Tighten up select expression.
12897
12898         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
12899         re_ct and max_mach to avoid use of shell.  Make printed names
12900         match names in inclhack.def.  Use static copyright date.
12901         Don't count c_test and test expressions as requiring regex_t
12902         slots.  Add some commentary.
12903         * inclhack.tpl: Do not include the 'This script contains N
12904         fixup scripts' line if PROGRAM is defined.  Use static
12905         copyright date.
12906
12907 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
12908
12909         * dwarf2out.c: include "varray.h", not dyn-string.h.
12910         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
12911         (addr_const_to_string, addr_to_string): Lose.
12912         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
12913         (struct dw_val_struct): val_addr is now an rtx.
12914         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
12915         (used_rtx_varray): New varray.
12916         (dwarf2out_init): Initialize it.
12917         (save_rtx): New fn.
12918         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
12919         addr_to_string.
12920         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
12921         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
12922         * Makefile.in (dwarf2out.o): Update dependencies.
12923
12924 2000-01-24  Richard Henderson  <rth@cygnus.com>
12925
12926         * i386.c (i386_dwarf_output_addr_const): New.
12927         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
12928
12929         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
12930         if defined.
12931         * dwarfout.c (output_mem_loc_descriptor): Likewise.
12932         * i386.c (i386_simplify_dwarf_addr): New.
12933         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
12934
12935 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
12936
12937         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
12938         TYPE_STUB_DECL is NULL.
12939
12940 2000-01-24  Richard Henderson  <rth@cygnus.com>
12941
12942         * builtins.c (expand_tree_builtin): Move ...
12943         * c-common.c (expand_tree_builtin): ... here.
12944
12945 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12946
12947         * loop.h (LOOP_INFO): New accessor macro.
12948         * basic-block.h (struct loop): Rename field `info' to `aux'.
12949         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
12950         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
12951         * unroll.c (loop_iterations, unroll_loop): Likewise.
12952
12953 2000-01-24  Christopher Faylor <cgf@cygnus.com>
12954
12955         * config/i386/t-cygwin: Accomodate new winsup directory layout
12956         when searching for include files.
12957
12958 2000-01-24  Richard Henderson  <rth@cygnus.com>
12959
12960         * rtl.def: Add unordered fp comparisions.
12961         * tree.def: Likewise.
12962         * tree.h: Add ISO C 9x unordered fp comparision builtins.
12963
12964         * builtins.c (expand_tree_builtin): New function.
12965         * c-typeck.c (build_function_call): Use it.
12966         (build_binary_op): Support unordered compares.
12967         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
12968
12969         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
12970         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
12971         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
12972         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
12973         * jump.c (reverse_condition): Don't abort for UNLE etc, but
12974         return UNKNOWN.
12975         (swap_condition): Handle unordered compares.
12976         (thread_jumps): Check can_reverse before reversing.
12977         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
12978         reversed for FP.
12979
12980         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
12981         setcc is present before acking for cmp_optab.  Update all callers.
12982         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
12983         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
12984         * expr.c (expand_expr): Likewise.  Support unordered compares.
12985         (do_jump, do_store_flag): Likewise.
12986         * expr.h (enum libfunc_index): Add unordered compares.
12987
12988         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
12989         (DPBIT_FUNCS): Add _unord_df.
12990         * config/fp-bit.c (_unord_f2): New.
12991         * fp-test.c (main): Try unordered compare builtins.
12992
12993         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
12994         * alpha.c (alpha_comparison_operator): Check mode properly.
12995         (alpha_swapped_comparison_operator): Likewise.
12996         (signed_comparison_operator): Likewise.
12997         (alpha_fp_comparison_operator): New.
12998         (alpha_emit_conditional_branch): Handle unordered compares.
12999         * alpha.h (PREDICATE_CODES): Update.
13000         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
13001         (bunordered, bordered): New.
13002
13003 2000-01-24  Richard Henderson  <rth@cygnus.com>
13004
13005         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
13006         * alpha.md (movtf): New expander, insn, and splitter.
13007
13008 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
13009
13010         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
13011         dead registers.
13012
13013 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13014
13015         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
13016         (FIXED_REGISTERS, CALL_USED_REGISTERS,
13017          REG_ALLOC_ORDER): Add frame pointer
13018         (FRAME_POINTER_REGNUM): Set to 20
13019         (HARD_FRAME_POINTER_REGNUM): New macro.
13020         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
13021         to HARD_FRAME_POINTER.
13022         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
13023         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
13024         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13025         (HI_REGISTER_NAMES): Add "frame".
13026         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
13027         (debug_reg): Handle FRAME_POINTER_REGNUM.
13028         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
13029         GENERAL_REGS and INDEX_REGS.
13030         * i386.c (SAVED_REGS_FIRST): new macro.
13031         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
13032         (ix86_decompose_address, memory_address_length): Likewise.
13033         (regclass_map): Add frame pointer.
13034         (call_insn_operand): Handle frame_pointer_rtx.
13035         (reg_no_sp_operand): Likewise.
13036         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
13037         (print_operand, legitimize_pic_address): Fix formating.
13038         (ix86_compute_frame_size): Make static, update prototype, new
13039         parameters padding1, padding2, use ix86_nsaved_regs, use
13040         stack_alignment_needed.
13041         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
13042         to HARD_FRAME_POINTER_REGNUM conversions.
13043         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
13044         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
13045         (print_reg): Abort on FRAME_POINTER_REGNUM
13046
13047 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
13048
13049         * i386.h (PREDICATE_CODES): Add aligned_operand.
13050         * i386.c (aligned_operand): New function.
13051         (ix86_aligned_p): Kill.
13052         * i386.md (movhi_1): Emit mov for aligned operands.
13053         (promoting peep2s): Use aligned_operand.
13054
13055 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
13056
13057         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
13058         expression to allow underscores in macro names.
13059         (fix_char_macro_defines): Increment scanning pointer.
13060
13061 2000-01-23  Richard Henderson  <rth@cygnus.com>
13062
13063         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
13064         * alpha/osf5.h: New file.
13065         * configure.in (alpha-*-osf5): Add it to tm_file.
13066
13067         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
13068
13069         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
13070         (alpha_emit_xfloating_cvt, function_arg): Declare.
13071         * alpha.c (alpha_emit_conditional_branch): Call
13072         alpha_emit_xfloating_compare for TFmode compares.
13073         (alpha_lookup_xfloating_lib_func): New.
13074         (alpha_compute_xfloating_mode_arg): New.
13075         (alpha_emit_xfloating_libcall): New.
13076         (alpha_emit_xfloating_arith): New.
13077         (alpha_emit_xfloating_compare): New.
13078         (alpha_emit_xfloating_cvt): New.
13079         (print_operand): Add default abort case.
13080         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
13081         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
13082         (BIGGEST_ALIGNMENT): Increase to 128 bits.
13083         (RETURN_IN_MEMORY): True for TF/TCmode.
13084         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
13085         (FUNCTION_ARG): Move to function_arg.
13086         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
13087         (ASM_OUTPUT_LONG_DOUBLE): New.
13088         (ASM_OUTPUT_DOUBLE): Always output bits.
13089         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
13090         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
13091         (extenddftf2, trunctfdf2): New.
13092
13093 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13094
13095         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
13096         * config/sparc/sol2.h: ... here.
13097
13098 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13099
13100         * basic-block.h (struct loops): New field `levels'.
13101         * flow.c (flow_loops_level_compute): Traverse all outer loops.
13102         (flow_loop_level_compute): Initialise level to 1.
13103         (flow_loops_find): Set loops->levels.
13104         (flow_loops_dump): Print loops->levels.
13105
13106 2000-01-23  Richard Henderson  <rth@cygnus.com>
13107
13108         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
13109         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
13110
13111 2000-01-23  Richard Henderson  <rth@cygnus.com>
13112
13113         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
13114         * i386.h (DBX_REGISTER_NUMBER): Use them.
13115         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
13116         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
13117         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
13118         * i386/sequent.h: Kill incorrect comment.
13119
13120 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
13121
13122         * ggc-page.c (struct page_entry): Make `context_depth' an
13123         `unsigned short'.
13124         (struct globals): Likewise.
13125
13126 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
13127
13128         * loop.c (check_dbra_loop): When checking a loop for
13129         reversability, check the source of any stores to ensure
13130         they don't depend on an initial value.
13131
13132 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13133
13134         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
13135
13136 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
13137
13138         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
13139         'pz_scan' into scope of entire function.  Only affects
13140         compiles with -DDEBUG.
13141
13142 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
13143
13144         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
13145         section naming to that prior to 2000-01-07 patch.
13146         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
13147         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
13148         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
13149         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
13150         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
13151
13152 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
13153
13154         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
13155         constant.
13156
13157 2000-01-21  Jim Wilson  <wilson@cygnus.com>
13158
13159         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
13160         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
13161
13162 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
13163
13164         * cpphash.c (change_newlines): Delete function.
13165         (struct argdata): Delete 'newlines' and 'use_count' fields.
13166         (macroexpand): Remove code referencing those fields.
13167
13168 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13169
13170         * loop.c (loops_info): New variable.
13171         (loop_optimize): Allocate loops->array and free it on exit.
13172         Allocate memory for loops_info and assign to each loop,
13173         replacing alloca.
13174         (find_and_verify_loops): Do not allocate loops->array.
13175
13176 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
13177
13178         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
13179
13180 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
13181
13182         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
13183         pseudos if expanded after first flow.
13184         (movdi_pic_label_ref): Likewise.
13185
13186 2000-01-20  Richard Henderson  <rth@cygnus.com>
13187
13188         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
13189
13190 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
13191
13192         * Makefile.in (fixinc.sh): Depend on specs.
13193         * fixinc/Makefile.in: Add rule to create machname.h.
13194         (fixlib.o): Depend on machname.h.
13195         * fixinc/fixtests.c (machine_name): New test.
13196         * fixinc/fixfixes.c (machine_name): New fix.
13197         * fixinc/fixlib.c (mn_get_regexps): New helper function for
13198         the machine_name test and fix.
13199         * fixinc/fixlib.h: Prototype it.
13200         * fixinc/inclhack.def (machine_name): Use the C test and fix.
13201         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
13202
13203         * gcc.c (do_spec_1) [case P]: Take care not to create
13204         identifiers with three leading or trailing underscores.
13205
13206         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
13207         (fixincl): Don't specify libraries twice on link line.
13208         (gnu-regex.o): Remove special rule.
13209         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
13210         defined by config.h.  Do not define _REGEX_RE_COMP.
13211         (regcomp): Allocate and initialize a fastmap.
13212         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
13213
13214 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
13215
13216         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
13217
13218 2000-01-19  Richard Henderson  <rth@cygnus.com>
13219
13220         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
13221         arguments with BB.  Update all callers.  Tidy line wrapping.
13222
13223 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
13224
13225         * emit-rtl.c (try_split): Return last_insn if we split the
13226         last_insn.
13227
13228 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
13229
13230         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
13231         (ix86_initial_elimination_offset): Declare.
13232         * i386.c (ix86_nsaved_regs): Break out from ...
13233         (ix86_can_use_return_insn_p): ... here.
13234         (ix86_emit_save_regs): Break out from ...
13235         (ix86_expand_prologue): ... here.
13236         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
13237         out from ...
13238         (ix86_expand_epilogue): ... here.
13239         (ix86_compute_frame_size): Make static, add prototype.
13240         (ix86_initial_elimination_offset): Break out from ...
13241         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
13242
13243 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13244
13245         * recog.h (OUT_FCN): Delete.
13246
13247         * vax.md: Call `get_insn_template' instead of OUT_FCN.
13248
13249 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13250
13251         * cppalloc.c: PROTO -> PARAMS.
13252         * cpperror.c: Likewise.
13253         * cppfiles.c: Likewise.
13254         * cpplib.c: Likewise.
13255         * cpplib.h: Likewise.
13256
13257         * config/arm/arm-protos.h: PROTO -> PARAMS.
13258         * config/arm/arm.c: Likewise.
13259         * config/c4x/c4x.c: Likewise.
13260         * config/fr30/fr30-protos.h: Likewise.
13261         * config/nextstep.c: Likewise.
13262         * config/pa/pa.c: Likewise.
13263         * config/pj/pj.c: Likewise.
13264         * config/rs6000/rs6000.c: Likewise.
13265         * config/v850/v850-protos.h: Likewise.
13266         * config/v850/v850.c: Likewise.
13267
13268 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13269
13270         * i370-protos.h: New file.
13271
13272         * i370.c: Include tm_p.h.  Fix compile time warnings.
13273
13274         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
13275         warnings.
13276
13277         * i370.md: Likewise.
13278
13279 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13280
13281         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
13282         (target_isinf, target_isnan, eisnan): Mark parameter with
13283         ATTRIBUTE_UNUSED.
13284         (eiisinf): Wrap in INFINITY.
13285         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
13286         (ibmtoe): Remove unused variable `rndsav'.
13287
13288 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13289
13290         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
13291         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
13292
13293 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
13294
13295         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
13296         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
13297         (fix_char_macro_defines, fix_char_macro_uses): New functions.
13298
13299         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
13300         Recognize Emacs mode markers also.
13301         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
13302         C++ comments in C++ headers.  Call is_cxx_header only if
13303         necessary.
13304
13305         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
13306         bypass for ncurses.
13307         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
13308         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
13309         ... these, which use the new C fixes.
13310         (math_exception): Escape literal '+' in bypass expression.
13311
13312         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
13313         Regenerate.
13314
13315 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
13316
13317         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
13318         inside the MEM.
13319
13320 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13321
13322         * loop.c (loop_optimize): Allocate loop_info structure for each loop
13323         prior to calling scan_loop.
13324
13325 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13326
13327         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
13328         (split_branches, calc_live_regs): Likewise.
13329
13330 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13331
13332         * sh.md (fpu_single, fp_mode): New attributes.
13333
13334 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13335
13336         * loop.c (current_loop_info): Renamed from loop_info_data
13337         and changed to a pointer.
13338         (loop_optimize): Allocate loop_info structure for each loop
13339         and initialise to zero.
13340         (scan_loop): Set current_loop_info.
13341
13342         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
13343         on iteration_var.
13344
13345 2000-01-19  Richard Henderson  <rth@cygnus.com>
13346
13347         * stupid.c: Die die die.
13348         * Makefile.in (OBJS): Remove stupid.o.
13349         (stupid.o): Likewise.
13350
13351         * except.c (emit_eh_context): Don't emit USEs for stupid.
13352         * explow.c (probe_stack_range): Likewise.
13353         * flags.h (obey_regdecls): Remove.
13354         * flow.c (find_basic_blocks): Don't run try_merge_blocks
13355         when not optimizing.
13356         (life_analysis): Limit data collection when not optimizing.
13357         (mark_regs_live_at_end): Always mark the return value registers.
13358         (mark_used_regs): Remove dummy RETURN case.
13359         (print_rtl_with_bb): Don't consult obey_regdecls.
13360         * function.c (use_variable, use_variable_after): Remove.
13361         (assign_parms): Consult optimize not obey_regdecls.
13362         (expand_function_start): Don't emit USEs for stupid.
13363         (expand_function_end): Likewise.
13364         * global.c (build_insn_chain): Export.
13365         * integrate.c (expand_inline_function): Kill return-value USE
13366         handling code.
13367         * jump.c (jump_optimize_1): Do simple jump optimizations and
13368         dead code elimination.
13369         (calculate_can_reach_end): Remove check_deleted argument.
13370         (delete_insn): Patch out insns even when not optimizing.
13371         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
13372         * rtl.h (use_variable, use_variable_after): Remove declarations.
13373         (build_insn_chain): Declare.
13374         * stmt.c (expand_value_return): Don't emit USEs for stupid.
13375         (expand_end_bindings): Likewise.
13376         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
13377         * toplev.c (obey_regdecls): Remove.
13378         (rest_of_compilation): Don't set it.  Kill stupid in favour of
13379         flow1, local-alloc, and reload.
13380         (main): Don't set obey_regdecls.
13381
13382         * config/nextstep.c (handle_pragma): Likewise.
13383
13384         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
13385
13386         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
13387
13388 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13389
13390         * alpha-protos.h: PROTO -> PARAMS.
13391         * alpha.c: Likewise.
13392         * elf.h: Likewise.
13393         * h8300.c: Likewise.
13394         * i386-protos.h: Likewise.
13395         * i386.c: Likewise.
13396         * m32r-protos.h: Likewise.
13397         * m32r.c: Likewise.
13398         * mips.c: Likewise.
13399         * mips.md: Likewise.
13400         * gmon-sol2.c: Likewise.
13401         * sparc.c: Likewise.
13402
13403 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13404
13405         * ns32k-protos.h: New file.
13406
13407         * ns32k.c: Fix compile time warnings.
13408
13409         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
13410         warnings.
13411
13412         * ns32k.md: Likewise.
13413
13414 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13415
13416         * vax-protos.h: New file.
13417
13418         * vax.c: Fix compile time warnings.
13419
13420         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
13421         warnings.
13422
13423         * vax.md: Likewise.
13424
13425         * vaxv.md: Likewise.
13426
13427 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13428
13429         * romp-protos.h: New file.
13430
13431         * romp.c: Fix compile time warnings.
13432
13433         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
13434         warnings.
13435
13436         * romp.md: Likewise.
13437
13438 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13439
13440         * we32k-protos.h: New file.
13441
13442         * we32k.c: Fix compile time warnings.
13443
13444         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
13445         warnings.
13446
13447 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13448
13449         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
13450
13451         * except.c (eh_regs): Likewise.
13452
13453         * final.c (output_operand): Likewise.
13454
13455         * fold-const.c (target_isinf, target_isnan): Likewise.
13456
13457 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13458
13459         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
13460         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
13461
13462         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
13463         when optimize_size.
13464         (clrstrsi): Rewrite.
13465         (strsethi, strsetqi): New expanders.
13466         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
13467         (cmpstrsi): Emit compare insn before cmpstrsi_1
13468         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
13469         (strlensi_1): Likewise.
13470         (cmpstrsi_1): Likewise; do not output compare.
13471         (strlen expander): Do not unroll when optimizing for size.
13472         (*subsi3_carry): Rename to subsi3_carry
13473         (addqi3_cc): New pattern.
13474         * i386.h (processor_costs): Add move_ratio field.
13475         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
13476         * i386.c (*_cost): Set move_ratio.
13477         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
13478         (x86_expand_strlensi_1): Rewrite the main loop.
13479
13480 2000-01-17  Richard Henderson  <rth@cygnus.com>
13481
13482         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
13483         * cse.c (find_comparison_args, fold_rtx): Likewise.
13484         * integrate.c (subst_constants): Likewise.
13485         * loop.c (get_condition): Likewise.
13486
13487         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
13488
13489         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
13490
13491 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13492
13493         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
13494         (RESTORE_WARN_FLAGS): Unpack it.
13495         Change semantic type of extension to ttype.
13496         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
13497         * c-parse.y, c-parse.c, objc/objc-parse.y,
13498         objc/objc-parse.c: Regenerate.
13499
13500 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
13501
13502         * fixinc/fixlib.c: Add copyright notice.
13503         (compile_re): New function.
13504         * fixinc/fixlib.h: Prototype compile_re.
13505
13506         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
13507         Use compile_re to compile regular expressions.
13508
13509         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
13510         where the pattern matched.
13511
13512         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
13513         use 'replace'.
13514         (ultrix_ansi_compat): Likewise.
13515         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
13516         add egrep test.
13517         (interactv_add2, interactv_add3): Delete.
13518         (x11_sprintf): Don't use filename glob.
13519         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
13520         Regenerate.
13521
13522 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13523
13524         * print-rtl.c: PROTO -> PARAMS.
13525         * real.c: Likewise.
13526         * reg-stack.c: Likewise.
13527         * resource.c: Likewise.
13528         * sdbout.h: Likewise.
13529         * simplify-rtx.c: Likewise.
13530         * stor-layout.c: Likewise.
13531         * stupid.c: Likewise.
13532         * xcoffout.c: Likewise.
13533         * xcoffout.h: Likewise.
13534
13535 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13536
13537         * toplev.c: PROTO -> PARAMS.
13538         * toplev.h: Likewise.
13539         * tree.c: Likewise.
13540         * tree.h: Likewise.
13541         * unroll.c: Likewise.
13542         * varasm.c: Likewise.
13543         * varray.c: Likewise.
13544         * varray.h: Likewise.
13545
13546 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13547
13548         * reload.c: PROTO -> PARAMS.
13549         * reload.h: Likewise.
13550         * reload1.c: Likewise.
13551         * reorg.c: Likewise.
13552         * resource.h: Likewise.
13553         * rtl.c: Likewise.
13554         * rtl.h: Likewise.
13555         * rtlanal.c: Likewise.
13556         * sbitmap.h: Likewise.
13557         * sdbout.c: Likewise.
13558         * stack.h: Likewise.
13559         * stmt.c: Likewise.
13560         * system.h: Likewise.
13561
13562 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13563
13564         * machmode.h: PROTO -> PARAMS.
13565         * mbchar.h: Likewise.
13566         * mips-tdump.c: Likewise.
13567         * mips-tfile.c: Likewise.
13568         * optabs.c: Likewise.
13569         * output.h: Likewise.
13570         * prefix.c: Likewise.
13571         * profile.c: Likewise.
13572         * protoize.c: Likewise.
13573         * real.h: Likewise.
13574         * recog.c: Likewise.
13575         * recog.h: Likewise.
13576         * regclass.c: Likewise.
13577         * regmove.c: Likewise.
13578         * regs.h: Likewise.
13579
13580 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13581
13582         * ggc-common.c: PROTO -> PARAMS.
13583         * ggc-page.c: Likewise.
13584         * ggc-simple.c: Likewise.
13585         * ggc.h: Likewise.
13586         * global.c: Likewise.
13587         * graph.c: Likewise.
13588         * gthr-win32.h: Likewise.
13589         * haifa-sched.c: Likewise.
13590         * halfpic.h: Likewise.
13591         * integrate.c: Likewise.
13592         * integrate.h: Likewise.
13593         * jump.c: Likewise.
13594         * lcm.c: Likewise.
13595         * local-alloc.c: Likewise.
13596         * loop.c: Likewise.
13597         * loop.h: Likewise.
13598
13599 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13600
13601         * genattr.c: PROTO -> PARAMS.
13602         * genattrtab.c: Likewise.
13603         * gencheck.c: Likewise.
13604         * gencodes.c: Likewise.
13605         * genconfig.c: Likewise.
13606         * genemit.c: Likewise.
13607         * genextract.c: Likewise.
13608         * genflags.c: Likewise.
13609         * gengenrtl.c: Likewise.
13610         * genopinit.c: Likewise.
13611         * genoutput.c: Likewise.
13612         * genpeep.c: Likewise.
13613         * genrecog.c: Likewise.
13614
13615 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
13616
13617         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
13618
13619 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13620
13621         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
13622         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
13623         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
13624         * configure, config.in: Rebuilt.
13625
13626 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
13627
13628         * config/i386/i386.md: Add peephole to merge successive stack
13629         adjusts.
13630
13631 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
13632
13633         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
13634         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
13635         when walking backwards to find all the parameter loads when
13636         the basic block ends in a call.
13637
13638 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13639
13640         * loop.c (this_loop_info): Delete.
13641         (uid_loop): Add in place of uid_loop_num.  All uses updated.
13642         (loop_number_exit_count): Delete and replace with entry in loop
13643         structure.  All uses updated.
13644         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13645         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13646         (loop_outer_loop): Likewise.
13647         (loop_invalid, loop_number_exit_labels): Likewise.
13648         (loop_used_count_register): Delete and replace with entry in
13649         loop_info structure.
13650         (find_and_verify_loops): Add loops argument.
13651         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
13652         loop_end, etc. arguments with loop structure pointer.  All callers
13653         changed.
13654         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
13655         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
13656         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
13657         (insert_bct): Likewise.
13658         (basic_induction_var): New argument level.
13659         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
13660         vtop, and cont.  Add used_count_register.
13661         (uid_loop): Delete declaration.
13662         (loop_number_exit_count): Likewise.
13663         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13664         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13665         (loop_outer_loop, loop_used_count_register): Likewise.
13666         (loop_invalid, loop_number_exit_labels): Likewise.
13667         (unroll_loop): Replace loop_start and loop_end arguments
13668         with loop structure pointer.
13669         (loop_precondition_p, loop_iterations): Likewise.
13670         Include basic-block.h.
13671         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
13672         with loop structure pointer.
13673         (loop_precondition_p, loop_iterations): Likewise.
13674         * basic-block.h (struct loop): New entries vtop, cont,
13675         cont_dominator, start, end, top, scan_start, exit_labels,
13676         exit_count.
13677         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
13678
13679 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13680
13681         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
13682
13683 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
13684
13685         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
13686
13687 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13688
13689         * pdp11-protos.h: New file.
13690
13691         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
13692         time warnings.
13693
13694         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
13695         warnings.
13696
13697         * pdp11.md: Likewise.
13698
13699         * 2bsd.h: Likewise.
13700
13701 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13702
13703         * mn10300-protos.h: New file.
13704
13705         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13706         time warnings.
13707
13708         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
13709         warnings.
13710
13711         * mn10300.md: Likewise.
13712
13713 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13714
13715         * mn10200-protos.h: New file.
13716
13717         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
13718         time warnings.
13719
13720         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
13721         warnings.
13722
13723         * mn10200.md: Likewise.
13724
13725 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13726
13727         * h8300-protos.h: New file.
13728
13729         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13730         time warnings.
13731
13732         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
13733         warnings.
13734
13735         * h8300.md: Likewise.
13736
13737 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13738
13739         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
13740         (asm_emit_uninitialised): Likewise.
13741
13742 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
13743
13744         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
13745         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
13746
13747 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13748
13749         * config/mips/mips.c (override_options): Don't turn on extra
13750         alignment for mips16.
13751
13752 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13753
13754         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
13755         eabi, and make sure queued POSTINCREMENT rtl is emitted at
13756         the right point.
13757
13758 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13759
13760         * builtins.c (PAD_VARARGS_DOWN): Define.
13761         (std_expand_builtin_va_arg): Use the above macro.
13762         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
13763         * tm.texi (Register Arguments): Document the above macro.
13764
13765 2000-01-14  Nick Clifton  <nickc@cygnus.com>
13766
13767         * emit-rtl.c (emit_insn): If checking is enabled, make sure
13768         that this function has not been used to emit a jump
13769         instruction.
13770
13771         * jump.c (return_jump_1): Cope with being passed a null rtx.
13772
13773 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13774
13775         * eh-common.h: PROTO -> PARAMS.
13776         * emit-rtl.c: Likewise.
13777         * errors.c: Likewise.
13778         * errors.h: Likewise.
13779         * except.c: Likewise.
13780         * except.h: Likewise.
13781         * explow.c: Likewise.
13782         * expmed.c: Likewise.
13783         * expr.c: Likewise.
13784         * expr.h: Likewise.
13785         * final.c: Likewise.
13786         * fix-header.c: Likewise.
13787         * flow.c: Likewise.
13788         * fold-const.c: Likewise.
13789         * function.c: Likewise.
13790         * function.h: Likewise.
13791         * gcc.c: Likewise.
13792         * gcov-io.h: Likewise.
13793         * gcov.c: Likewise.
13794         * gcse.c: Likewise.
13795
13796 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13797
13798         * sh-protos.h: New file.
13799
13800         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
13801         Add static prototypes.  Fix compile time warnings.
13802
13803         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
13804         * sh.md: Likewise.
13805         * elf.h: Likewise.
13806
13807 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13808
13809         * arc-protos.h: New file.
13810
13811         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
13812         time warnings.
13813
13814         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
13815         warnings.
13816
13817         * arc.md: Likewise.
13818
13819 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13820
13821         * dsp16xx-protos.h: New file.
13822
13823         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
13824         time warnings.
13825
13826         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
13827         warnings.
13828
13829         * dsp16xx.md: Likewise.
13830
13831 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13832
13833         * convex-protos.h: New file.
13834
13835         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
13836         time warnings.
13837
13838         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
13839         warnings.
13840
13841 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13842
13843         * elxsi-protos.h: New file.
13844
13845         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
13846         time warnings.
13847
13848         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
13849         warnings.
13850
13851         * elxsi.md: Likewise.
13852
13853 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13854
13855         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
13856         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
13857         match the comment for MIPS16.
13858
13859 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
13860
13861         * flow.c (split_edge): Do not call set_block_for_insn if we
13862         do not have a basic_block_for_insn structure.
13863
13864         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
13865         and destination functions are 32bit aligned within the trampoline.
13866         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
13867         (TRAMPOLINE_ALIGNMENT): Define.
13868
13869         * cse.c (cse_insn): When changing (set (pc) (reg)) to
13870         (set (pc) (label_ref)), verify the change creates a valid insn.
13871
13872         * fr30.c (call_operand): Tighten and rework to match rules for
13873         call RTL expressions.
13874         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
13875         * fr30.md (call patterns): Improve constraints.
13876
13877 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
13878
13879         * fr30.c (fr30_expand_epilogue): Revert last change.
13880         Use emit_jump_insn for the return insn.
13881
13882 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
13883                           Stan Cox  <scox@cygnus.com>
13884
13885         * predict.c: New file. Preliminary infrastructure work for static
13886         branch prediction and basic block reordering.
13887         * basic-block.h: Add prototype for estimate_probability.
13888         * Makefile.in: Add rules for predict.o.
13889
13890 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
13891
13892         * fixincludes (va_list): Use __not_va_list__ for the dummy.
13893         * fixinc/*: Likewise.
13894
13895 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13896
13897         * cccp.c: PROTO -> PARAMS.
13898         * cexp.y: Likewise.
13899         * collect2.c: Likewise.
13900         * combine.c: Likewise.
13901         * convert.h: Likewise.
13902         * cse.c: Likewise.
13903         * dbxout.c: Likewise.
13904         * dbxout.h: Likewise.
13905         * diagnostic.c: Likewise.
13906         * doprint.c: Likewise.
13907         * dwarf2out.c: Likewise.
13908         * dwarf2out.h: Likewise.
13909         * dwarfout.c: Likewise.
13910         * dwarfout.h: Likewise.
13911         * dyn-string.h: Likewise.
13912
13913 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13914
13915         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
13916         macro conditionals guarding use.
13917
13918         * dwarf2out.c: Include "tm_p.h".
13919
13920         * function.c (locate_and_pad_parm): Mark parameter with
13921         ATTRIBUTE_UNUSED.
13922         (expand_function_end): Likewise for variable `context'.
13923
13924         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
13925
13926 2000-01-13  Nick Clifton  <nickc@cygnus.com>
13927
13928         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
13929         register to prevent compile time warnings.
13930
13931 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
13932
13933         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
13934         to avoid -Wtraditional warning.
13935
13936 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13937
13938         * 1750a-protos.h: New file.
13939
13940         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
13941         time warnings.
13942
13943         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
13944         warnings.
13945
13946         * 1750a.md: Likewise.
13947
13948 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13949
13950         * a29k-protos.h: New file.
13951
13952         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
13953         time warnings.
13954
13955         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
13956         warnings.
13957
13958 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13959
13960         * clipper-protos.h: New file.
13961
13962         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
13963         time warnings.
13964
13965         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
13966         warnings.
13967
13968 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13969
13970         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
13971
13972 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
13973
13974         * configure.in (--enable-new-gxx-abi): New option.
13975         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
13976         * Makefile.in (GXX_ABI_FLAG): New variable.
13977         * configure: Regenerate.
13978
13979 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13980
13981         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
13982         * tm.texi (FORCE_STRUCT_BLK): Document.
13983         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
13984
13985 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
13986
13987         * config/ns32k/ns32k.md: Revert Jan 9 change.
13988
13989         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
13990         to a mode-test, if the predicate is address_operand.
13991
13992 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
13993
13994         * combine.c (if_then_else_cond): Be careful about what kinds
13995         of RTL expressions are passed to operand_subword.
13996
13997         * flow.c (split_edge): If we have to insert a new jump, make
13998         sure to associate it with a basic block.
13999
14000         * flow.c (commit_one_edge_insertion): A block with one successor
14001         can end in a JUMP_INSN that is not a simplejump.
14002
14003 2000-01-12  Robert Lipe  <robertl@sco.com>
14004
14005         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
14006         (BUILD_VA_LIST_TYPE): Define.
14007         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
14008         with crtstuff.c.
14009
14010 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
14011
14012         * cccp.c (do_pragma): Add cast to (char *).
14013
14014 2000-01-12  Richard Henderson  <rth@cygnus.com>
14015             Fred Fish  <fnf@be.com>
14016             Jason Merrill  <jason@cygnus.com>
14017
14018         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
14019         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
14020         * i386/beos-elf.h, i386/beos-pe.h: New files.
14021
14022         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
14023         * cross-make (SYSTEM_HEADER_DIR): Define using
14024         CROSS_SYSTEM_HEADER_DIR.
14025
14026         * gcc.c (LIBRARY_PATH_ENV): Provide default.
14027         (process_command): Use it.
14028         (main): Likewise.  Kill trailing = from env vars.
14029         (build_search_list): Put it back.
14030         * collect2.c (main): Use LIBRARY_PATH_ENV.
14031
14032         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
14033         * toplev.c: Use NEED_DECLARATION_ENVIRON.
14034
14035         * tm.texi (Frame Layout): Document SMALL_STACK.
14036         * c-common.c (c_common_nodes_and_builtins): Check it.
14037
14038         * system.h: Undef alloca after including glibc's <stdlib.h>,
14039         if USE_C_ALLOCA is defined.
14040
14041         * gcc.c (set_input): New fn.
14042         (main): After all input files are compiled, reset the input file
14043         info to the first.
14044
14045         * aclocal.m4 (rindex, index): If already defined, don't attempt
14046         to redefine.
14047
14048         * ginclude/varargs.h: (__va_list__): Define ifndef.
14049         * ginclude/stdarg.h: Likewise.
14050
14051         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
14052         instead of unsigned char.
14053
14054         * hash.h (true, false, boolean): Undef before enum.
14055
14056         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
14057         proper type of "HOST_WIDE_INT *", rather than their natural type of
14058         "unsigned HOST_WIDE_INT *".
14059
14060 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14061
14062         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
14063
14064         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
14065
14066         * regclass.c (choose_hard_reg_mode): Likewise.
14067
14068         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
14069
14070         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
14071
14072 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14073
14074         * c-common.c: PROTO -> PARAMS.
14075         * c-common.h: Likewise.
14076         * c-decl.c: Likewise.
14077         * c-iterate.c: Likewise.
14078         * c-lang.c: Likewise.
14079         * c-lex.c: Likewise.
14080         * c-lex.h: Likewise.
14081         * c-parse.in: Likewise.
14082         * c-pragma.c: Likewise.
14083         * c-pragma.h: Likewise.
14084         * c-tree.h: Likewise.
14085         * c-typeck.c: Likewise.
14086         * objc/objc-act.c: Likewise.
14087         * objc/objc-act.h: Likewise.
14088
14089 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14090
14091         * m88k-protos.h: New file.
14092
14093         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14094         time warnings.
14095
14096         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
14097
14098         * m88k.md: Likewise.
14099
14100         * tekXD88.h: Likewise.
14101
14102 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14103
14104         * m68k-protos.h: New file.
14105
14106         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14107         time warnings.
14108
14109         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
14110
14111         * mot3300.h: Likewise.
14112
14113 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
14114
14115         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
14116         extract_bitlst.
14117         (extract_bitlist): Declare bitlen.
14118
14119 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
14120
14121         * cccp.c: Accept and ignore -lang-fortran.
14122
14123         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
14124         qualifiers don't match at any level of pointerness.
14125
14126 2000-01-12  Robert Lipe  <robertl@sco.com>
14127
14128         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
14129
14130 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
14131
14132         * reload1.c (reload_reg_unavailable): New static variable.
14133         (reload_reg_free_p): Test it.
14134         (reload_reg_free_for_value_p): Test it instead of
14135         reload_reg_used.
14136         (choose_reload_regs_init): Compute it.
14137
14138 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
14139
14140         * reorg.c (fill_slots_from_thread): Check modified_in_p
14141         before replacing.
14142
14143 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
14144
14145         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
14146         these nodes even if INTERNALS is not set.
14147
14148 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
14149
14150         * gcse.c (delete_null_pointer_checks_1): Cope when
14151         get_condition cannot determine the condition.
14152
14153 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
14154
14155         * toplev.h (set_message_length): Declare.
14156
14157         * diagnostic.c (obstack_chunk_alloc): Define macro.
14158         (obstack_chunk_free): Likewise.
14159         (struct output_buffer): New data structure.
14160         (vmessage): Remove.
14161         (output_maximum_width): New variable.
14162         (doing_line_wrapping, set_message_length, init_output_buffer,
14163         get_output_prefix, output_space_left, emit_output_prefix,
14164         output_newline, output_append, output_puts, dump_output,
14165         vbuild_message_string, build_message_string, build_location_prefix,
14166         voutput_notice, output_printf, line_wrapper_printf,
14167         vline_wrapper_message_with_location):  New functions. Implement
14168         automatic line wrapping.
14169         (v_message_with_decl): Make it handle automatic line wrapping.
14170         (v_error_with_file_and_line): Likewise.
14171         (v_warning_with_file_and_line): Likewise.
14172         (announce_function): Likewise.
14173         (default_print_error_function): Likewise.
14174
14175 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
14176
14177         * cpplib.h (struct cpp_options): Change lang_asm to char.
14178         Add lang_fortran.
14179         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
14180         done in cpp_handle_option now.
14181         (initialize_builtins): Take out special case code used only by
14182         __STDC_VERSION__.
14183         (cpp_handle_option): Turn off trigraphs and trigraph warnings
14184         if -traditional.  Recognize -lang-fortran and set
14185         lang_fortran, also turn off cplusplus_comments.
14186         (print_help): Document -lang-fortran.
14187         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
14188         lang_asm. Ignore all directives other than `# 123 "file"' if
14189         CPP_PREPROCESSED.
14190         (cpp_get_token): If -traditional, don't recognize directives
14191         unless the # is in column 1.
14192         (parse_string): If lang_fortran or lang_asm, silently
14193         terminate strings ('' or "") at end of line.
14194         Remove unnecessary braces.
14195
14196 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14197             Richard Henderson  <rth@cygnus.com>
14198
14199         * resource.c (mark_referenced_resources): Mark a set strict_low_part
14200         as used.
14201         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
14202         strict_low_part when possible.
14203
14204 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14205
14206         * alias.c: PROTO -> PARAMS.
14207         * basic-block.h: Likewise.
14208         * bitmap.c: Likewise.
14209         * bitmap.h: Likewise.
14210         * builtins.c: Likewise.
14211         * c-aux-info.c: Likewise.
14212         * caller-save.c: Likewise.
14213         * calls.c: Likewise.
14214
14215 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14216
14217         * Makefile.in (toplev.o): Depend on regs.h.
14218
14219         * output.h (tdesc_section): Prototype.
14220
14221         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
14222
14223         * sdbout.c: Include "tm_p.h".
14224
14225         * toplev.c: Include "regs.h".
14226
14227 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
14228
14229         * unroll.c (unroll_loop): Add EH support.
14230
14231 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14232
14233         * pa-protos.h: New file.
14234
14235         * pa.c: Include recog.h and tm_p.h.
14236         (compute_zdepwi_operands, compute_movstrsi_length,
14237         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
14238         find_addr_reg, import_milli): Add static prototypes.
14239         (pa_cpu_string, pa_arch_string): Constify a char*.
14240         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
14241         (read_only_operand): Add argument `mode'.
14242         (singlemove_string, output_move_double, output_fp_move_double,
14243         output_block_move, output_and, output_ior, output_ascii,
14244         remove_useless_addtr_insns, milli_names, output_mul_insn,
14245         output_div_insn, output_mod_insn, output_arg_descriptor,
14246         output_cbranch, output_bb, output_bvb, output_dbra, ,
14247         output_millicode_call, output_call, hppa_encode_label,
14248         output_parallel_movb, output_parallel_addb): Constify a char*.
14249         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
14250         (output_parallel_addb): Remove extra arg to `constrain_operands'
14251
14252         * pa.h:  Move all prototypes to pa-protos.h.
14253         (pa_cpu_string, pa_arch_string): Constify a char*.
14254         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
14255
14256         * pa.md: Call `function_label_operand' with mode argument.
14257         Likewise for `read_only_operand'.
14258         Fix nesting of parens in call to `symbolic_operand'.
14259
14260 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14261
14262         * i860-protos.h: New file.
14263
14264         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
14265         time warnings.
14266
14267         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
14268
14269         * i860.md: Likewise.
14270
14271 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
14272
14273         * i386.md (movstrsi expander): Rewrite.
14274         (movstrsi_1 insn): Deleted.
14275         (strmovhi, strmovqi expander): New expanders.
14276         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
14277         * i386.c (x86_single_stringop): New global variable.
14278         * i386.h (x86_single_stringop): Declare.
14279         (TARGET_SINGLE_STRINGOP): New macro.
14280
14281 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
14282
14283         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
14284         integer vararg POSTINCREMENT before the destination of the jump
14285         for the hard fp case.
14286         (function_arg_pass_by_reference): Pass a copy of CUM to
14287         FUNCTION_ARG.
14288
14289         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
14290         for CONSTANT_ADDRESS_P above while loop for subreg.
14291
14292 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
14293
14294         * flow.c (propagate_block): When a prologue/epilogue insn
14295         is marked dead, unconditionally clear libcall_is_dead and
14296         insn_is_dead, and only dump rtl if warnings aren't being
14297         suppressed.
14298
14299 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
14300
14301         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
14302         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
14303         (FIXED_REGISTERS): Set dirflag as fixed.
14304         (CALL_USED_REGISTERS): Set dirflag as used.
14305         (REG_ALLOC_ORDER): Set dirflag as last one.
14306         (DIRFLAG_REG): New macro.
14307         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
14308         (HI_REGISTER_NAMES): Add dirflag.
14309         (DEBUF_PRINT_REG): Handle dirflag.
14310         * i386.md (type attribute): New cld and str types.
14311         (length_opcode attribute): Set cld and str to 1.
14312         (memory attribute): Set str to unknown - it is not clear from the
14313         patterns.
14314         (pent_np function unit): Prefixed string operations takes 12 cycles
14315         minimally; cld takes 2 cycles.
14316         (ppro_uops attribute): Str is "many" and cld is "few".
14317         (ppro_p0 unit): Handle cld here.
14318         (k6_alux unit): Handle cld and str types.
14319         (k6_load unit): It is ocupied by str opcodes.
14320         (k6_store unit): It is ocupied by str opcodes.
14321         (athlon_decode): Str is vector decoded.
14322         (athlon_ieu): Handle str and cld.
14323         (cld pattern): New.
14324         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
14325         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
14326         cmpstrsi_nz_1 insn): Do not output cld instruction
14327
14328 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
14329
14330         * gcc.texi (G++ and GCC): Add Java and Chill.
14331         (Bug Critera): Don't list languages.
14332
14333         * gcc.texi (Incompatibilities): No longer claim most C compilers
14334         are K&R.
14335
14336         * gcc.texi (G++ and GCC): Update other front-ends list.
14337
14338 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
14339
14340         * i386.c (ix86_expand_setcc): Fix typo.
14341         (ix86_expand_movcc): Similarly.
14342
14343         * Band-aid until haifa's bitset implementation is nuked.
14344         * haifa-sched.c (extract_bitlst): New parameter for size of the
14345         bitset in bits.  All callers changed.  Avoid looking at undefined
14346         bits in the bitset.
14347         (edgeset_bitsize): New variable.
14348         (schedule_region): Initialize edgeset_bitsize.
14349
14350 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14351
14352         * Makefile.in (optabs.o): Depend on real.h
14353         (resource.o): Depend on insn-attr.h
14354
14355         * builtins.c (result_vector): Wrap prototype in macro conditions
14356         governing definition and use.
14357
14358         * c-common.c: Include tm_p.h.
14359
14360         * c-lex.c: Likewise.
14361
14362         * elfos.h: Constify a char*.
14363
14364         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
14365         (get_attr_length, shorten_branches, profile_after_prologue): Mark
14366         parameter with ATTRIBUTE_UNUSED.
14367
14368         * fold-const.c (exact_real_inverse): Wrap variable `i' in
14369         CHECK_FLOAT_VALUE.
14370
14371         * haifa-sched.c (schedule_insns): Mark parameter with
14372         ATTRIBUTE_UNUSED.
14373
14374         * optabs.c: Include real.h.
14375
14376         * real.h (ereal_atof): Add prototype arguments.
14377
14378         * resource.c: Include insn-attr.h.
14379
14380         * sdbout.c (sdbout_queue_anonymous_type,
14381         sdbout_dequeue_anonymous_types): Wrap in macro
14382         SDB_ALLOW_FORWARD_REFERENCES.
14383         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
14384         ATTRIBUTE_UNUSED.
14385
14386         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
14387
14388         * stupid.c: Include tm_p.h.
14389
14390         * tree.c (real_value_from_int_cst): Mark parameter with
14391         ATTRIBUTE_UNUSED.
14392
14393 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14394
14395         * i960-protos.h: New file.
14396
14397         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
14398         time warnings.
14399
14400         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
14401
14402 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14403
14404         * combine.c (expand_field_assignment): Do not discard SUBREGs
14405         while computing nonzero_bits.
14406
14407 2000-01-09  Nick Clifton  <nickc@cygnus.com>
14408
14409         * config/arm/arm.c: Fix compile time warnings about signed vs
14410         unsigned constants.
14411         * config/arm/arm.h: Fix compile time warnings about signed vs
14412         unsigned constants.
14413
14414 2000-01-09  Philip Blundell  <philb@gnu.org>
14415
14416         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
14417         than `ldm' with only one register.
14418         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
14419         only one register.
14420
14421         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
14422         clobbered.
14423
14424 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
14425
14426         * config/ns32k/ns32k.md (load or push effective address): Operand 1
14427         must have SImode.
14428
14429 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14430
14431         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
14432         assignment used as truth value.
14433
14434         * function.c (assign_temp): Mark parameter `dont_promote' with
14435         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
14436         PROMOTE_FOR_CALL_ONLY.
14437
14438         * genrecog.c (write_subroutine): Mark variable `operands' with
14439         ATTRIBUTE_UNUSED.
14440
14441         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
14442         ATTRIBUTE_UNUSED.
14443
14444         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
14445         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
14446
14447         * toplev.c (note_deferral_of_defined_inline_function): Likewise
14448         for `decl'.
14449
14450 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14451
14452         * config/c4x.h: Tidy up comments.
14453         * config/c4x.c: Likewise.
14454
14455 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
14456
14457         * fold-const.c (lshift_double, rshift_double): Handle
14458         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
14459
14460 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14461
14462         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
14463         in prepare_function_start().
14464
14465 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
14466
14467         * config/v850/v850.c (expand_epilogue): Interrupt functions no
14468         longer allocate extra stack for function calls.
14469
14470 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14471
14472         * config/c4x/c4x.md (*subqf3_set): Fix typo.
14473
14474 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14475
14476         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
14477
14478 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
14479
14480         * rs6000.c (processor_target_table): Add power3 as alias for 630.
14481         * aix43.h: Revert Aug 2 change.
14482         (HAS_INIT_SECTION): Define, not visible yet.
14483         (LD_INIT_SWITCH): Define, not visible yet.
14484         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
14485
14486         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
14487
14488         * collect2.c (main): Expand ld2 size further.
14489         (export_object_lst): Cast assignment to avoid warning.
14490         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
14491         (scan_prog_file, COFF): Do not collect initialization or
14492         finalization functions generated for entire shared object if
14493         init/fini support present.
14494
14495 2000-01-07  Nick Clifton  <nickc@cygnus.com>
14496
14497         * config/elfos.h: Tidy up formatting of marcos.  Make sure
14498         that .section directives are always prefixed by a tab.
14499
14500         * config/svr4.h: Add #include "elfos.h" and remove duplicate
14501         definitions.
14502
14503 2000-01-07  Matt Austern  <austern@sgi.com>
14504
14505         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
14506         expon.
14507
14508 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
14509
14510         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
14511         crtstuff.c.
14512         (crtbegin.o, s-crtS): Likewise.
14513
14514 2000-01-06  Richard Henderson  <rth@cygnus.com>
14515
14516         * alpha.md (adddi_2+1): Limit offset such that it will be
14517         loadable with a single ldah+lda pair.
14518         (adddi_2+2): Explicitly fail split if we can't make it work.
14519
14520 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
14521
14522         * protoize.c: Conditionally include unistd.h.
14523         (IS_SAME_PATH_CHAR): New macro.
14524         (IS_SAME_PATH): New macro.
14525         (CPLUS_FILE_SUFFIX): New macro.
14526         (cplus_suffix): New static variable.
14527         (is_abspath): New static function.
14528         (in_system_include_dir): Handle DOS style pathnames.
14529         (file_could_be_converted): Likewise.
14530         (file_normally_convertible): Likewise.
14531         (directory_specified_p): Likewise.
14532         (file_excluded_p): Likewise.
14533         (abspath): Likewise.
14534         (shortpath): Likewise.
14535         (referenced_file_is_newer): Likewise.
14536         (save_def_or_dec): Likewise.
14537         (do_processing): Likewise.
14538         (main): Likewise.
14539         (edit_file): Likewise. Use rename instead of link.
14540         (rename_c_file): Likewise. Don't rename syscalls file.
14541         (munge_compile_params): Define null device for DOS based systems.
14542         (process_aux_info_file): Use binary mode if appliable.
14543         (edit_file): Likewise.
14544         * invoke.texi (Running Protoize): Document C++ suffixes used.
14545
14546         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
14547         IS_DIR_SEPARATOR macros.
14548         * collect2.c: Likewise.
14549         * cppinit.c: Likewise.
14550         * dwarf2out.c: Likewise.
14551         * gcc.c: Likewise.
14552         * gcov.c: Likewise.
14553         * prefix.c: Likewise.
14554         * rtl.c: Likewise.
14555         * toplev.c: Likewise.
14556         * system.h: And move to here.
14557
14558         * prefix.c (update_path): Fix typo in variable name.
14559
14560 2000-01-06  Richard Henderson  <rth@cygnus.com>
14561
14562         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
14563         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
14564         (count_reg_sets_1, count_reg_references): Likewise.
14565         (flow_loops_level_compute): Start counting actual loop depth at 1.
14566         (flow_loops_find): Likewise.
14567         * local-alloc.c (update_equiv_regs): Likewise.
14568         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
14569
14570 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
14571
14572         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
14573         FIRST_PSEUDO_REGISTER
14574         * dwarf2out.c: Don't include frame.h
14575         * dwarfout.c: Likewise
14576         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
14577         frame.h
14578
14579 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
14580
14581         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
14582         dead registers.
14583
14584         * i386.c (movsf splitter): Fix typo in my last checkin.
14585
14586 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14587
14588         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
14589         own definition of this macro.
14590         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
14591         flag_data_sections or UNIQUE_SECTION_P are true.
14592
14593         * tm.texi (UNIQUE_SECTION): Document that it can be called for
14594         unitialised data decls.
14595
14596         * config/i386/winnt.c (i386_pe_unique_section): Cope with
14597         being called for uninitialised data.
14598
14599         * config/i386/interix.c (i386_pe_unique_section): Cope with
14600         being called for uninitialised data.
14601
14602         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
14603         for uninitialised data.
14604
14605         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
14606         for uninitialised data.
14607
14608         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
14609         for uninitialised data.
14610
14611         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
14612         (UNIQUE_SECTION_P): Always generate a unique section if
14613         flag_data_sections is true.
14614         (UNIQUE_SECTION): Also generate unique sections for
14615         uninitialised data.
14616         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
14617         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
14618         named_section().
14619
14620 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14621
14622         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
14623         SI, or DI.
14624
14625 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14626
14627         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
14628         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
14629         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
14630         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
14631         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
14632
14633         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
14634
14635 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
14636
14637         * c-decl.c (finish_enum): Simplify code to determine minimum and
14638         maximum values of the enum, and calculate the type.  Remove check
14639         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
14640         the DECL_INITIAL of each enumeration constant with a copy converted
14641         to the enumeration type.  When updating variant types, don't bother
14642         updating the type itself.
14643
14644         * c-typeck.c (build_binary_op): Simplify conditional expressions
14645         when weeding out spurious signed-unsigned warnings.  Add new
14646         spurious warning category: if the unsigned quantity is an enum
14647         and its maximum value fits in signed_type(result_type).  Update
14648         commentary.
14649         (build_conditional_expr): Warn here if one alternative is signed
14650         and the other is unsigned.
14651
14652 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14653
14654         * config/fr30/fr30.h: Remove extraneous comments.
14655
14656 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
14657
14658         * reload1.c (choose_reload_regs): When disabling a reload, also
14659         set reload_spill_index to -1.
14660
14661 2000-01-04  Joel Sherrill (joel@OARcorp.com>
14662
14663         * configure.in (m68*-*-rtemscoff*): New target, formal name for
14664         old m68*-*-rtems*.
14665         (m68*-*-rtemself*): New target.
14666         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
14667         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
14668         (sparc*-*-rtemself*): New target.
14669         (sparc*-*-rtems*): Now elf not a.out.
14670         * config/i386/rtems.h: Include config/rtems.h.
14671         * config/i386/rtemself.h: Include config/rtems.h.
14672         * config/i960/rtems.h: Include config/rtems.h.
14673         * config/m68k/rtems.h: Include config/rtems.h.
14674         * config/m68k/rtemself.h: Include config/rtems.h.
14675         * config/mips/rtems64.h: Include config/rtems.h.
14676         * config/pa/rtems.h: Include config/rtems.h.
14677         * config/rs6000/rtems.h: Include config/rtems.h.
14678         * config/sh/rtems.h: Include config/rtems.h.
14679         * config/sh/rtemself.h: Include config/rtems.h.
14680         * config/sparc/rtems.h: Include config/rtems.h.
14681         * config/sparc/rtemself.h: Include config/rtems.h
14682
14683 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
14684
14685         * final.c (shorten_branches): Correctly compute length of
14686         asms without operands.
14687
14688 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
14689
14690         * configure.in: Add pj target.
14691         * configure: Regenerate.
14692         * config/pj: New directory.
14693         * config/pj/lib1funcs.S: New file.
14694         * config/pj/linux.h: New file.
14695         * config/pj/pj.c: New file.
14696         * config/pj/pj.md: New file.
14697         * config/pj/pjl.h: New file.
14698         * config/pj/t-pj: New file.
14699         * config/pj/xm-pj.h: New file
14700
14701 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
14702
14703         * toplev.c (rest_of_compilation): Run shorten-branches before
14704         reg-stack for now.
14705
14706 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14707
14708         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
14709         macros so that they're consistent with their names.
14710         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14711         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14712
14713 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14714
14715         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
14716         modified inadvertently.
14717
14718 2000-01-04  Joel Sherrill <joel@OARcorp.com>
14719
14720         * configure.in (v850*-*-rtems*): New target.
14721         * configure: Regenerate.
14722         * config/v850/rtems.h: New file.
14723
14724 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
14725
14726         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
14727         (__gthread_key_create): Likewise.
14728         (__gthread_key_dtor):  Likewise.
14729         (__gthread_once): Fix logic.
14730         (__gthread_key_delete): Cast away constness.
14731
14732         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
14733         * invoke.texi: Document.
14734         * i386/mingw32.h (CPP_SPEC): Use.
14735         (LIBGCC_SPEC): Likewise.
14736         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
14737
14738 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14739
14740         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
14741         (HANDLE_PRAGMA_PACK): Undefine.
14742         (SLOW_UNALIGNED_ACCESS): Define.
14743
14744 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14745
14746         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14747         to default definition.
14748         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
14749         (store_fixed_bit_field): Call macro with word_mode and alignment.
14750         (extract_bit_field): Call macro with relevant mode and alignment.
14751         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14752         to default definition.
14753         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
14754         and alignment.
14755         (move_by_pieces_ninsns): Likewise.
14756         (clear_by_pieces): Likewise.
14757         (emit_push_insn): Likewise.
14758         (store_field): Call macro with relevant mode and alignment.
14759         (expand_expr): Likewise.
14760         (expand_expr_unaligned): Likewise.
14761
14762         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
14763         (SLOW_UNALIGNED_ACCESS): Define.
14764         (CASE_VECTOR_MODE): Always use 32-bit offsets.
14765         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
14766         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
14767         (toc_section): Likewise and .toc pseudo-op.
14768         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
14769         64-bit mode.
14770         (TEXT_SECTION_ASM_OP): Likewise.
14771         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
14772         32-bit offsets.
14773
14774         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
14775         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
14776         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
14777         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
14778         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
14779
14780 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
14781
14782         * regclass.c: Revert my Jan 4 change to loop cost computation.
14783
14784 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14785
14786         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
14787         compilation.
14788
14789 2000-01-04  Stan Cox  <scox@cygnus.com>
14790
14791         * haifa-sched.c (build_control_flow): Change unreachable simple
14792         loop test to check if current block has only one predecessor.
14793         (find_rgns): Initialize degree.  Use dest as degree index, not src.
14794
14795 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14796
14797         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
14798
14799         * calls.c (expand_call): Likewise for
14800         `old_stack_arg_under_construction'.
14801
14802         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
14803
14804         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
14805         `save_constant'.
14806
14807         * gcc.c (execute): Likewise for `ut' and `st'.
14808
14809         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
14810
14811         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
14812
14813         * jump.c (jump_optimize_1): Likewise for `temp2'.
14814
14815         * local-alloc.c (block_alloc): Likewise for `r1'.
14816
14817         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
14818
14819         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
14820         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
14821
14822         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
14823         and `set2'.
14824
14825         * reload.c (find_reloads): Likewise for `goal_alternative_number'
14826         and `goal_earlyclobber'.
14827
14828         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
14829
14830         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
14831
14832         * stupid.c (stupid_life_analysis): Likewise for `chain'.
14833
14834         * unroll.c (copy_loop_body): Likewise for `copy'.
14835
14836         * varasm.c (output_constructor): Likewise for `byte'.
14837
14838 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14839
14840         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
14841         all FP constants for constant->reg moves.
14842         (ix86_split_to_parts): Try to convert memory address into immediate
14843         when available in the constant pool.
14844         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
14845         moves.
14846         (LEGITIMATE_CONSTANT_P): Return 1.
14847         * i386.md (pushsf): New splitter to convert constant pool memory
14848         reference to immediate.
14849         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
14850         reload.
14851
14852 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
14853
14854         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
14855         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
14856         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
14857         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
14858         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
14859
14860 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
14861
14862         * ginclude/stdbool.h:  Support compilation as C++.
14863
14864 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14865
14866         * fold-const.c (make_range): Don't try to reverse an unbounded range.
14867
14868 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
14869
14870         * regclass.c (regclass): Properly compute loop_cost.  Adjust
14871         comments.
14872
14873         * regclass.c: Fix minor whitespace problems.
14874
14875 2000-01-03  Anthony Green  <green@cygnus.com>
14876
14877         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
14878         Restore the pic register if required.
14879
14880 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
14881
14882         * c-common.c (format_char_info): Update comment.
14883         (check_format_info): Recognize 'z' modifier in the same way 'Z'
14884         was recognized.  Emit warning for formats new in ISO C99 only
14885         if flag_isoc9x is not set.
14886
14887 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
14888
14889         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
14890
14891 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14892
14893         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
14894         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
14895         (make_compound_operation): Choose cheaper alternative between
14896         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
14897
14898         * regclass.c (op_costs): Remove global variable.
14899         (record_reg_classes): New parameter "op_costs" and "reg_pref".
14900         (record_operand_costs): Break out from ...
14901         (scan_one_insn): ... here.
14902         (dump_regclass): Make dumps nicer.
14903         (regclass): Dump preferrences choosed and changes done during passes.
14904
14905 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
14906
14907         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
14908
14909 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
14910
14911         * config/sparc/sparc.c (gen_df_reg): New function.
14912         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
14913         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
14914         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
14915         movtf_cc_reg_sp64+1): Use it.
14916
14917 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
14918
14919         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
14920         copied LABEL_DECLs.
14921
14922 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14923
14924         * config/i386/i386.c (ix86_expand_unary_operator): Function
14925         definition made void.
14926         (ix86_expand_binary_operator): Update outdated preceding comment.
14927         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
14928         prototype.
14929
14930         * config/i386/i386.c (override_options): Fix option-name typo.
14931
14932 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
14933
14934         * system.h (CEIL): Define.
14935         * builtins.c (CEIL): Remove.
14936         * expmed.c (CEIL): Likewise.
14937         * expr.c (CEIL): Likewise.
14938         * stor-layout.c (CEIL): Likewise.
14939
14940 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
14941
14942         * expr.c (store_constructor_field): Fix typo introduced with last
14943         gcc2 merge.
14944
14945 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
14946
14947         * tree.h (BINFO_N_BASETYPES): New macro.
14948
14949 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
14950
14951         * expmed.c (emit_store_flag): Prevent losing a pending stack
14952         adjust the same way we prevent losing queued increments.
14953
14954 See ChangeLog.2 for earlier changes.