OSDN Git Service

* invoke.texi: Remove documentation for -fguiding-decls.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
2
3         * invoke.texi: Remove documentation for -fguiding-decls.
4
5 2000-05-31  Richard Henderson  <rth@cygnus.com>
6
7         * configure.in: Fix typo last change.
8
9 2000-05-31  Philipp Thomas  <pthomas@suse.de>
10
11         * configure.in (enable-nls): Enable if build == host, i.e. when 
12         not building a canadian cross compiler.
13         (enable-maintainer-mode): Added for use with i18n.
14         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
15         cross section of ALL_LINGUAS and LINGUAS.
16         * configure: Rebuild.
17
18 2000-05-31  Bruce Korb  <bkorb@gnu.org>
19
20         * fixinc/check.tpl: rework to use test result tree
21         * fixinc/Makefile.in: change invocation of check script
22         * fixinc/check.diff: No longer needed
23         * fixinc/fixincl.x: regenerate
24         * fixinc/inclhack.def:  add new tests
25         * fixinc/tests/base/arch/i960/archI960.h:  New test result
26         * fixinc/tests/base/curses.h: modified test result
27         * fixinc/tests/base/stdio.h: ditto
28         * fixinc/tests/base/time.h: ditto
29         * fixinc/tests/base/sys/asm.h: ditto
30         * fixinc/tests/base/sys/stat.h: ditto
31         * fixinc/tests/base/sys/wait.h: ditto
32
33 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
34
35         * except.c (clear_function_eh_region): Do not free NULL.
36
37 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38
39         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
40         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
41         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
42         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
43         (find_base_decl): New function, from c_find_base_decl in c-common.c.
44         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
45         (get_alias_set): Likewise.
46         Major rework to do more things and allow language-specific code
47         to just handle special-cases.
48         (record_alias_subset): Args are HOST_WIDE_INT.
49         (record_component_alias): Local vars are HOST_WIDE_INT.
50         Don't handle COMPLEX_EXPR.
51         (get_varargs_alias_set): Moved from builtins.c.
52         (get_frame_alias_set): New function.
53         * builtins.c (expand_builtin_return_address): Use frame alias set.
54         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
55         for setjmp buffer.
56         (get_memory_rtx): Rework to use set_mem_attributes.
57         (get_varargs_alias_set): Deleted from here.
58         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
59         (c_find_base_decl): Deleted from here.
60         (c_get_alias_set): Remove many cases and rework to just handle
61         C-specific cases.
62         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
63         * c-decl.c (rtl.h, expr.h): Now included.
64         (init_decl_processing): Call record_component_aliases on array types.
65         (grokdeclarator): Likewise.
66         Set TREE_ADDRESSABLE for all fields that are not bitfields.
67         * c-typeck.c (common_type): Call record_component_aliases for array.
68         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
69         Set all save areas to the frame alias set.
70         * calls.c (initialie_argument_information): Call set_mem_attributes.
71         (compute_argument_addresses, expand_call): Likewise.
72         * explow.c (set_mem_attributes): New function.
73         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
74         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
75         LEN and OFFSET now HOST_WIDE_INT.
76         (clear_by_pieces): Similar changes.
77         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
78         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
79         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
80         (clear_by_pieces_1): Likewise.
81         (emit_push_insn): Call set_mem_attributes.
82         (expand_expr, case INDIRECT_REF): Likewise.
83         (expand_expr, case VAR_DECL): Call change_address.
84         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
85         tree_low_cst.
86         (get_varargs_alias_set, get_frame_alias_set): New decls.
87         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
88         (new_alias_set, set_mem_attributes): Likewse.
89         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
90         (assign_stack_temp_for_type): Likewise.
91         Can split slot even if alias set since can copy.
92         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
93         (assign_temp): Use host_integerp and tree_low_cst.
94         (put_var_into_stack): Properly handle SAVE_EXPR.
95         (put_addressof_into_stack): Likewise.
96         (assign_parms): Call set_mem_attributes.
97         Delete #if 0 code.
98         (fix_lexical_address): Put reference to chain into frame alias set.
99         (expand_function_start): Call set_mem_attributes.
100         * integrate.c (expand_inline_function): Likewise.
101         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
102         * regmove.c (try_apply_stack_adjustment): Likewise.
103         * reload.c (push_reload, make_memloc): Likewise.
104         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
105         * rtl.def (MEM): Update comment.
106         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
107         (move_by_pieces): Change length to HOST_WIDE_INT.
108         (record_base_value, record_alias_subset): Delete from here.
109         * stmt.c (expand_decl): Call set_mem_attributes.
110         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
111         * toplev.c (compile_file): Call init_alias_once earlier.
112         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
113         from here: now in alias.c.
114         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
115         (struct tree_decl): Likewise.
116         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
117         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
118         (output_constant_def, force_const_mem): Likewise.
119         
120         * flow.c (propagate_block): If block has no successors, stores to
121         frame are dead if not used.
122
123 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
124
125         * stmt (expand_end_case): Reorder conversion sequence for jump
126         table to avoid extra truncations.
127
128 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
129
130         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
131         in the block is more than just a simple conditional branch.
132         (noce_process_if_block): Similarly.
133
134 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
135
136         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
137         queue.
138
139 2000-05-30  Michael Meissner  <meissner@redhat.com>
140
141         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
142         instructions.  Treat LO_SUM operations as loading the full integer
143         constant.
144
145 2000-05-30  Richard Henderson  <rth@cygnus.com>
146
147         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
148
149 2000-05-30  Richard Henderson  <rth@cygnus.com>
150
151         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
152
153 2000-05-30  Bruce Korb  <bkorb@gnu.org>
154
155         * fixinc/tests/*:  Added expected result files for fixinc's make check
156         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
157
158 2000-05-30  Richard Henderson  <rth@cygnus.com>
159
160         * config/alpha/alpha.md (*setne_internal): Use match_operator
161         instead of working down from insn.
162
163 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
164
165         * invoke.texi (-Wtraditional): Update WRT function macros.
166
167 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
168
169         * except.c (free_exception_table): Do not free NULL.
170
171 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
172
173         * cpplib.c (do_if): Don't save and restore only_seen_white here.
174         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
175         and skipping here.
176
177 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
178
179         * flow.c (mark_used_reg): If a register is unconditionally live, 
180         remove any conditional death information.
181
182 2000-05-29  Richard Henderson  <rth@cygnus.com>
183
184         * final.c (current_output_insn): New.
185         (final_scan_insn): Set it.
186         * output.h: Declare it.
187
188 2000-05-29  Richard Henderson  <rth@cygnus.com>
189
190         * stor-layout.c (finalize_record_size): Fix typo.
191
192         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
193         if nlabel is null.
194
195 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
196
197         * cpplib.h (cpp_reader): Remove if_stack.  Change
198         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
199         * cpphash.h (struct ihash): Change control_macro to a
200         cpp_hashnode * and shorten name to cmacro.
201         Add NEVER_REINCLUDE constant.
202
203         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
204         Examine the cmacro node directly, no need to call cpp_defined.
205         (_cpp_execute_include, read_include_file): Set cmacro to
206         NEVER_REINCLUDE, not U"".
207         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
208         (cpp_get_token): If pfile->skipping is true, discard text and
209         keep scanning until we hit a directive; don't expand macros.
210
211         * cpplib.c (struct if_stack): Remove if_succeeded, add
212         was_skipping. Change control_macro to a cpp_hashnode * and
213         shorten name to cmacro.  Remove typedef IF_STACK.
214         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
215         (conditional_skip, skip_if_group,
216         consider_directive_while_skipping): Delete.
217         (push_conditional): New.
218         (_cpp_handle_directive): Don't process directives other than
219         conditionals if we are skipping.
220
221         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
222         Update to new scheme.
223         (validate_else): Skip rest of line here, unconditionally.
224         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
225         pfile->skipping off.
226
227         (all): Remove `scare quotes' from error messages.
228
229 2000-05-29  Richard Henderson  <rth@cygnus.com>
230
231         * function.c (emit_return_into_block): New line_note arg; emit it.
232         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
233         for the close brace to accompany HAVE_return.  Move all line notes
234         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
235
236 2000-05-29  Richard Henderson  <rth@cygnus.com>
237
238         * longlong.h [__alpha] (count_leading_zeros): New.
239         (count_trailing_zeros): New.
240         (COUNT_LEADING_ZEROS_0): New.
241
242         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
243         (alpha_split_conditional_move): New.
244         * config/alpha/alpha-protos.h: Prototype them.
245         * config/alpha/alpha.h (PREDICATE_CODES): Update.
246         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
247         * config/alpha/alpha.md: Update ffs cix commentary.
248         (*ze_and_ne): New.
249         (*nabssf2, *nabsdf2): New.
250         (*mov[qhsd]icc_internal): Use add_operand.
251         (if_then_else constant splitters): New.
252         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
253         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
254
255 2000-05-29  Richard Henderson  <rth@cygnus.com>
256
257         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
258         a constant to NEG or NOT when conditions allow.
259
260         * combine.c (combine_simplify_rtx): Don't create an if_then_else
261         unless both args are general_operand.  Don't canonicalize plus
262         to ior unless it helps.
263
264         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
265         instead track register_life_up_to_date.  Toggle no_new_pseudos
266         around if_convert.  
267
268 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
269
270         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
271         so output_operand doesn't see them.
272
273 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
274
275         * lcm.c (make_preds_opaque): Fix comment.
276         (optimize_mode_switching): Use NORMAL_MODE instead of 
277         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
278         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
279         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
280         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
281         (MODE_USES_IN_EXIT_BLOCK): Delete.
282         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
283         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
284         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
285         (MODE_NEEDED): Don't look for USE.
286         (EPILOGUE_USES): Define.
287
288 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
289
290         * mklibgcc.in (all): Variable initialised to `libgcc'.
291
292 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
293
294         * toplev.h (skip_leading_substring): New macro.
295         * toplev.c (decode_f_option): Use skip_leading_substring instead
296         of strncmp.
297         (decode_W_option): Likewise.
298
299 2000-05-28  Nick Clifton  <nickc@cygnus.com>
300
301         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
302         modify reg_names.
303
304 2000-05-28  Richard Henderson  <rth@cygnus.com>
305
306         * regclass.c (record_operand_costs): Protect reg_changes_size
307         with CLASS_CANNOT_CHANGE_SIZE.
308
309         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
310
311 2000-05-28  Richard Henderson  <rth@cygnus.com>
312
313         * function.c (diddle_return_value): A pcc-style struct return
314         returns a pointer.
315
316 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
317
318         * cppfiles.c: Read files in, using mmap if possible, then
319         prescan them separately.
320         (read_file, read_with_read): New functions.
321         * cpplex.c: Don't define UCHAR_MAX.
322         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
323         the file here.
324
325         * cppinit.c (handle_option): Automatically define __cplusplus,
326         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
327         the respective -lang switch.
328
329         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
330         prototype): Move to...
331         * cpplib.h: ... here.  Rename struct hashnode to struct
332         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
333         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
334
335 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
336
337         * config/rs6000/rs6000.md (movsi): Constify 'name'.
338
339         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
340         (class_can_change_size): New variable.
341         (reg_changes_size): New variable.
342         (init_reg_sets_1): Initialise class_can_change_size.
343         (record_operand_costs): Remove subreg_changes_size.
344         Don't pass it around.  Instead update reg_changes_size.
345         (regclass): Initialise and free reg_changes_size.  If a register
346         changes size, don't preference it to a class that contains
347         registers that can't change size.
348         (record_reg_classes): Don't look at subreg_changes_size.
349
350 2000-05-27  Richard Henderson  <rth@cygnus.com>
351
352         * print-rtl.c (reg_names): Remove const.
353         * regclass.c (reg_names): Likewise.
354         * regs.h (reg_names): Likewise.
355         * hard-reg-set.h (reg_names): Likewise.
356
357 2000-05-27  Richard Henderson  <rth@cygnus.com>
358
359         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
360
361 2000-05-27  Richard Henderson  <rth@cygnus.com>
362
363         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
364         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
365         (alpha_expand_prologue): Emit prologue_mcount if needed.
366         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
367         * config/alpha/alpha.md (prologue_mcount): New.
368         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
369         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
370         * config/alpha/netbsd.h: Likewise.
371
372 2000-05-27  Richard Henderson  <rth@cygnus.com>
373
374         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
375         change to config/elfos.h.
376
377 2000-05-27  Richard Henderson  <rth@cygnus.com>
378
379         * Makefile.in (resource.o): Depend on except.h.
380         * except.h (output_exception_table_data): Prototype.
381         * genconfig.c (gen_peephole2): Prototype.
382         * genemit.c (main): Include ggc.h.
383         * genoutput.c: Revert parts of last change: include errors.h
384         (main): Set progname.
385         * recog.c: Include hard-reg-set.h before recog.h.
386         * resource.c: Include except.h.
387
388         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
389         with RTX_CODE.
390         (alpha_write_linkage): Protect with BUFSIZ.
391         (alpha_need_linkage): Update prototype.
392         * config/alpha/alpha.c (function_arg): Move VMS code here.
393         (alpha_links_base): Remove.
394         (alpha_links): New.
395         (mark_alpha_links_node, mark_alpha_links): New.
396         (alpha_write_one_linkage): New.
397         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
398         (alpha_write_linkage): Use splay_tree_foreach.
399         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
400         to get the linkage symbol.
401         (call_value_vms): Likewise.
402         * config/alpha/elf.h (output_file_directive): Remove decl.
403         (ctors_section, dtors_section): Prototype.
404         (sbss_section, sdata_section): Prototype.
405         * config/alpha/vms.h (FUNCTION_ARG): Remove.
406         (readonly_section, link_section, literals_section): Prototype.
407         (ctors_section, dtors_section): Prototype.
408         (vms_valid_decl_attribute_p): Remove decl.
409         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
410
411 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
412
413         * reload.c (get_secondary_mem): Don't widen floating-point modes.
414
415         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
416         substituting the REG in a (subreg:X (reg:Y ...)).
417
418 2000-05-28  Neil Booth  <NeilB@earthling.net>
419
420         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
421         first token of a line BOL.  Update EOF code for this.
422         Remove illegal directive check - it appears in the (not
423         yet committed) caller.
424         * cpplib.h (BOL): New flag.
425
426 2000-05-28  Neil Booth  <NeilB@earthling.net>
427
428         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
429         (_cpp_free_toklist): No comment space to free.
430         (expand_comment_space): Remove.
431         (save_comment_space): Place the comment in the current token and
432         not in a separate comment space.
433         (_cpp_lex_line): Save comments during plain code and #define
434         directives only.
435         * cpplib.h (struct _cpp_toklist): Remove comment space.
436
437 2000-05-28  Neil Booth  <NeilB@earthling.net>
438
439         * cppexp.c (parse_assertion): Supply extra argument to
440         _cpp_init_toklist.
441         * cpplib.c (do_assert, do_unassert): Similarly.
442         * cpphash.h (_cpp_init_toklist) Update.
443         (_cpp_expand_token_space): New.
444         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
445         * cpplex.c (_cpp_init_toklist): New argument.
446         (parse_string2): New argument multiline_ok.
447         (spell_token): Take a const cpp_token *.
448         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
449         (SPELL_ macros): Replace with enum.
450         (expand_token_space): Replace with _cpp_expand_token_space.
451         Take COUNT argument.
452         (IS_DIRECTIVE): Update.
453         (_cpp_lex_line): Update token structure before parsing number.
454         Don't assume start at beginning of token list.
455         (save_comment): Use INIT_TOKEN_NAME.
456
457 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
458
459         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
460         -Wmissing-prototypes.
461         * configure: Regenerate.
462         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
463
464         * builtins.c, calls.c: Change all instances of gen_call_* or
465         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
466         * calls.c (struct_value_size_rtx): Separate definition from
467         initialization to avoid unused variable warning.
468
469         * genflags.c (gen_macro): New function.
470         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
471         (gen_nonproto): Delete.
472         (gen_insn): Put all insns on the same obstack.
473         (main): Generate prototypes for everything unconditionally.
474
475         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented 
476         out check for wchar_t.
477         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
478         * system.h: Add infrastructure for defining missing   
479         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback  
480         definitions of UCHAR_MAX and SSIZE_MAX.
481         * configure: Regenerate.
482         * config.in: Regenerate.
483
484         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
485         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
486         headers.
487         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
488         libgcc2.a, or libgcc1.null.
489
490 2000-05-27  Richard Henderson  <rth@cygnus.com>
491
492         * Makefile.in (recog.o): Don't depend on resource.h.
493         * recog.c: Don't include resource.h.
494         (recog_last_allowed_insn): Remove.
495         (recog_next_insn): Remove.
496         (struct peep2_insn_data): New.
497         (peep2_insn_data, peep2_current): New.
498         (peep2_next_insn): New.
499         (peep2_regno_dead_p, peep2_reg_dead_p): New.
500         (peep2_find_free_register): New.
501         (peephole2_optimize): Track life information by insn as we go.
502         * recog.h: Update declarations.
503         * resource.c (find_free_register, reg_dead_p): Remove.
504         * resource.h: Remove their declarations.
505         * toplev.c: Include hard-reg-set.h before recog.h.
506
507         * genconfig.c (max_insns_per_peep2): New.
508         (gen_peephole2): New.
509         (main): Call it.
510         * genemit.c (output_peephole2_scratches): Generate calls to
511         peep2_find_free_register; adjust surrounding code.
512         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
513         * genrecog.c (change_state): Don't track last_insn.
514         (write_action): Write into *_pmatch_len before accepting.
515         (write_tree): Adjust peephole2_insns and subroutines to match.
516
517         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
518
519         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
520         (hard_int_register_operand): New.
521         * config/alpha/alpha-protos.h: Declare it.
522         * config/alpha/alpha.h (PREDICATE_CODES): Update.
523         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
524         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
525
526 2000-05-27  Richard Henderson  <rth@cygnus.com>
527
528         * function.c (thread_prologue_epilogue_insns): Don't move the
529         line note at the head of the chain.  Only force a lineno note
530         before the end of block 0.
531
532 2000-05-27  Richard Henderson  <rth@cygnus.com>
533
534         * gensupport.c (collect_insn_data): Record the maximum number
535         of alternatives, not the last seen.
536
537         * genoutput.c: Don't include errors.h.
538         (struct data): Add lineno member.
539         (have_error): New.
540         (scan_operands): Use message_with_line instead of error.
541         (validate_insn_alternatives): Likewise.
542         (gen_insn): Accept and store the pattern's line number.
543         (gen_peephole, gen_expand, gen_split): Likewise.
544         (main): Don't set progname.  Pass line_no to gen_foo.
545
546 2000-05-27  Richard Henderson  <rth@cygnus.com>
547
548         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
549         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
550         * config/d30v/d30v.md (attr predicable): New.
551         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
552         (andsi3*): Unify into one pattern.
553         (iorsi3*, xorsi3*): Likewise.
554         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
555         conditional return.
556         (old cond_exec patterns): Remove.
557         (define_cond_exec): New.
558
559 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
560
561         * tree.h (TREE_CODE_LENGTH): New macro.
562         * c-common.c (c_find_base_decl): Use it.
563         * expr.c (safe_from_p): Likewise.
564         * print-tree.c (print_node): Likewise.
565         * tree.c (make_node, copy_node, get_identifier): Likewie.
566         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
567         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
568         * fold-const.c (make_range): Likewise.
569         (fold): Likewise; also use first_rtl_op.
570         * c-iterate.c (collect_iterators): Use first_rtl_op.
571         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
572         Use IS_EXPR_CODE_CLASS.
573         (preexpand_calls): Likewise.
574         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
575         and TREE_CODE_LENGTH.
576         * stmt.c (warn_if_unused_value): If no operands, no unused value.
577
578 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
579
580         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
581         than '%1(%*)'.
582         (movdi_internal64): Likewise.
583
584         * config/rs6000/rs6000.md: Correct order of operands for DImode
585         boolean patterns.
586
587         * config/rs6000/rs6000.c (boolean_or_operator): New function.
588         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
589         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
590         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
591         boolean_operator for the boolean patterns without NOTs.
592
593         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
594         from reg_or_u_cint_operand.  Change comment and behaviour.
595         (logical_operand): Clean up, add assertion.
596         (non_logical_cint_operand): Also check for
597         reg_or_logical_cint_operand.
598         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
599         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
600         in the expander.
601         (xorsi3): Likewise.
602         (iordi3): Likewise.
603         (xordi3): Likewise.
604
605 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
606
607         * tree.h (struct record_layout_info): Rename to (struct
608         record_layout_info_s).
609         * stor-layout.c (start_record_layout): Replace
610         `record_layout_info' with `record_layout_info_s'.
611
612 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
613
614         * flow.c (find_label_refs): New function.
615         (find_basic_blocks_1): Call it for each alternative of a call 
616         placeholder.
617
618 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
619
620         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
621         of get_pc.
622
623 2000-05-25  Richard Henderson  <rth@cygnus.com>
624
625         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
626         so strict about DImode.
627         (alpha_swapped_comparison_operator): Likewise.
628         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
629         any integer output mode.
630         (*setcc_internal): Likewise.
631         (*setcc_swapped_internal): Likewise.
632         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
633         (*mov[qhs]icc_internal): New.
634         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
635
636 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
637
638         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
639
640 2000-05-25  Richard Henderson  <rth@cygnus.com>
641
642         * bb-reorder.c (reorder_block_def): Reorder elements for size.
643         Remove add_jump; add next; replace flags with visited.
644         (rbd_init): Remove.
645         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
646         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
647         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
648         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
649         (RBI): New.
650         (reorder_index, reorder_last_visited): Remove.
651         (skip_insns_after_block): Rewrite to use a switch.
652         (get_common_dest): Remove.
653         (chain_reorder_blocks): Remove.
654         (record_effective_endpoints): Split out from reorder_basic_blocks.
655         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
656         (make_reorder_chain_1): Renamed from old make_reorder_chain.
657         Only construct the reorder chain, do not move insns.  Try harder
658         to tail recurse.
659         (label_for_bb, emit_jump_to_block_after): New.
660         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
661         and adjust the jump insns appropriately.  Fixup basic_block_info.
662         (verify_insn_chain): Always define.
663         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
664         in allocation size.
665         (make_new_scope): Don't write zeros to calloc'd space.
666         (build_scope_forest): Rely on xrealloc to DTRT.
667         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
668         profile_arc_flag.  Streamline EH test.
669
670         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
671         * basic-block.h: Declare them.
672
673 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
674
675         * emit-rtl.c (reset_used_decls): New function.
676         (unshare_all_rtl_again): Call it.
677
678 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
679
680         * cpplex.c (maybe_macroexpand): Warn about function-like
681         macros used in non-function context, if -Wtraditional.
682
683 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
684
685         * recog.c (peephole2_optimize): Use INSN_P.
686
687 2000-05-25  Richard Henderson  <rth@cygnus.com>
688
689         * ifcvt.c (seq_contains_jump): New.
690         (noce_try_store_flag_constants): Use it to fail conversion.
691         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
692
693 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
694
695         * except.h (can_throw): Declare it.
696         * except.c (can_throw): Give it external linkage.
697         * resource.c (find_dead_or_set_registers): Use can_throw.
698         
699 2000-05-25  Richard Henderson  <rth@cygnus.com>
700
701         * flow.c (mark_set_1): Don't record conditionally dead memory.
702
703 2000-05-25  Jan Hubicka  <jh@suse.cz>
704
705         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
706         and pc_set at the place of simplejump_p and condjump_p.
707         * cse.c (record_jump_equiv): Likewise.
708         * emit-rtl.c (emit): Likewise.
709         * explow.c (find_next_ref): Likewise.
710         * flow.c (tidy_fallthru_edge): Likewise.
711         (init_propagate_block_info): Likewise.
712         * gcse.c (delete_null_pointer_checks): Likewise.
713         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
714         dead_or_predicable): Likewise.
715         * integrate.c (copy_insn_list): Likewise.
716         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
717         for_each_insn_in_loop, check_dbra_loop, get_condition,
718         insert_bct, load_mems): Likewise.
719         * resource.c (find_dead_or_set_registers): Likewise.
720         * sibcalls.c (simplejump_p): Likewise.
721         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
722
723 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
724
725         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
726         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
727         when unaligned.
728         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
729         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
730         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
731         * rs6000.md: Name various internal patterns.
732
733 2000-05-25  Jan Hubicka  <jh@suse.cz>
734
735         * jump.c (invert_exp_1): Remove first argument, use pc_set
736         to get the expression.
737         (redirect_exp): Make static; redirect only the pc_set expression,
738         remove first argument.
739         (invert_exp): Remove first argument, make static.
740         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
741         any_onlyjump at most places where we originaly did condjump_p
742         and simplejump_p.
743         (jump_back_p, follow_jumps, thread_jumps): Likewise.
744         (delete_barrier_succesors): Use pc_set.
745         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
746         calls of invert_exp and redirect_exp.
747         * rtl.h (redirect_exp, invert_exp): Remove.
748         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
749
750 2000-05-25  Richard Henderson  <rth@cygnus.com>
751
752         * stmt.c (expand_end_bindings): Fix thinko last change.
753
754 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
755             Andrew Haley  <aph@cygnus.com>
756
757         * except.c  (func_eh_entry): Add emitted field.
758         (new_eh_region_entry): Set emitted field to 0;
759         (output_exception_table_entry): Only emit previously un-emitted data,
760         and send it to the eh_data section.
761         (output_exception_table): Break out common parts. Output
762         exception table for entire compilation unit to eh_data section.
763         (output_exception_table_data): Common parts of output_exception_table.
764         Send output to eh_data section.
765         (output_function_exception_table): Output exception table data for
766         a single function to eh_data section.
767         (free_exception_table): New external to free the table.
768         * except.h (free_exception_table): Add prototype.
769         (output_function_exception_table): Add prototype.
770         * final.c (final_end_function): Output function exception table
771         for IA64_UNWIND_INFO.
772         (final_scan_insn): Emit any unwind directives for an insn.
773
774         * frame-dwarf2.c: New file containing all DWARF 2 specific code
775         from frame.c.
776         * frame.c: Remove all DWARF 2 specific code.
777         * config/ia64/frame-ia64.c: New file.
778         (gthread_stuff): Make all gthread available with 
779         IA64_UNWIND_INFO.
780         (dwarf_fde): Define an IA64 struct for dwarf_fde.
781         (__register_frame_info, __register_frame): Move to common area of file.
782         (__register_frame_info_table, __register_frame_table): Move to common i
783         area.
784         (__deregister_frame_info, __deregister_frame): Move to common area.
785         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
786         (read_uleb128): New version for ia64.
787         (get_unwind_record): Read the next IA-64 unwind record.
788         (read_R_record): Read a region header record.
789         (process_a_b_reg_code): X record helper.
790         (read_X_record): Read an X format record.
791         (read_B_record): Read a B format record.
792         (P3_record_types): List of record types matching the P3 format.
793         (P7_record_types): List of record types matching the P7 format.
794         (P8_record_types): List of record types matching the P8 format.
795         (read_P_record): Read a P format record.
796         (init_ia64_reg_loc): Set default fields for a register.
797         (init_ia64_unwind_frame): Set defaults for all register records.
798         (execute_one_ia64_descriptor): Execute one descriptor record.
799         (rse_address_add): Calculate the position of a local reg in memory.
800         (normalize_reg_loc): Turn a location descriptor into a memory address.
801         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls 
802         within a specified PC offset range.
803         (get_real_reg_value): Given a register location, retrieve its value.
804         (set_real_reg_value): Change the value of a register location.
805         (copy_reg_value): Copy reg values, if needed.
806         (copy_saved_reg_state): Copy all registers that need to be copied.
807         (process_state_between): Normalize all frame register records that
808         fall within the specified PC range.
809         (frame_translate): Take a processed frame description, and turn 
810         everything into addresses.
811         (build_ia64_frame_state ): Find and create frame state record for a PC.
812         (get_personality): Get the personality routine for a given frame.
813         (get_except_table): Get the exception table for a given frame.
814         (record_name): Unwind record names for debugging.
815         (print_record): Print and unwind record.
816         (print_all_records): Print an entire unwind image.
817         (__ia64_backtrace): Print a backtrace.
818         (ia64_backtrace_helper): New function.
819         (__register_frame_info_aux): New function.
820         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
821
822         * frame.h (enum unw_record_type): New unwind record types.
823         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
824         (struct unw_r_record, unwind_record): New unwind record structs.
825         (struct unwind_info_ptr): Unwind information layout.
826         (IA64_UNW_LOC_TYPE_*): Macros for different types for location 
827         descriptors.
828         (struct ia64_reg_loc): Register location description.
829         (struct ia64_frame_state): Location of all registers in a frame.
830         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
831         * libgcc2.c (__ia64_personality_v1): Personality routine.
832         (__calc_caller_bsp): Calculate the bsp register for the caller's
833         frame.
834         (ia64_throw_helper): Figure out who to return to and set up the 
835         registers.
836         (__throw): Throw routine.
837
838         * output.h (assemble_eh_align, assemble_eh_label): New functions
839         to generate EH info where we want it.   
840         (assemble_eh_integer): New function.
841         * toplev.c (compile_file): Output module level exception table for
842         non-ia64 targets.
843         (main): Set exceptions_via_longjump and flag_new_exceptions based 
844         on IA64_UNWIND_INFO too.
845
846         * varasm.c (assemble_eh_label): Generate a label via
847         ASM_OUTPUT_EH_LABEL if it has been specified.
848         (assemble_eh_align): Generate an alignment directive via 
849         ASM_OUTPUT_EH_ALIGN if it has been specified.
850         (assemble_eh_label): Generate an integer value via
851         ASM_OUTPUT_EH_type if they have been specified.
852         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
853         (ia64_init_builtins): Add __builtin_ia64_bsp
854         and __builtin_ia64_flushrs.     
855         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
856         IA64_BUILTIN_FLUSHRS.
857         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
858         IA64_BUILTIN_FLUSHRS.
859
860         * config/ia64/ia64.md (flushrs): New insn to flush the register
861         stack.  Add to unspec list.
862
863         * config/ia64/crtbegin.asm (frame_object): Change size.
864         (__do_frame_setup_aux): New function.
865         * config/ia64/crtend.asm: call __do_frame_setup_aux.
866         * config/ia64/t-ia64 (LIB2ADDEH): Add.
867         * Makefile.in (LIB2ADDEH): Add.
868         (LIB2ADD): Use LIB2ADDEH.
869         
870 2000-05-24  Richard Henderson  <rth@cygnus.com>
871
872         * recog.c (offsettable_address_p): If mode size is zero, assume
873         BIGGEST_ALIGNMENT.
874
875 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
876
877         * configure.in: Check for -Wno-long-long option support and improve
878         handling of warning CFLAGS for stages 1 and 2.
879         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
880         * configure: Regenerate.
881
882 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
883
884         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
885         * contrib.texi: New file.
886
887 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
888
889         * loop.c (basic_induction_var): Avoid double recording of an increment.
890
891 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
892
893         * Back out this patch:
894         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
895           * loop.h (struct induction): Add multi_insn_incr.
896           * loop.c (basic_induction_var): New multi_insn_incr argument.
897           Set it if we search back through previous insns for the biv.
898           (record_biv): New multi_insn_incr argument; fill in struct induction.
899           (strength_reduce): Discard an iv with multiple bivs, any of
900           which require multiple insns to increment.
901
902         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
903
904 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
905
906         * rtl.h (loc_mentioned_in_p): Declare.
907         * reload.c (loc_mentioned_in_p): Moved from here...
908         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
909         Fix loop increment for 'E' handling.
910         * loop.c (strength_reduce): When doing biv->giv conversion,
911         take multi-insn biv increments into account.
912
913 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
914
915         * stmt.c (expand_end_bindings): Look through NOTEs to find a
916         BARRIER.
917
918 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
919
920         * calls.c (expand_call): Handle cleanups in tail-recursion
921         arguments analagously to cleanups in sibling calls.
922
923 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
924
925         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
926         All callers changed.
927
928 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
929
930         * expr.c (expand_assignment, store_expr, expand_expr,
931         expand_expr_unaligned): Set in_check_memory_usage while emitting
932         chkr_check_addr libcall.
933
934 2000-05-24  Nick Clifton  <nickc@cygnus.com>
935
936         * fold-const.c (extract_muldiv): When constructing a
937         multiplier/divisor, do not expect const_binop to correctly
938         determine if overflow has occured, so check explicitly.
939
940 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
941
942         * c-decl.c (build_enumerator): Don't modify the value's type,
943         convert it.
944
945 2000-05-24  Andreas Jaeger  <aj@suse.de>
946
947         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
948
949 2000-05-24  Eric Christopher <echristo@cygnus.com>
950
951         * configure.in: Redefine inhibit_libc conditions.
952         * libgcc2.c: Remove inhibit_libc conditional define.
953         * configure: Regenerate.
954
955 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
956
957         * configure.in:  For --enable-languages=LIST, check for empty LIST.
958         * configure:  Regenerate.
959
960 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
961
962         * pdp11.h (STACK_BOUNDARY): Define.
963
964 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
965
966         * ifcvt.c (if_convert): Update life info globally.
967
968 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
969
970         * emit-rtl.c (unshare_all_decls): New function.
971         (unshare_all_rtl): Call it.
972
973 2000-05-23  Nick Clifton  <nickc@cygnus.com>
974
975         * configure.in: Treat 'strongarm' as if it were 'arm' when
976         determining cpu type.
977
978         * configure: Regenerate.
979
980         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
981         where constant strings are involved.
982
983         * config/arm/arm.h (arm_condition_codes): Change type to 'const
984         char *'.
985
986         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
987         cases where constant strings are involved.
988
989 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
990
991         * config/sh/sh.c (gen_far_branch, split_branches): Update
992         to reflect new prototypes for redirect_jump and invert_jump.
993         (sh_insn_length_adjustment): Get rid of const warnings.
994
995 2000-05-23  Kazu Hirata  <kazu@hxi.com>
996
997         * invoke.texi (Options for Debugging Your Program or GCC): Update
998         the names of dump files.
999
1000 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
1001
1002         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
1003         * configure: Regenerated.
1004
1005 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
1006
1007         * simplify-rtx.c (SIGN_EXTEND): New macro.
1008         (simplify_unary_operation, simplify_binary_operation, 
1009         simplify_relational_operation): Use SIGN_EXTEND.  Make low
1010         halves of (low, high) pairs unsigned if they weren't already.       
1011         (simplify_ternary_operation): Cast INTVAL to unsigned before
1012         comparing to a MODE_BITSIZE.
1013
1014 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1015
1016         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
1017         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
1018         
1019         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
1020         gcc_AC_NEED_DECLARATIONS.
1021
1022         * dwarfout.c: Don't prototype time().
1023
1024         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
1025
1026         * system.h: Likewise.
1027
1028         * toplev.c: Likewise.
1029
1030 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
1031
1032         * c-decl.c (pushdecl): Invert sense of test for non-global types.
1033
1034 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1035
1036         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
1037
1038 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
1039
1040         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
1041
1042 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1043
1044         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
1045         (alpha_start_function): Never write ..ng label if VMS or NT.
1046         (alpha_align_insns): Remove GP_IN_USE arg.
1047         Alignment now unsigned.
1048         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
1049         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
1050         and two define_insn's.
1051
1052 2000-05-22  Richard Henderson  <rth@cygnus.com>
1053
1054         * combine.c (simplify_comparison): Use trunc_int_for_mode.
1055
1056 2000-05-22  Richard Henderson  <rth@cygnus.com>
1057
1058         * stor-layout.c (place_field): Change rli->size to rli->offset.
1059
1060 2000-05-22  Richard Henderson  <rth@cygnus.com>
1061
1062         * function.c (thread_prologue_and_epilogue_insns): Make sure 
1063         existing line number notes appear after the prologue.
1064
1065 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1066
1067         * config/alpha/alpha.c (alpha_fnname): New static variable.
1068         (print_operand, case '~'): New case.
1069         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
1070         (alpha_start_function): Set alpha_fnname.
1071         Write "ng" label if no ldgp; don't write ldgp insn.
1072         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
1073         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
1074
1075 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
1076
1077         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
1078         on deleted labels.
1079
1080 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
1081
1082         * varasm.c (eh_frame_section): Revert change to argument list.
1083
1084 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1085
1086         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
1087         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
1088         
1089         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
1090         dangling "else" that causes "break" to be conditional.
1091         Also remove unneeded code at start.
1092
1093 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
1094
1095         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
1096         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
1097         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
1098
1099 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
1100
1101         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
1102         just one argument.
1103
1104 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1105
1106         * alias.c (record_component_aliases): New function.
1107         * tree.h: Clean up some declarations and comments.
1108         (record_component_aliases): New declaration.
1109         * tree.c (get_alias_set): If type and has alias set, use it.
1110
1111 2000-05-22  Richard Henderson  <rth@cygnus.com>
1112
1113         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
1114         IF_THEN_ELSE to a setcc form.
1115         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
1116
1117 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1118
1119         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
1120         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
1121
1122 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1123
1124         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
1125         not a PARALLEL.
1126
1127 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
1128
1129         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
1130         * config/mn10300/mn10300.c (print_operand): Likewise.
1131
1132         * final.c (split_double): Right shift of negative values is not
1133         portable.
1134
1135         * ifcvt.c (if_convert): Scan and kill dead code.
1136
1137         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
1138
1139 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
1140
1141         * diagnostic.c: Eliminate implicit int.
1142         * except.c, gcc.c: Add static prototypes.
1143         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
1144         * gensupport.c (process_rtx): Use XVEC to initialize vector
1145         slot of 'split'.
1146
1147         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static 
1148         debug_reg_names instead of static reg_names.  If not, define
1149         global reg_names.
1150         * regclass.c: Don't define global reg_names unless
1151         DEBUG_REGISTER_NAMES is defined.
1152
1153         * reload1.c (order_regs_for_reload): Remove unused variable.
1154         * varasm.c: Include output.h after defaults.h.  Define
1155         eh_frame_section as function of no args, not of unspecified args.
1156
1157         * gcc.c: Constify argbuf; arguments to store_arg,
1158         process_command, main; elements of struct command and struct
1159         switchstr; local variables in execute, process_command, main.
1160
1161 2000-05-20  Bruce Korb  <bkorb@gnu.org>
1162
1163         * fixinc/inclhack.def:  many applications of c_fix=format + tests
1164         * fixinc/check.diff:  regenerated
1165         * fixinc/fixincl.x:  regenerated
1166
1167 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1168
1169         * alias.c: Clarify some comments.
1170         (record_base_value): REGNO is unsigned.
1171         * rtl.h (record_base_value): Likewise.
1172
1173         * alias.c (aliases_everything_p): Don't special-case QImode here.
1174         * c-common.c (c_get_alias_set): Do it here.
1175         Handle BIT_FIELD_REF by getting alias info for arg.
1176         Use POINTER_TYPE_P.
1177
1178 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
1179
1180         * mklibgcc.in: Restore rule to create ${dir}.
1181
1182 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
1183
1184         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
1185         GCC_FOR_TARGET used by MULTILIBS.
1186         * mklibgcc.in: Make sure each .o file depends on the
1187         directory it will be in.
1188         Make the multilib directory depends libgcc.
1189
1190 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
1191
1192         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
1193
1194 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
1195
1196         * fold-const.c (make_range): Handle degenerated intervals.
1197         Fixes c-torture/execute/991221-1.c
1198
1199 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1200
1201         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
1202         * reload.c (find_equiv_reg): Likewise.
1203         * alias.c (init_alias_analysis): Likewise.
1204         Only call prologue_epilogue_contains on insns.
1205         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
1206         * bb-reorder.c (hard-reg-set.h): Include earlier.
1207         * haifa-sched.c (hard-reg-set.h): Likewise.
1208         * ifcvt.c (hard-reg-set.h): Likewise.
1209         * local-alloc.c (hard-reg-set.h): Likewise.
1210         * loop.c (hard-reg-set.h): Likewise.
1211         * predict.c (hard-reg-set.h): Likewise.
1212         * regrename.c (hard-reg-set.h): Likewise.
1213         * flow.c (hard-reg-set.h): Likewise.
1214         (reg_set_to_hard_reg_set): New function.
1215         * bitmap.c (regs.h, basic-block.h): No longer include.
1216         (bitmap.h): Now include.
1217         * conflict.c (hard-reg-set.h): Include.
1218         * profile.c (hard-reg-set.h): Likewise.
1219         * print-rtl.c (hard-reg-set.h): Likewise.
1220         * sbitmap.c (hard-reg-set.h): Likewise.
1221         * toplev.c (hard-reg-set.h): Likewise.
1222         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
1223         * hard-reg-set.h (reg_names): Now constant.
1224         * regs.h (reg_names): Likewise.
1225         * regclass.c (reg_names): Likewise.
1226         * loop.h (basic-block.h): No longer include.
1227         (bitmap.h): Now include.
1228         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
1229         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
1230         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
1231
1232 2000-05-19  Jan Hubicka  <jh@suse.cz>
1233             Richard Henderson  <rth@cygnus.com>
1234
1235         * basic-block.h (struct edge_def): New field "count".
1236         (struct basic_block_def): Likewise.
1237         * flow.c (entry_exit_blocks): Add count fileds.
1238         (split_edge): Keep count information up-to-date.
1239         (dump_edge_info, dump_flow_info): Dump count fields.
1240
1241         * final.c (count_instrumented_edges): Rename to edge from arc.
1242         (end_final): Update users.
1243         * profile.c: Include expr.h, basic-block.h.
1244         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
1245         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
1246         (ignore_next_note, return_label_execution_count): Kill.
1247         (bbg_file_name, da_file_name): Kill.
1248         (edge_info, bb_info): New structures.
1249         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
1250         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
1251         (total_num_edges_instrumented): Likewise.
1252         (init_arc, expand_spanning_tree): Kill.
1253         (fill_spanning_tree, tablejump_entry_p): Kill.
1254         (instrument_edges):  Rewrite from instrument_arcs to use
1255         commit_edge_insertions infrastructure.
1256         (compute_branch_probabilities): Remove arguments; rewrite for
1257         CFG infrastructure; use rtl_dump_file directly.
1258         (branch_prob, find_spanning_tree): Likewise.
1259         (union_groups, find_group): New.
1260         (init_branch_prob): Make bbg_file_name and da_file_name local.
1261         (end_branch_prob): Use rtl_dump_file directly.
1262         (init_edge_profiler): Rename to edge from arc.
1263         (output_arc_profiler): Kill.
1264         (gen_edge_profiler): New.
1265         (output_func_start_profiler): Turn off profiling.  Make the
1266         constructor static when we can.
1267         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
1268
1269         * toplev.c (DFI_flow): Remove.
1270         (DFI_cfg, DFI_life): New.
1271         (dump_file): Update accordingly.
1272         (compile_file): Call end_branch_prob if profile_arc_flag too.
1273         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
1274         profiling after the CFG is built.  Move flow1 life analysis to
1275         DFI_life.  Always estimate remaining probabilities.
1276
1277 2000-05-19  Richard Henderson  <rth@cygnus.com>
1278
1279         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
1280
1281         * flow.c (make_edges): The sibling call edge to exit is abnormal.
1282
1283 2000-05-19  Richard Henderson  <rth@cygnus.com>
1284
1285         * jump.c (redirect_jump): Add delete_unused argument.  Don't
1286         remove labels and code following when LABEL_NUSES goes to zero.
1287         (invert_jump): Likewise.
1288         (jump_optimize_1): Fix redirect/invert arguments.
1289         (do_cross_jump, thread_jumps): Likewise.
1290         * flow.c (split_edge): Likewise.
1291         * reorg.c (optimize_skip): Likewise.
1292         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
1293         * profile.c (instrument_arcs): Likewise.
1294         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
1295         * rtl.h: Update prototypes.
1296
1297 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
1298
1299         * ssa.c (convert_from_ssa): Tell life_analysis we need death 
1300         notes.
1301         (make_regs_equivalent_over_bad_edges): Only look at abnormal
1302         critical edges.
1303
1304 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
1305
1306         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
1307         past l1 when deleting whitespace and markers.              
1308
1309         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
1310         * cpplib.c (do_unassert): Put the list to compare against on
1311         the stack.
1312
1313 2000-05-19  Bruce Korb  <bkorb@gnu.org>
1314
1315         * fixinc/README:  cleaned up old documentation
1316         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
1317         * fixinc/check.tpl: compute the list of needed directories
1318         emit "#if defined(name)" because of conflict
1319         omit machine name differences from output differences
1320         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
1321         (machine_name): change test text to use `sed' markers
1322         * fixinc/fixincl.x: regen
1323
1324 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1325
1326         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
1327         a CONSTRUCTOR.
1328
1329 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
1330
1331         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
1332         it to match the current practice.
1333
1334 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
1335
1336         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
1337
1338 2000-05-18  Richard Henderson  <rth@cygnus.com>
1339
1340         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
1341         * rtl.h (insn_dependant_p): Declare it.
1342         * loop.c (strength_reduce): Use it.
1343
1344 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
1345
1346         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
1347         16-bit and 64-bit clean-up.
1348
1349 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
1350
1351         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
1352         * configure: Rebuilt.
1353
1354 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
1355
1356         * genopinit.c: Use $ for escape sequences in optab patterns.
1357         Remove backslashes from optab patterns.  Change $A, $B, $C to
1358         expand to (int) whatever instead of just whatever; remove
1359         explicit (int) from all optab patterns.
1360
1361         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
1362         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
1363         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
1364         genrecog.c: Remove private copies of xmalloc, xrealloc, and
1365         xstrdup.
1366
1367 2000-05-18  Richard Henderson  <rth@cygnus.com>
1368
1369         * jump.c (jump_optimize_1): Base minimum insn count during
1370         find_cross_jump on BRANCH_COST.
1371
1372 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
1373
1374         * print-rtl.c (print_rtx): Only print note line number as string
1375         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
1376         * final.c (final_scan_insn): Do nothing for note line number 0.
1377
1378 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
1379
1380         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
1381         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
1382         NOTE_INSN_DELETED_LABEL.
1383
1384 2000-05-18  Nick Clifton  <nickc@cygnus.com>
1385
1386         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
1387         uninitialised data in .rodata not .bss, and do not interpret an
1388         error in the initialisation value as meaning that the variable
1389         should be placed in the .bss section.
1390
1391 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
1392
1393         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
1394         not `$ac_cv_prog_cc_cc_c_o'.
1395         * configure: Regenerated.
1396
1397 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
1398             Richard Henderson  <rth@cygnus.com>
1399
1400         * c-common.h (enum c_tree_index): Add g77 type entries.
1401         (g77_integer_type_node, g77_uinteger_type_node): New.
1402         (g77_longint_type_node, g77_ulongint_type_node): New.
1403         * c-decl.c (init_decl_processing): Initialize them.
1404
1405 2000-05-18  Richard Henderson  <rth@cygnus.com>
1406
1407         * config/h8300/h8300.md (subs patterns): Use %G to negate.
1408
1409         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
1410         (small_power_of_two): Likewise; use exact_log2.
1411         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
1412         (output_adds_subs): Remove.
1413         (two_insn_adds_subs_operand): New.
1414         (split_adds_subs): New.
1415         * config/h8300/h8300-protos.h: Update.
1416         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
1417         (CONST_OK_FOR_L): Match strict adds operands.
1418         (CONST_OK_FOR_N): Match struct subs operands.
1419         * config/h8300/h8300.md (adds_subs insns): Remove.
1420         (addhi patterns): Output adds/subs directly.
1421         (addsi_h8300h): Likewise.
1422         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
1423
1424 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
1425
1426         * cppexp.c (parse_assertion): New.
1427         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
1428         (_cpp_parse_expr): Remove case '#'.  Don't set
1429         parsing_if_directive.
1430         * cpphash.c (collect_objlike_expansion,
1431         collect_funlike_expansion, collect_params,
1432         _cpp_create_definition): The list no longer has a trailing
1433         VSPACE token.
1434         * cpphash.h (enum node_type): Add T_ASSERTION.
1435         (struct hashnode): Remove aschain, add pred.
1436         (struct predicate): New.
1437         Update prototypes.
1438
1439         * cpplex.c (expand_token_space): Handle both offset and
1440         nonoffset lists.
1441         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
1442         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
1443         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
1444         _cpp_equiv_toklists): New.
1445         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
1446         stop at any single-character token, not just newline.
1447         (_cpp_lex_token): Remove special cases for #define and #if.
1448         (cpp_get_token): Expect # as a separate token type.  Remove
1449         DIRECTIVE case.
1450         (_cpp_get_directive_token): Remove DIRECTIVE case.
1451         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
1452
1453         * cpplib.c (_cpp_check_directive): Set dirno and
1454         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
1455         (_cpp_handle_directive): Run # <number> through the same logic
1456         as normal directives.
1457         (do_define): Don't set parsing_define_directive.  Use
1458         _cpp_scan_until.  The list does not have a VSPACE at the end.
1459         (do_if): Save, clear, and restore only_seen_white around 
1460         _cpp_parse_expr.
1461         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
1462         (do_assert, do_unassert): Rewrite.
1463
1464         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
1465         (LIST_OFFSET): New flag.
1466         (struct cpp_toklist): Replace dir_handler and dir_flags with
1467         dirno and flags.
1468         (struct cpp_reader): Remove parsing_if_directive and
1469         parsing_define_directive.
1470
1471 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1472
1473         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
1474         following the cabs decl which terminate on the following line.
1475         Add the corresponding test_text case.
1476
1477 2000-05-18  Neil Booth  <NeilB@earthling.net>
1478
1479         * cppinit.c (cpp_reader_init): Initialise col_adjust and
1480         default tab stop size.
1481         (no_num, OPT_ftabstop): New.
1482         (handle_option): Handle "ftabstop=" command-line option.
1483         (print_help): Document it.
1484         * cpplex.c (COLUMN): Remove.
1485         (handle_newline): Reset col_adjust.
1486         (skip_whitespace): Update col_adjust as tabs encountered.
1487         (_cpp_lex_line): Update to use col_adjust.  Call
1488         skip_whitespace for all whitespace.
1489         * cpplib.h (struct cpp_options): New member tabstop.
1490         (struct cpp_reader): New member col_adjust.
1491         (CPP_BUF_COL): Update.
1492         (CPP_BUF_COLUMN): New.
1493         * cpp.texi: Document "-ftabstop=" command line option.
1494
1495 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
1496
1497         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
1498         files.
1499         * configure: Rebuilt.
1500
1501 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
1502
1503         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
1504
1505         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
1506         HOST_BITS_PER_WIDE_INT is >= 64.
1507
1508 2000-05-17  Richard Henderson  <rth@cygnus.com>
1509
1510         * jump.c (jump_optimize_1): Remove inactive but real insns
1511         in jump-to-next-insn optimization.
1512
1513 2000-05-17  Richard Henderson  <rth@cygnus.com>
1514
1515         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
1516         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
1517         Don't call recompute_reg_usage if no_new_pseudos is true.
1518         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
1519         Return true if we did work; update global life information.
1520         * basic-block.h (optimize_mode_switching): Update decl.
1521
1522 2000-05-17  Neil Booth  <neilb@earthling.net>
1523
1524         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
1525
1526 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
1527
1528         * cpplib.c: New feature, #pragma system_header.
1529         * cpp.texi: Document special treatment of system headers, and
1530         the various mechanisms to get a header that special treatment.
1531
1532 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1533
1534         * system.h (offsetof): Define at the very end, to ensure we prefer
1535         the platform's definition if available.
1536
1537 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1538
1539         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
1540         * fixinc/server.c: likewise
1541         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
1542         + #ifdef debugging code + use #def constant for
1543         sub-pattern count
1544         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
1545         on C++ math namespace
1546
1547 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1548
1549         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1550         Don't check the return value of sprintf.  Use asprintf to avoid
1551         buffer overflows.
1552
1553 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
1554
1555         * flags.h (warn_unused_function, warn_unused_label,
1556         warn_unused_parameter, warn_unused_variable, warn_unused_value):
1557         Replace ``warn_unused''.
1558         (set_Wunused): Add declaration.
1559         * toplev.c (set_Wunused): New function.
1560         (warn_unused_function, warn_unused_label, warn_unused_parameter,
1561         warn_unused_variable, warn_unused_value): New variables.
1562         (W_options): Add -Wunused-function, -Wunused-function,
1563         -Wunused-label, -Wunused-parameter, -Wunused-variable and
1564         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
1565
1566         * toplev.c (decode_W_option): Update -Wunused flags by calling
1567         set_Wunused.
1568         * c-decl.c (c_decode_option): Ditto for -Wall.
1569
1570         * stmt.c (expand_expr_stmt, expand_expr_stmt,
1571         warn_about_unused_variables): Replace warn_unused with more
1572         explicit warn_unused_value et.al.
1573         * function.c (expand_function_end): Ditto.
1574         * c-typeck.c (internal_build_compound_expr,
1575         internal_build_compound_expr): Ditto.
1576         * c-decl.c (poplevel, pop_label_level): Ditto.
1577         * toplev.c (check_global_declarations): Replace warn_unused with
1578         check for either warn_unused_function or warn_unused_variable.
1579
1580         * gcc.1, invoke.texi (Warning Options): Document
1581         -Wunused-function, -Wunused-function, -Wunused-label,
1582         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
1583
1584 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
1585
1586         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
1587         $(srcdir), not in the current directory.
1588
1589 2000-05-16  Richard Henderson  <rth@cygnus.com>
1590
1591         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
1592         assembler supports it.
1593         (.fini, .init): Use a gp-relative indirect call.
1594         (__do_global_dtors_aux): Preserve the gp; rebundle.
1595         (__do_frame_setup): Likewise.
1596         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
1597         (.init): Use a gp-relative indirect call.
1598         (__do_global_ctors_aux): Preserve the gp.
1599
1600 2000-05-16  Richard Henderson  <rth@cygnus.com>
1601
1602         * flow.c (commit_one_edge_insertion): Be prepared for a return
1603         insn to be inserted on the edge with a normal jump.
1604         * jump.c (jump_optimize_1): Don't look to create return isns.
1605
1606         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
1607         * jump.c (jump_optimize_1): Likewise.
1608         (returnjump_p): Verify the argument is a JUMP_INSN.
1609         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
1610
1611 2000-05-16  Nick Clifton  <nickc@cygnus.com>
1612
1613         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
1614         GET_RTX_CLASS (GET_CODE ()) == 'i'.
1615         (large_insn_p): Ditto.
1616         (m32r_is_insn): New function: Return true if the insn contains
1617         an executable instruction.
1618         (m32r_adjust_insn): Use m32r_is_insn.
1619         (m32r_sched_reorder): Use m32r_is_insn.
1620         (m32r_sched_variable_issue): Use m32r_is_insn.
1621
1622 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1623
1624         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
1625         VAR_DECL.
1626
1627         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
1628
1629         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
1630         according to given options.
1631
1632 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
1633
1634         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
1635         if X has VOIDmode either.
1636         (LIMIT_RELOAD_CLASS): Similarly.
1637
1638         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
1639         not "general_operand" to match the processor's capabilities.
1640
1641 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1642
1643         * fixinc/README:  corrected return address
1644         * fixinc/check.diff:  regenerate, now that test works
1645         * fixinc/fixfixes.c(format_fix,format_write): reformatted
1646         (char_macro_def_fix,char_macro_use_fix): corrected and
1647         rewrote to use regex to parse the text
1648         * fixinc/inclhack.def: more testing
1649         * fixinc/fixincl.x:  regenerated
1650
1651         * fixinc/inclhack.def: added several "test_text" attributes
1652         changed several fixes to use `c_fix = format'
1653         re-alphabetized the fixes
1654
1655         * fixinc/check.diff: regenerate
1656         * fixinc/fixincl.x: regenerate
1657         * fixinc/check.tpl: added `sparc' and `netinet' to the list
1658         of created dirs
1659
1660
1661 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
1662
1663         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
1664
1665 2000-05-15  Richard Henderson  <rth@cygnus.com>
1666
1667         * toplev.c (rest_of_compilation): Run full jump pass before
1668         find_basic_blocks of flow2.
1669
1670 2000-05-15  Richard Henderson  <rth@cygnus.com>
1671
1672         * jump.c: Fix typos and clarify commentary from last change.
1673         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
1674         (safe_to_remove_jump_p): Remove.
1675         (condjump_label): Use pc_set.
1676
1677 2000-05-15  Richard Henderson  <rth@cygnus.com>
1678
1679         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
1680         that get in the way after reload.
1681         (cond_exec_process_if_block): Skip a label heading THEN block.
1682
1683 2000-05-15  Richard Henderson  <rth@cygnus.com>
1684
1685         * varasm.c (output_constant_pool): Abort instead of converting
1686         (improperly) deleted labels to zero.
1687
1688 2000-05-16  Neil Booth  <NeilB@earthling.net>
1689
1690         * cpplex.c (parse_string2): Update comment.
1691         (cpp_lex_line): No special assertion treatment for '('.
1692         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
1693         * cpplib.h (SYNTAX_ASSERT): Remove.
1694
1695 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1696
1697         * jump.c (condjump_p):  Mark as depreached.
1698         (any_condump_p): New.
1699         (any_uncondump_p): New.
1700         (pc_set): New.
1701         (safe_to_remove_jump_p): New.
1702         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
1703         safe_to_remove_jump_p): Declare.
1704
1705 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1706
1707         * calls.c: Re-install both patches reverted by last patch.
1708         (struct arg_data): New field tail_call_reg.
1709         (initialize_argument_information): Initialize tail_call_reg
1710         (load_register_parameters): New argument flags, use
1711         tail_call_reg when emiting tail call sequence.
1712         (expand_call): Update call of load_register_parameters;
1713         copy unadjusted_args_size to adjusted_args_size.
1714
1715 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1716
1717         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
1718         and bct_p parameters to flags.
1719         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
1720         * rtl.h (loop_optimize): Update prototype.
1721         * toplev.c (rest_of_compilation): Update call of loop_optimize.
1722
1723 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
1724
1725         * calls.c (expand_call): Move expand_start_target_temps call after
1726         start_sequence().
1727
1728 2000-05-15  Neil Booth  <NeilB@earthling.net>
1729
1730         * cpphash.c (trad_stringify, warn_trad_stringify,
1731         collect_params): Make some pointers pointers to const.
1732         * cpplex.c (auto_expand_name_space) Guaranteed to always
1733         expand by at least one character.
1734         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
1735         (struct token_spelling): Use const U_CHAR * rather than PTR.
1736         (expand_name_space): Fix up token pointers if name space
1737         is moved when expanding.
1738         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
1739         parse_string2, save_comment, spell_token, cpp_output_list):
1740         Update so the routines handle tokens with a direct pointer to
1741         their text, rather than an offset into the token's list's namebuf.
1742         (_cpp_lex_line): Rearrange for clarity.
1743
1744         * cpplib.c (_cpp_check_directive): Similarly.
1745         (do_define): Make SYM a pointer to const.
1746         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
1747         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
1748         (TOK_OFFSET): Delete.
1749         (TOK_NAME): Update.
1750
1751 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
1752
1753         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
1754         64-bit ABI.
1755
1756         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE 
1757         into account.
1758         (logical_u_operand): Delete.
1759         (non_logical_cint_operand): Rewrite to take MODE into account.
1760         (non_logical_u_cint_operand): Delete.
1761         (boolean_operator): New function.
1762         (print_operand): Add new %q operand.
1763         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
1764         remove logical_u_operand and non_logical_u_cint_operand,
1765         update logical_operand and non_logical_cint_operand.
1766         * config/rs6000/rs6000.md: Rewrite the patterns for performing
1767         logical operations to use %q.
1768
1769         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
1770         (movdi): Make similar to movsi.
1771         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
1772         is no such thing as a DImode CONST_DOUBLE.
1773         * config/rs6000/rs6000.c (output_toc): Likewise.
1774         
1775         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
1776         codes when old mnemonics are in use.  Print register names
1777         for cc registers when requested.
1778
1779         * optabs.c (expand_float): Don't allow mode widening that causes
1780         double rounding.
1781
1782         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
1783         flags to their current names -maix64 and -maix32.
1784
1785 2000-05-14  Bruce Korb  <bkorb@gnu.org>
1786
1787         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
1788         and/or after current text of file
1789         * fixinc/fixlib.c(must_malloc):
1790         * fixinc/fixlib.h(must_malloc): + reformatting
1791         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
1792         with usages of ``c_fix = wrap;''
1793         Add several tests and use the ``c_fix = format'' fixer more.
1794         * fixinc/fixincl.x: regen
1795         * fixinc/check.diff: regen
1796         * fixinc/check.tpl: emit the associated header with the missing
1797         test message
1798
1799 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
1800
1801         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
1802         variables $src and $dst.
1803         
1804 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
1805
1806         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
1807         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
1808         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
1809         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
1810         fields. 
1811         (set_message_prefixing_rule): Declare.
1812
1813         * diagnostic.c: (current_prefixing_rule): New variable.
1814         (set_message_prefixing_rule): Define.
1815         (output_set_prefix): Adjust buffer->emitted_prefix_p.
1816         (init_output_buffer): Adjust Initialization.
1817         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
1818         
1819 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
1820
1821         * ifcvt.c (if_convert): Do not free NULL.
1822
1823 2000-05-12  Nick Clifton  <nickc@cygnus.com>
1824
1825         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
1826         to move a double word value.
1827         (di_operand): New function: Return true if the operand is suitbale
1828         for a double word move operation.
1829         (nonimmediate_di_operand): New function: Return true if the
1830         operand is a DImode register or MEM.
1831
1832         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
1833         nonimmediate_di_operand.
1834
1835         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
1836         nonimmediate_di_operand.
1837
1838         * config/fr30/fr30.md (movdi): New pattern.  Required because
1839         other patterns generate DImode results.
1840         (movdi_insn): New pattern.
1841
1842 2000-05-12  Richard Henderson  <rth@cygnus.com>
1843
1844         * config/alpha/alpha.c (struct shadow_summary): Define
1845         bitfields as type unsigned int.
1846
1847 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
1848
1849         * config/avr/t-avr: Added definition of FLOAT while generates
1850         fp-bit.c
1851
1852         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
1853         peepholes for tst+jump = sbrs/sbrc optimization.
1854
1855 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
1856
1857         * expr.c (emit_push_insn): Do not adjust stack pointer when
1858         preallocating.
1859
1860 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
1861
1862         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
1863         * system.h (offsetof): ... to here.
1864
1865 2000-05-12  Richard Henderson  <rth@cygnus.com>
1866
1867         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
1868         * final.c (final_end_function): Use app_disable.  Rearrange note
1869         handling into a switch.  Emit deleted labels.
1870         (output_asm_label): Generate label strings for deleted labels.
1871         * flow.c (tail_recursion_label_list): New.
1872         (find_basic_blocks_1): Set label_value_list directly.  Collect list
1873         of tail recursion labels from call_placeholders.  Don't add deleted
1874         labels to the label value list.
1875         (cleanup_cfg): Use free_EXPR_LIST_list.
1876         (flow_delete_insn_chain): Turn non-removable labels into notes.
1877         (flow_delete_block): Don't disable deleting the block because of
1878         a non-removable label.
1879         (tail_recursion_label_p): New.
1880         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
1881         because of a label.
1882         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
1883         jump table.
1884         (merge_blocks): Disable a merge because of tail recursion labels.
1885         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
1886         Use a more accurate measure of not merging the join block.
1887         (find_if_block): Don't disable conversion because of a label.
1888         (find_if_case_1, find_if_case_2): Likewise.
1889         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
1890         element when copying.
1891         (squeeze_notes): Also leave EH notes.
1892         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
1893         REG_LABEL notes.
1894         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
1895         deleting a label.
1896         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
1897         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
1898         referring to a deleted label.  Convert tail handling to a switch.
1899         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
1900         for NOTE_INSN_DELETED_LABEL.
1901         (NOTE): Fix commentary.
1902         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
1903         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
1904         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
1905         (LABEL_NUSES, LABEL_REFS): Likewise.
1906         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
1907
1908 2000-05-12  Bruce Korb  <bkorb@gnu.org>
1909
1910         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
1911         * fixinc/check.diff: updated
1912         * fixinc/inclhack.def: corrected & added some test_text-s
1913         * fixinc/genfixes: removed unneeded options to autogen invocation
1914         * fixinc/fixincl.tpl: Specified the output file
1915         * fixinc/fixfixes.c: visual appearance
1916         * fixinc/fixincl.x: regenerate
1917
1918 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
1919
1920         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
1921         CTRL_defn_fix): Delete.
1922         (fix_char_macro_defines, fix_char_macro_uses): Rename to
1923         char_macro_def_fix and char_macro_use_fix, respectively.  Put
1924         them into the FIXUP_TABLE.  Get the string to search for from
1925         a c_fix_arg.
1926
1927         (format_write): New function.
1928         (format_fix): Use it.
1929
1930         (FIX_PROC_HEAD): Constify text parameter.
1931         (machine_name_fix): Constify all char *s.
1932         * fixtests.c (skip_quote): Remove double static.
1933
1934         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
1935         ctrl_use_quotes): Update for new scheme.
1936         * fixincl.x: Regenerate.
1937
1938 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
1939
1940         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
1941         DWARF2_DEBUG.
1942         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
1943         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
1944
1945 2000-05-11  Robert Lipe <robertlipe@usa.net>
1946
1947         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
1948         * fixincl.x: Regenerate.
1949
1950 2000-05-11  Richard Henderson  <rth@cygnus.com>
1951
1952         * calls.c: Revert both 05-09 patches.
1953
1954 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
1955
1956         * config/mn10300/mn10300.c (print_operand): Print FP constants in
1957         hexadecimal.
1958         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
1959         for FP values.
1960
1961         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
1962         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
1963
1964 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
1965
1966         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
1967
1968 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1969
1970         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
1971
1972 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
1973
1974         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
1975         * config/avr/avr.c (jump_over_one_insn_p): New function.
1976         * config/avr/avr.md: New peepholes added. Output test and
1977         conditional jump to "sbrc" or "sbrs" command.
1978
1979 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
1980
1981         * cppmain.c (main): Use IS_DIR_SEPARATOR.
1982
1983 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
1984
1985         * except.c (find_exception_handler_labels_1): New function.
1986         (find_exception_handler_labels): Split into two functions, dive
1987         into CALL_PLACEHOLDERs when looking for exception handler labels.
1988
1989 2000-05-11 Stan Cox <scox@cygnus.com>
1990
1991         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
1992         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
1993         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
1994
1995 2000-05-11  Bruce Korb  <bkorb@gnu.org>
1996
1997         * fixinc/fixfixes.c (double_slash_fix):  obsolete
1998         (else_endif_label_fix): obsolete
1999         (format_fix):  new, unused as yet
2000         (main): obsolete
2001         * fixinc/fixlib.h: added fix description struct for use by format_fix
2002         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
2003         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
2004         modules.  Removed the vestiges of the script version.
2005         Added support for "make check".
2006         * fixinc/check.diff: base diff file (needs work!!)
2007         * fixinc/check.tpl: quiet the fixup output
2008         * fixinc/fixtests.c (main): obsolete
2009         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
2010         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
2011
2012 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
2013
2014         * toplev.c (rest_of_compilation): Remove dead code after
2015         combine.
2016
2017 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
2018
2019         * cpphash.c (collect_funlike_expansion): Make "# is not
2020         followed by a macro argument name" a pedwarn, not an error.
2021         Preserve the # in the output.  Suppress the warning if lang_asm.
2022
2023 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
2024
2025         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
2026         * configure: Rebuilt.
2027
2028 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
2029
2030         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
2031
2032 2000-05-10  Kazu Hirata  <kazu@hxi.com>
2033
2034         * combine.c (try_combine): Fix a typo.
2035
2036 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
2037
2038         * config/ia64/ia64.md (insv): Add comment.
2039
2040 2000-05-10  Richard Henderson  <rth@cygnus.com>
2041
2042         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
2043         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
2044         dependancies on FPBIT and DPBIT.
2045
2046 2000-05-10  Nick Clifton  <nickc@redhat.com>
2047
2048         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
2049         when optimising for size.
2050         (mark_used_regs:) Ditto.
2051         (try_pre_increment_1): Ditto.
2052
2053 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
2054
2055         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
2056         Make error message friendlier.
2057
2058         * cpphash.h (struct hashnode): Use struct hack for name
2059         member.
2060         * cpphash.c (struct hashdummy): New.
2061         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
2062         (make_HASHNODE): No need to set ->name pointer.  Correct
2063         setting of p.
2064         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
2065
2066 2000-05-10  Richard Henderson  <rth@cygnus.com>
2067
2068         * flow.c (find_basic_blocks_1): Remove any spare bb_note
2069         after completion.
2070
2071 2000-05-10  Bruce Korb  <bkorb@gnu.org>
2072
2073         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
2074
2075 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
2076
2077         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
2078         after we enter .debug.
2079
2080 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
2081
2082         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
2083         abstract instance of a nested inline function.
2084
2085         * stor-layout.c (finish_record_layout): finalize_type_size
2086         before laying out the pending_statics.
2087
2088 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
2089
2090         * cpplex.c (spell_token): New function.
2091         (spell_string, spell_comment, spell_name): fold into
2092         spell_token.    
2093         (I, S): Add macros.
2094         (E, H): Remove macros.
2095         (save_comment): Save comment opening characters too.
2096         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
2097         handling.
2098         * cpplib.h (I, S): Add macros.
2099         (E, H): Remove macros.
2100         (TTYPE_TABLE): Update entries for new speller.
2101         (SYNTAX_ASSERT): Remove.
2102
2103 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
2104
2105         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
2106         when removing escaped newlines.  Reverse sense of test for
2107         escaped newline.
2108
2109 2000-05-09  Richard Henderson  <rth@cygnus.com>
2110
2111         * flow.c (find_basic_blocks_1): Do not delete the first
2112         bb_note we run across.
2113         (create_basic_block): Use reorder_insns to move an existing
2114         bb_note to the correct place.
2115
2116 2000-05-09  Richard Henderson  <rth@cygnus.com>
2117
2118         * calls.c (expand_call): Increment currently_expanding_call
2119         before calling optimize_tail_recursion.
2120
2121 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2122
2123         * reload1.c (reload_combine): Fix errors in last change.
2124
2125 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
2126
2127         * gcc.c (used_arg): Skip over a semicolon at the end of the
2128         split-up loop; don't break out of it.
2129
2130         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
2131         (tree.o): Depend on output.h.
2132
2133         * c-decl.c (pending_invalid_xref_file,
2134         current_function_prototype_file): Constify.
2135         (pushdecl): Constify a local char *.
2136         (define_label): Constify filename parameter.
2137         * c-lex.c (init_parse): Constify parameter and return value.
2138         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
2139         * c-tree.h: Update prototypes.
2140         * c-parse.in: Constify filename member of %union, and if_stmt_file.
2141         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
2142         objc/objc-parse.c: Regenerate.
2143
2144         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
2145         * dwarfout.h: Update prototypes.
2146         * expr.c (expand_expr): Constify a local char *.
2147         * flags.h: Constify main_input_filename.
2148         * function.c (expand_function_end): Constify filename parameter.
2149         * genrecog.c (make_insn_sequence): Use a character array for
2150         c_test_pos.
2151         (main): Remove unused variables.
2152         * input.h: Constify input_filename, main_input_filename, and
2153         file_stack.name.  Update prototypes.
2154         * output.h: Declare first_global_object_name and
2155         weak_global_object_name here, as const char *.
2156         * stmt.c (expand_asm_operands): Constify filename parameter.
2157         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
2158         Constify filename parameter.
2159         (input_filename, main_input_filename): Constify.
2160         * toplev.h: Update prototypes.
2161         * tree.c: Include output.h.  Don't declare
2162         first_global_object_name or weak_global_object_name.  Clean up string
2163         bashing in get_file_function_name_long.
2164         * tree.h (struct tree_decl): Constify filename member.
2165         (input_filename): Constify.
2166         Update prototypes.
2167         * varasm.c (first_global_object_name, weak_global_object_name):
2168         Constify.
2169         (assemble_start_function, assemble_variable): Clean up string bashing.
2170
2171         * gcc.c: Constify all spec-related strings initialized,
2172         transitively, from string constants.  Constify all strings
2173         and string variables related to multilibs.
2174         (set_spec, read_specs): Cast argument to free to PTR.
2175         (used_arg): Do not modify multilib_matches.  Use strncmp plus
2176         length comparison to compare multilib switches.
2177         * genmultilib: Constify everything declared in multilib.h.
2178
2179 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
2180
2181         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
2182         as deleted.
2183
2184 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
2185
2186         * config/avr/avr-protos.h (extra_constraint): change a type of
2187         second argument from char to int to avoid warnings.
2188         (asm_output_byte): Likewise.
2189         
2190         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
2191         (initial_elimination_offset): Handle elimination from
2192         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
2193         (legitimate_address_p): Use MAX_LD_OFFSET.
2194         (legitimize_address): Likewise.
2195         (out_movqi_r_mr): Likewise.
2196         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
2197         (out_movsi_r_mr): Use MAX_LD_OFFSET.
2198         (out_movsi_mr_r): Likewise.
2199         (out_movqi_mr_r): Likewise.
2200         (out_movhi_mr_r): Likewise.
2201         (notice_update_cc): Correct CC for the ashrqi3 with the shift
2202         count as CONST_INT != 6.
2203         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
2204         shift count is a CONSTANT_P, but not a CONST_INT.
2205         (ashlhi3_out): Coding style modifications.
2206         (ashlsi3_out): Likewise.
2207         (ashrhi3_out): Likewise.
2208         (ashrsi3_out): Likewise.
2209         (lshrhi3_out): Likewise.
2210         (lshrsi3_out): Likewise.
2211         (ashrqi3_out): Generate shift for any known constant count without
2212         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
2213         but not a CONST_INT.
2214         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
2215         shift count is a CONSTANT_P, but not a CONST_INT. 
2216         (extra_constraint): change a type of
2217         second argument from char to int to avoid warnings.
2218         (asm_output_byte): Likewise.
2219         (asm_file_end): Output size generated commands count as a hex
2220         number too.
2221
2222         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
2223
2224         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
2225         removed.
2226         (ashlqi3): Values of "length" attribute changed. Shift count
2227         uses constraints 'n' instead of 'i'.
2228         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
2229         shifts without clobber register.
2230         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
2231         (call_insn): Correct test for which_alternative == 1 (was 0).
2232         (call_value_insn): Likewise.
2233         
2234         * config/avr/t-avr: Remove definition of FLOAT while generates
2235         fp-bit.c
2236
2237 2000-05-09  Bruce Korb  <bkorb@gnu.org>
2238
2239         * fixinc/check.tpl:  Template for checking fixes
2240         * fixinc/inclhack.def:  Added 'test_text' for many fixes
2241         disable hpux8_bogus_inlines on SCO
2242         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
2243
2244 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2245
2246         * calls.c (expand_call): Reorganize somewhat in order
2247         to avoid unnecesary recalculation inside loop and make
2248         tail call failure code cleaner.
2249         
2250 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2251
2252         * alias.c (nonlocal_reference_p): Minor reformatting.
2253         * reload.c (find_equiv_reg): Simplify logic for
2254         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
2255         some some reformatting.
2256         * reload1.c (reload_combine): Don't assume everything in
2257         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
2258
2259 2000-05-08  Richard Henderson  <rth@cygnus.com>
2260
2261         * final.c (current_insn_predicate): New.
2262         (final_scan_insn): Set it.
2263         * output.h (current_insn_predicate): Declare.
2264
2265         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
2266         Attach it to call insns.
2267         (cond_exec_process_if_block): Track probability for true and
2268         false branches.
2269         (dead_or_predicable): Likewise.
2270
2271         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
2272         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
2273         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
2274         (estimate_probability, expected_value_to_br_prob): Use them.
2275
2276         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
2277         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
2278         (ia64_expand_prediction): New.
2279         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
2280         as needed after calls.
2281         (ia64_epilogue_uses): Mark b0 used.
2282         * config/ia64/ia64.md (beq_true, beq_false): Remove.
2283         (bne_true, bne_false): Remove.
2284         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
2285         (br_true, br_false): New.  Use predicate_operator and
2286         ia64_expand_prediction.
2287         (return_true, return_false): Likewise.
2288         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
2289         (call_internal1, call_value_internal): Likewise.
2290         (call_value_internal1, call_multiple_values_internal1): Likewise.
2291
2292         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
2293
2294         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
2295
2296 2000-05-08  Richard Henderson  <rth@cygnus.com>
2297
2298         * rtlanal.c (may_trap_p): Consider old-style and volatile
2299         asms to trap.
2300
2301 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
2302
2303         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
2304
2305 2000-05-08  Richard Henderson  <rth@cygnus.com>
2306
2307         * config/ia64/ia64.h (predicate_operator): Declare.
2308
2309         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
2310         of existance.
2311
2312         * gensupport.c (process_rtx): Copy and post-process each member
2313         of the define_insn rtvec individually.
2314
2315 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
2316
2317         * cpplex.c (spell_token): New function.
2318         (TOKEN_LEN): Add 1 for whitespace.
2319         (_cpp_lex_file): Update to use spell_token.
2320         * cpplib.h (E): Remove.
2321         (TTYPE_TABLE): Update CPP_VSPACE entry.
2322
2323 2000-05-08  Richard Henderson  <rth@cygnus.com>
2324
2325         * flow.c (init_propagate_block_info): Watch out for conditional
2326         branch to next instruction, and thus one outgoing edge.
2327
2328         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
2329         for global register variables; don't special case __[CD]TOR_LIST__;
2330         mind ggc_p for string allocation.
2331
2332 2000-05-08  Nick Clifton  <nickc@cygnus.com>
2333
2334         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
2335
2336 2000-05-08  Bruce Korb  <bkorb@gnu.org>
2337
2338         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
2339         i?86-*-msdosdjgpp* no longer uses fixincludes
2340         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
2341         * fixinc/inclhack.sh:  deleted
2342         * fixinc/hackshell.tpl:  deleted
2343         * fixinc/inclhack.tpl:  deleted
2344         * fixinc/Makefile.in:  Remove dependencies on above
2345         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
2346
2347 2000-05-08  Andreas Jaeger  <aj@suse.de>
2348
2349         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
2350         support.
2351
2352 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
2353
2354         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
2355         substitutions.
2356
2357 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
2358
2359         * cpplex.c: Move new lexer definitions and prototypes
2360         to top.  Conditional include these and the code if
2361         NEW_LEXER is defined.  Rename functions whose names
2362         clash if this code included.
2363
2364 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
2365
2366         * rtl.def (COND_EXEC): Clarify.
2367
2368         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
2369         same fashion as zero_extendsidi2.
2370
2371 2000-05-06  Richard Henderson  <rth@cygnus.com>
2372
2373         * config/ia64/ia64.c (predicate_operator): New.
2374         (ia64_print_operand): Handle 'J'.
2375         (rtx_needs_barrier): Handle COND_EXEC.
2376         * config/ia64/ia64.h (BRANCH_COST): Define.
2377         (PREDICATE_CODES): Update.
2378         * config/ia64/ia64.md: Docuement used unspec values.
2379         (attr predicable): New.
2380         (movxf, movxf_internal): New.
2381         (extendsfdf2): Don't comment out nop.
2382         (floatdidf2): Remove.
2383         (truncxfsf2, truncxfdf2, floatdixf2): New.
2384         (abssi2, absdi2): Put the neg in the "true" slot.
2385         (conditional branch instructions): Mark not predicable.
2386         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
2387         (abs*_internal): Likewise.
2388         (alloc, set_bsp): Mark not predicable.
2389         (barrier, insn_group_barrier, flush_cache): Likewise.
2390         (define_cond_exec): New.
2391
2392 2000-05-06  Richard Henderson  <rth@cygnus.com>
2393
2394         * c-decl.c: Include "tm_p.h".
2395
2396         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
2397         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
2398         (ia64_expand_op_and_fetch): Declare.
2399         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
2400         (setjmp_operand): Constify variables for XSTR.
2401         (ia64_encode_section_info): Likewise.
2402         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
2403         values to int.
2404         (ia64_asm_output_external): Constify name.
2405         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
2406         (process_for_unwind_directive): Provide switch default.
2407         (ia64_expand_compare_and_swap): Remove unused variables.
2408         (ia64_expand_builtin): Likewise.
2409         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
2410         for printing.
2411
2412         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
2413         (symbolic_operand, function_operand, setjmp_operand): Likewise.
2414         (shift_count_operand, shift_32bit_count_operand): Likewise.
2415         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
2416         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
2417         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
2418         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
2419         (ia64_expand_builtin): Likewise.
2420         (call_multiple_values_operation): Make dest_regno unsigned.
2421
2422 2000-05-06  Richard Henderson  <rth@cygnus.com>
2423
2424         * rtl.def (DEFINE_COND_EXEC): New.
2425         * md.texi: Document it.
2426
2427         * gensupport.c (input_file): Remove.
2428         (struct queue_elem): Add lineno.
2429         (rtx_ready_queue): Remove.
2430         (errors): New.
2431         (predicable_default): New.
2432         (predicable_true, predicable_false): New.
2433         (define_attr_queue, define_attr_tail): New.
2434         (define_insn_queue, define_insn_tail): New.
2435         (define_cond_exec_queue, define_cond_exec_tail): New.
2436         (other_queue, other_tail): New.
2437         (queue_pattern): New.
2438         (process_rtx): Add patterns to the appropriate queues.
2439         (is_predicable, identify_predicable_attribute): New.
2440         (n_alternatives, collect_insn_data): New.
2441         (alter_predicate_for_insn, alter_test_for_insn): New.
2442         (shift_output_template, alter_output_for_insn): New.
2443         (process_one_cond_exec, process_define_cond_exec): New.
2444         (init_md_reader): Read the entire file.  Process define_cond_exec.
2445         (read_md_rtx): Return elements from the queues.
2446
2447 2000-05-06  Richard Henderson  <rth@cygnus.com>
2448
2449         * flow.c (mark_set_1): Don't update conditional life info
2450         if the register is not_dead.
2451
2452 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
2453
2454         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
2455         (mostlyclean): Also delete fixincl, fixinc.sh, and
2456         specs.ready, and make clean in the fixinc subdir.
2457
2458 2000-05-06  Richard Henderson  <rth@cygnus.com>
2459
2460         * Makefile.in (gensupport.o): Compile for the host.
2461         (host-prefix gensuuprt.o): Remove.
2462         (genflags.o): Depend on gensupport.h and OBSTACK_H.
2463         (genattrtab.o): Likewise.
2464         (gencodes.o): Depend on gensupport.h.
2465         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
2466         (genpeep.o, genattr.o, genoutput.o): Likewise.
2467
2468         * gensupport.c (obstack, rtl_obstack): New.
2469         (init_md_reader): Initialize rtl_obstack.
2470         * gensupport.h (rtl_obstack): Declare.
2471         (message_with_line): Declare.
2472
2473         * genattr.c: Remove all traces of obstack manipulation.
2474         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
2475         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
2476
2477         * genattrtab.c (obstack, rtl_obstack): Remove.
2478         (main): Don't init rtl_obstack.
2479         * genflags.c: Likewise.
2480
2481         * genrecog.c (message_with_line): Move ...
2482         * gensupport.c: ... here.
2483
2484 2000-05-06  Richard Henderson  <rth@cygnus.com>
2485
2486         * c-typeck.c (build_c_cast): Remove dead code.
2487
2488 2000-05-06  Richard Henderson  <rth@cygnus.com>
2489
2490         * flow.c (split_edge): Don't allocate global_live_at_start for
2491         the new block unless the old blocks had them as well.
2492
2493         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
2494
2495         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
2496         test_bb if a or b uses x.
2497
2498 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
2499
2500         * cpphash.h: Remove conditional #define of __extension__.
2501         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
2502         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
2503         (ENABLE_RTL_CHECKING only).
2504         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
2505         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
2506         (ENABLE_TREE_CHECKING only).
2507         * varray.h: Add __extension__ to VARRAY_CHECK macro
2508         (ENABLE_CHECKING only).
2509
2510 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2511
2512         Use new tail-calling mechanism on ARM.
2513         * arm.md (sibcall, sibcall_value): New expands.
2514         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
2515         (tailcalling peepholes): Delete.
2516         (push_multi): Simplify.
2517         * arm.c (lr_save_eliminated): Delete definition.
2518         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
2519         (output_return_instruction): Remove checks on lr_save_eliminated.
2520         (output_arm_prologue): Remove old tail-calling code.
2521         (arm_output_epilogue): New parameter, really_return.  All callers
2522         changed.  Handle tail-calling epilogues.
2523         * arm.h (lr_save_eliminated): Delete declaration.
2524         (frame_pointer_needed): Delete declaration.
2525         * arm-protos.h (arm_output_epilogue): Adjust prototype.
2526
2527         * arm.md (is_thumb): Examine symbol thumb_code, not expression
2528         TARGET_ARM.
2529         * arm.c (thumb_code): Define it.
2530         (arm_override_options): Set it.
2531         * arm.h (thumb_code): Declare it.
2532         
2533 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2534
2535         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
2536
2537 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2538
2539         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
2540         bogus clobber to insns.
2541         (load_multiple_operation, store_mulitple_operation): Don't check 
2542         for it.
2543         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
2544
2545         * arm.md (and_scc, ior_scc): Add missing mode.
2546
2547         * arm.md (call_value_symbol): Remove predicate from op2.
2548
2549         * arm.h (SPECIAL_MODE_PREDICATES): Define.
2550         
2551 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2552
2553         * expr.c (get_subtarget): New function.
2554         (force_operand, expand_expr, do_store_flag): Use it.
2555
2556         * toplev.c (compile_file): Don't take strlen of NAME if null.
2557
2558 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
2559
2560         * xcoffout.c (xcoff_current_include_file,
2561         xcoff_current_function_file, xcoff_lastfile): Constify char *.
2562         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
2563         char *'.
2564         (xcoffout_declare_function): Make name 'const char *'.
2565         (xcoffout_end_epilogue): Make fname 'const char *'
2566         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
2567         xcoffout_declare_function, xcoffout_source_line): Match above.
2568
2569         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
2570         -maix64 is error.
2571         * rs6000.c (print_operand): Fix lossage typo.
2572         (output_cbranch): Remove "cr" decoration for now.
2573         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. 
2574
2575 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
2576
2577         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
2578         constant count.
2579
2580 2000-05-05  Bruce Korb  <bkorb@gnu.org>
2581
2582         * fixinc/genfixes: Improve the matching for make target names
2583
2584 2000-05-05  Catherine Moore  <clm@cygnus.com>
2585
2586         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
2587         attribute to the decl.
2588         * c-decl.c (pushdecl): Propagate the USED attribute to the 
2589         type copy.
2590
2591 2000-05-05  Richard Henderson  <rth@cygnus.com>
2592
2593         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
2594         same way emit_group_load does.
2595
2596 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
2597
2598         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
2599
2600         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
2601         (main): Likewise.
2602
2603 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
2604
2605         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
2606
2607 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
2608
2609         * config/openbsd.h (LINK_SPEC): pass correct flags to ld 
2610         to support -shared, on platforms with dynamic libraries.
2611
2612 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
2613
2614         * system.h (S_ISBLK): Provide fallback definition.
2615
2616 2000-05-05  Geoff Berry  <geoffb@bops.com>
2617
2618         * extend.texi (Extended Asm): Document inability to give asm
2619         statements access to condition codes.
2620
2621 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
2622
2623         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
2624         as arg 2 of UNIQUE_SECTION.
2625
2626 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
2627
2628         * predict.c: Remove May 4 change.
2629         * bb-reorder.c (make_reorder_chain): Do not perform block movement
2630         if we have predicted the branch at 50-50 probability.
2631
2632 2000-05-05  Richard Henderson  <rth@cygnus.com>
2633
2634         * flow.c (init_propagate_block_info): Fix merge error
2635         in HAVE_conditional_execution code.
2636
2637 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
2638
2639         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
2640         shift cycle for unknown shift count. Also generates dec + brpl.
2641         (ashlqi3_out): Don't generate dec + brpl which now generates by
2642         `out_shift_with_cnt'.
2643         (ashlhi3_out): Likewise.
2644         (ashlsi3_out): Likewise.
2645         (ashrqi3_out): Likewise.
2646         (ashrhi3_out): Likewise.
2647         (ashrsi3_out): Likewise.
2648         (lshrqi3_out): Likewise.
2649         (lshrhi3_out): Likewise.
2650         (lshrsi3_out): Likewise.
2651
2652 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
2653
2654         * gcc.c (free_split_directories): Correct typo in explanation
2655         of make_relative_prefix.
2656
2657 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2658
2659         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
2660         comparison codes to branch_comparison_operator.
2661
2662 2000-05-04  Richard Henderson  <rth@cygnus.com>
2663
2664         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
2665
2666 2000-05-04  Richard Henderson  <rth@cygnus.com>
2667
2668         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
2669         (DPBIT_FUNCS): Remove _sf_to_usi.
2670         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
2671
2672         * ifcvt.c (noce_process_if_block): Fail if A or B modified
2673         between condition and jump.
2674
2675         * libgcc2.c (near eh_context_specific): Comment #endif string.
2676         * longlong.h: Don't use strings with embedded newlines.
2677
2678 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2679
2680         * config/rs6000/rs6000-protos.h: Add output_cbranch.
2681         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
2682         (print_operand): Delete %t and %T codes.
2683         (output_cbranch): New function.  Support branch prediction.
2684         * config/rs6000/rs6000.md: Use output_cbranch for
2685         conditional branches and returns.
2686
2687 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
2688
2689         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
2690         * stor-layout.c (place_field): Likewise.
2691         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
2692         * expr.c (store_expr): Make align unsigned.
2693         * explow.c (plus_constant_wide): Make low words unsigned.
2694         * expmed.c (choose_multiplier): Likewise.
2695         * fold-const.c (fold):  Likewise.
2696         * tree.h (build_int_2): Likewise.
2697         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
2698         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
2699         (init_emit): Change cast to unsigned char*.
2700         * varasm.c (compare_constant_1): Add cast to char*.
2701         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
2702         * reload1.c (reload): Likewise.
2703
2704         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
2705
2706 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
2707
2708         * predict.c (estimate_probability): If no prediction was found, then
2709         predict the successor that is the next physical block (if such a
2710         successor exists).
2711
2712 2000-05-04  Richard Henderson  <rth@cygnus.com>
2713
2714         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
2715
2716 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2717
2718         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
2719
2720 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
2721
2722         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move 
2723         attribute macros from here ...
2724         (CPP_SPEC): to here.
2725         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
2726         (CPP_SPEC): Likewise.
2727         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. 
2728
2729         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
2730         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
2731
2732 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2733
2734         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
2735         
2736         * diagnostic (vbuild_message_string, build_message_string,
2737         build_location_prefix, output_get_prefix, init_output_buffer,
2738         output_notice, vline_wrapper_message_with_location,
2739         v_message_with_decl, default_print_error_function): De-constify.
2740         (set_real_maximum_length): Prototype.
2741
2742         * diagnostic.h (struct output_buffer, init_output_buffer,
2743         output_get_prefix, output_set_prefix): De-constify.
2744
2745         * function.c (init_function_start): Constify.
2746
2747         * gensupport.c (remove_constraints, process_rtx): Prototype.
2748
2749         * gthr-posix.h: Indent uses of #pragma.
2750
2751         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
2752         Prototype.
2753
2754         * predict.c (find_expected_value): Delete prototype.
2755         (expected_value_to_br_prob): Initialize variable `ev_reg'.
2756
2757         * sbitmap.h (debug_sbitmap): Prototype.
2758
2759         * ssa.c (compute_coalesced_reg_partition): Prototype.
2760
2761         * stor-layout.c (debug_rli): Prototype.
2762
2763         * tree.h (round_down): Prototype.
2764         (init_function_start): Constify.
2765
2766 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
2767
2768         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
2769         (overly conservative).  Change extern inline wrappers to
2770         static inline, define them always, use PARAMS properly.
2771         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
2772         whitespace warnings for \f and \v at the beginning of a line.
2773
2774 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
2775
2776         * haifa-sched.c (schedule_insns): Free the flow edge list when it
2777         is no longer needed
2778
2779 2000-05-04  Bruce Korb  <bkorb@gnu.org>
2780
2781         * fixincl/inclhack.def: added broken_cabs -
2782         Remove `extern double cabs' declarations from math.h
2783         * fixincl/inclhack.sh: regen
2784         * fixincl/fixincl.x: regen
2785         * fixincl/fixincl.c: Remove BOGOSITY code
2786         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
2787
2788 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2789
2790         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
2791         MEM_ALIAS_SET.
2792         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
2793         when calling MEM_COPY_ATTRIBUTES.
2794         * emit-rtl.c (operand_subword, change_address): Likewise.
2795         * explow.c (stabilize): Likewise.
2796         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
2797         * integrate.c (copy_rtx_and_substitute): Likewise.
2798         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
2799         when calling MEM_COPY_ATTRIBUTES.
2800         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
2801         Likewise.
2802         * cse.c (gen_lowpart_if_possible): Likewise.
2803         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
2804         * optabs.c (gen_move_insn): Likewise.
2805         * recog.c (validate_replace_rtx_1): Likewise.
2806         * simplify-rtx.c (add_mem_for_addr): Likewise.
2807         * stmt.c (expand_anon_union_decl): Likewise.
2808         * config/arm/arm.md: Likewise.
2809         * config/h8300/h7300.c (fix_bit_operand): Likewise.
2810         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
2811         (block_move_no_loop, block_move_sequence): Likewise.
2812         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
2813         * config/alpha/alpha.c (get_aligned_mem): Likewise.
2814         Clear MEM_ALIAS_SET.
2815         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
2816         MEM_COPY_ATTRIBUTES.
2817
2818 2000-05-03  Robert Lipe <robertlipe@usa.net>
2819         
2820         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
2821         to suppress libgcc1.
2822         (i[34567]86-*-sco3.2v5*) Likewise.
2823         (i[34567]86-*-sco3.2v4*) Likewise.
2824         (i[34567]86-*-sco) Likewise.
2825         (i[34567]86-*-solaris2) Likewise.
2826         (i[34567]86-*-sysv5*) Likewise.
2827         (i[34567]86-*-sysv4*) Likewise.
2828         (i[34567]86-*-udk*) Likewise.
2829         (i[34567]86-*-sysv*) Likewise.
2830
2831 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2832
2833         * cpphash.h (U): New define, to correct type of string constants.
2834         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
2835         routines, to do casts when passing unsigned strings to libc.
2836         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
2837
2838         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
2839         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
2840         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
2841         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
2842         second argument an U_CHAR *.
2843
2844         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
2845         length field, clean up initializer.
2846         (ISTABLE): Add __extension__ to designated-
2847         initializers version.
2848         * cpplex.c (CHARTAB): Likewise.
2849
2850         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
2851         case so the file won't be empty.
2852
2853 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
2854
2855         * bb-reorder.c (struct reorder_block_def): Member succ removed.
2856         (REORDER_BLOCK_SUCC): Removed.
2857         (enum reorder_skip_type): Removed.
2858         (skip_insns_between_block): Renamed to skip_insns_after_block.
2859         Removed second argument. Removed dead code and cleaned up.
2860         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
2861         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
2862         second parameter to skip_insns_after_block.
2863
2864 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2865
2866         * tree.c (staticp, case LABEL_DECL): New case.
2867
2868 2000-05-03  Richard Henderson  <rth@cygnus.com>
2869
2870         * Makefile.in (start.encap): Do not depend on LIBGCC1.
2871
2872         * mklibgcc1.in: Fix typo last change.
2873
2874 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2875
2876         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
2877         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
2878         (GCC_CFLAGS): Use it.
2879         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
2880         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
2881         objc/Make-lang.in: Use it.
2882
2883 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
2884
2885         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
2886
2887 2000-05-03  Richard Henderson  <rth@cygnus.com>
2888
2889         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
2890         LIBGCC1 empty with libgcc1.null.
2891
2892 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
2893
2894         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
2895         change.
2896
2897 2000-05-03  Greg McGary  <gkm@gnu.org>
2898
2899         * tree.h (tree_common): Add bounded_flag member.  Remove
2900         inaccurate comment about number of remaining bits.
2901         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
2902         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
2903         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
2904         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
2905         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
2906         (TYPE_QUAL_BOUNDED): New constant.
2907         (TYPE_QUALS): Handle bounded qualifier.
2908         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
2909         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
2910         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
2911         TYPE_AMBIENT_BOUNDEDNESS): New macros.
2912         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
2913         (tree_type): Add pointer_depth member.  Remove
2914         inaccurate comment about number of remaining bits.
2915         (DECL_POINTER_DEPTH): Add macro.
2916         (tree_decl): Add pointer_depth member.
2917
2918 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
2919
2920         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
2921         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
2922         (lshrhi3_out): Likewise.
2923         (ashrsi3_out): bugfix in shift by 8.
2924         (test_hard_reg_class): New function.
2925         * config/avr/avr.md: Bugfix inside conditions in peepholes.
2926         (ashlhi3): removed define_expand of this pattern.
2927         (*ashlhi3_insn): renamed to ashlhi3.
2928         (ashlsi3): removed define_expand of this pattern.
2929         (*ashlsi3_insn): renamed to ashlsi3.
2930         (ashrqi3): removed define_expand of this pattern.
2931         (*ashrqi3_insn): renamed to ashrqi3.
2932         (ashrhi3): removed define_expand of this pattern.
2933         (*ashrhi3_insn): renamed to ashrhi3.
2934         (ashrsi3): removed define_expand of this pattern.
2935         (*ashrsi3_insn): renamed to ashrsi3.
2936         (lshrhi3): removed define_expand of this pattern.
2937         (*lshrhi3_insn): renamed to lshrhi3.
2938         (lshrsi3): removed define_expand of this pattern.
2939         (*lshrsi3_insn): renamed to lshrsi3.
2940
2941 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
2942
2943         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
2944         inclusion of "system.h".
2945
2946 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
2947
2948         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
2949         TREE_ASM_WRITTEN.
2950
2951 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
2952
2953         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
2954         if -mauto-pic is on.
2955         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
2956         -mconstant-gp is in effect and function-descriptors are being used
2957         to make indirect calls.
2958         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
2959         (MASK_AUTO_PIC): Ditto.
2960         (TARGET_CONST_GP): Ditto.
2961         (TARGET_AUTO_PIC): Ditto.
2962         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
2963         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
2964         -mno-pic is in effect.
2965         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
2966         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
2967         -mauto-pic is in effect.
2968         (gprel64_offset): New pattern.
2969         (load_gprel64): Ditto.
2970         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
2971         -mconstant-gp is in effect, no need to preserve gp around direct
2972         calls.
2973         (call_value): Ditto.
2974         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
2975         (FUNCTION_PROFILER): Define.
2976         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
2977         @fptr() directive when -mno-pic or -mauto-pic is in effect.
2978         (ASM_OUTPUT_DESTRUCTOR): Ditto.
2979
2980 2000-05-03  Richard Henderson  <rth@cygnus.com>
2981
2982         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
2983         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
2984         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
2985         (mklibgcc, libgcc.mk): New targets.
2986         (libgcc.a): Use libgcc.mk.
2987         (stmp-multilib): Likewise.
2988         (stmp-multilib-sub): Remove.
2989         (mostlyclean): Don't delete libgcc2 temp files.
2990         * configure.in (AC_PROG_CC_C_O): Add.
2991         (NO_MINUS_C_MINUS_O): Substitute it.
2992         (all_outputs): Add mklibgcc.
2993         * mklibgcc.in: New file.
2994
2995 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2996
2997         * cppexp.c (op_t): Make an int.
2998
2999         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
3000
3001         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
3002
3003         * gensupport.c (process_rtx): Fix macros used.
3004
3005 2000-05-03  Richard Henderson  <rth@cygnus.com>
3006
3007         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
3008         call-clobbered registers of a call.
3009
3010 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
3011
3012         * gensupport.c: New file.
3013         * gensupport.h: New file.
3014         * Makefile.in (HOST_RTL): Depend on gensupport.
3015         (gensupport.o) New rule.
3016         * genattr.c: Use gensupport for reading .md files.
3017         * genattrtab.c: Ditto. 
3018         * gencodes.c: Ditto. 
3019         * genconfig.c: Ditto. 
3020         * genemit.c: Ditto. 
3021         * genextract.c: Ditto. 
3022         * genflags.c: Ditto. 
3023         * genopinit.c: Ditto. 
3024         * genoutput.c: Ditto. 
3025         * genpeep.c: Ditto. 
3026         * genrecog.c: Ditto.
3027         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
3028         * md.texi (Insn Splitting): Document define_insn_and_split.
3029
3030 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
3031
3032         * flow.c (verify_flow_info): Added two more sanity checks. The
3033         first checks that the blocks are numbered consecutively. The second
3034         checks that n_basic_blocks is actually equal to the number of
3035         basic blocks in the insn chain.
3036
3037 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
3038
3039         * cpplib.h: Add accessor macros for token lists.
3040         * cpplib.c, cpphash.c, cpplex.c: Use them.
3041
3042 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3043
3044         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
3045         memory usage if not in a function.
3046         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
3047         return address if static.
3048
3049 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3050
3051         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
3052         whether address may trap.
3053
3054 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
3055
3056         * bb-reorder (chain_reorder_blocks): Changed code to test for
3057         EDGE_FALLTHRU rather than making erroneous assumption that the
3058         first outgoing edge is the fall-through edge.
3059
3060 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
3061
3062         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new 
3063         ABI for varargs, across all MIPS. This is incompatible because the
3064         va_list (__builtin_va_list) structure is different, so a compilation
3065         unit passing a va_list and a compilation unit being passed one, should
3066         both be compiled with the same ABI. (The old structure had two 
3067         pointers, now it has three.)
3068
3069 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
3070
3071         * bb-reorder.c (struct reorder_block_def): Remove members end,
3072         block_begin, and block_end.
3073         (REORDER_BLOCK_OLD_END): Delete.
3074         (REORDER_BLOCK_BEGIN): Delete.
3075         (REORDER_BLOCK_END): Delete.
3076         (chain_reorder_blocks): Remove dead code.
3077
3078 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
3079
3080         * bb-reorder.c (remove_scope_notes): Check for both types of scope
3081         notes as the end of a basic block before deleting.
3082
3083 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
3084
3085         * final.c (final_start_function): Fix spelling of "necessary".
3086
3087 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
3088
3089         * toplev.c (debug_ignore_block): Return int.
3090         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
3091         * toplev.h, dwarf2out.h: Adjust.
3092         * emit-rtl.c (remove_unnecessary_notes): Test return value.
3093
3094         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
3095         * toplev.c, final.c, rtl.h: Adjust.
3096
3097 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
3098
3099         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
3100         * configure.in: Look for makeinfo in the unified tree, then
3101         for a system makeinfo which is sufficiently new.
3102         * Makefile.in: If configure says makeinfo is too old, don't
3103         build or install Info documentation.
3104
3105 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
3106
3107         * cpphash.c (collect_params): Fix off-by-one error.
3108         (dump_hash_helper): Dump all four macro nodetypes.
3109
3110 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
3111
3112         * cpphash.c (trad_stringify): Adjust p after stringification as
3113         well.
3114
3115 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
3116
3117         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
3118         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
3119
3120         * cppfiles.c (file_cleanup): Delete.
3121         * cpphash.c (macro_cleanup): Delete.
3122         (collect_objlike_expansion, collect_funlike_expansion,
3123         macarg, scan_arguments): Remove CPP_POP case.
3124
3125         * cpplex.c (null_cleanup): Delete.
3126         (cpp_pop_buffer): Do the work that was done in the cleanups
3127         here.  Call _cpp_unwind_if_stack from here.
3128         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
3129         cpp_scan_buffer): Run until we see CPP_EOF and the top of
3130         stack is the buffer _below_ the one we stacked.
3131         (cpp_get_token): Always pop an exhausted buffer.  Return
3132         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
3133         * cpplib.c (skip_if_group): Don't call cpp_get_token to
3134         increment the line number.
3135         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
3136
3137         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
3138         we see CPP_EOF and the top of stack is the buffer _below_ the
3139         one we stacked.
3140         * scan-decls.c: Likewise.
3141
3142 2000-05-02  Andrew Haley  <aph@cygnus.com>
3143
3144         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
3145         where this function is called for the second time on a decl that
3146         has had its section info changed in such a way as to move it out
3147         of small data/bss.  
3148         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
3149
3150 2000-05-01  Richard Henderson  <rth@cygnus.com>
3151
3152         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
3153         the sequence we're moving, not to merge_bb->head.
3154
3155 2000-05-01  Richard Henderson  <rth@cygnus.com>
3156
3157         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
3158         reference to alpha/t-linux.
3159         (alpha*-*-linux-gnu*): Likewise.
3160         * configure: Rebuild.
3161
3162         * calls.c (expand_call): Don't emit reg notes for a sibcall.
3163
3164         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
3165         if not in SSA form.
3166
3167         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
3168
3169 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
3170
3171         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
3172         TREE_THIS_VOLATILE.
3173
3174 2000-05-01  Richard Henderson  <rth@cygnus.com>
3175
3176         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
3177         emit_conditional_move.
3178
3179 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
3180
3181         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
3182         as the dynamic linker.
3183
3184 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
3185
3186         * cppfiles.c (open_include_file): Open file in blocking mode.
3187         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
3188         Only exclude block devices and directories.
3189
3190         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
3191         static.  Allocate the hashnode and its string in the same
3192         block of memory.
3193         (del_HASHNODE): Don't free h->name.
3194         (_cpp_lookup): If there is no entry for this string, create
3195         one, of type T_VOID.
3196         (_cpp_lookup_slot): Delete.
3197         * cpphash.h: Update prototypes.
3198
3199         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
3200         not hp == NULL.
3201         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
3202         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
3203         node here, just fill in the value field properly.  "Delete"
3204         entries by setting the value field to T_VOID.  Check for
3205         hp->type == T_VOID, not hp == NULL.
3206
3207         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
3208         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
3209         hashtab.h.
3210
3211 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
3212
3213         * config/mn10300/mn10300.c (print_operand_address): Do not add
3214         zero to SP.
3215
3216         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
3217         adjusted by less than 256 bytes, use ret regardless of having any
3218         callee-saved register to restore.
3219
3220 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
3221
3222         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
3223
3224 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
3225
3226         * config/i386/djgpp.h (INT_ASM_OP): Define.
3227         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
3228         (ASM_WEAKEN_LABEL): Define.
3229         (MASK_BNU210): Define.
3230         (SUBTARGET_SWITCHES): Define.
3231         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
3232         (MAKE_DECL_ONE_ONLY): Define.
3233         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
3234
3235 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
3236
3237         * i386/cygwin.h (INT_ASM_OP): Define.
3238
3239 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
3240
3241         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
3242         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
3243
3244 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
3245
3246         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
3247         __tmp_reg__ and __zero_reg__ initialization.
3248
3249 2000-04-30  Richard Henderson  <rth@cygnus.com>
3250
3251         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
3252
3253         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
3254         referenced bewteen the condition and the jump.  Don't delete
3255         anything but the jump.
3256
3257 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
3258
3259         * bb-reorder.c (scope_def): New struct.
3260         (scope_forest_info): New struct.
3261         (struct reorder_block_def): New member "scope".
3262         (REORDER_BLOCK_SCOPE): New macro.
3263         (relate_bbs_with_scopes): New function and prototype.
3264         (make_new_scope): Likewise.
3265         (build_scope_forest): Likewise.
3266         (remove_scope_notes): Likewise.
3267         (insert_intra_1): Likewise.
3268         (insert_intra_bb_scope_notes): Likewise.
3269         (insert_inter_bb_scope_notes): Likewise.
3270         (rebuild_scope_notes): Likewise.
3271         (free_scope_forest_1): Likewise.
3272         (free_scope_forest): Likewise.
3273         (dump_scope_forest): Likewise.
3274         (dump_scope_forest_1): Likewise.
3275         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
3276         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
3277         block.
3278         (reorder_basic_blocks): Added calls to build_scope_scope_forest
3279         and remove_scope_notes before reordering is done. Added calls to
3280         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
3281         after reordering is done.
3282
3283 2000-40-30  Bruce Korb  <bkorb@gnu.org>
3284
3285         * fixinc/inclhack.def:  Added definitions needed by OSR5,
3286         removed two stale entries (defined away with OLD_CPP).
3287         * fixinc/inclhack.sh: regen
3288         * fixinc/fixincl.x: regen
3289
3290 2000-04-30  Richard Henderson  <rth@cygnus.com>
3291
3292         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
3293         from the last insn in the sequence.
3294
3295 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
3296
3297         * cpplex.c (cpp_idcmp): New function.
3298         * cpplib.h: Prototype it.
3299         * scan_decls.c (scan_decls): Use it to inspect token names.
3300         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
3301         the file being run through the preprocessor.
3302         (check_macro_names): Provide length of token to cpp_defined.
3303
3304         * Makefile.in: Remove stale warning message.
3305
3306         * cppfiles.c (redundant_include_p): Provide length of token to
3307         cpp_defined.
3308         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
3309         values are unsigned int.
3310         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
3311         (_cpp_lookup_slot): Do not calculate the hash, either.
3312         * cpphash.h: Update prototypes.
3313         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
3314         Hashes are unsigned int.  Calculate hash here, pass by value
3315         to _cpp_lookup_slot.
3316
3317 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
3318
3319         * simplify-rtx.c (check_value_useless): Delete function.
3320         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
3321         by hand.
3322         (cselib_invalidate_regno): Likewise.
3323         (cselib_invalidate_mem_1): Likewise.
3324         (references_value_p): Recognize useless values by the fact that they
3325         have no locations.
3326         (discard_useless_values): Likewise.
3327         (cselib_record_set): This may turn a useless value
3328         into a useful one.
3329
3330 2000-04-30  Richard Henderson  <rth@cygnus.com>
3331
3332         * config/d30v: New port.
3333
3334         * configure.in (d30v-*): Set fp format.
3335         * configure: Rebuild.
3336
3337 2000-04-30  Richard Henderson  <rth@cygnus.com>
3338
3339         * ifcvt.c: New file.
3340         * Makefile.in (OBJS): Add it.
3341         (ifcvt.o): New target.
3342         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
3343         and conditional arithmetic.
3344         (find_insert_position): Remove.
3345         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
3346         * toplev.c (DFI_ce, DFI_ce2): New.
3347         (dump_file): Add ce and ce2 dumps.
3348         (rest_of_compilation): Run if_convert a couple o times.  Set
3349         cse_not_expected after cse2.  Don't set no_new_pseudos until
3350         after sched1 or recompute_reg_usage.
3351
3352 2000-04-30  Richard Henderson  <rth@cygnus.com>
3353
3354         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
3355         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
3356
3357 2000-04-30  Richard Henderson  <rth@cygnus.com>
3358
3359         * flow.c (struct reg_cond_life_info): New.
3360         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
3361         (init_propagate_block_info): Initialize them.
3362         (free_propagate_block_info): Destruct them.
3363         (mark_set_1): Consider conditional life before killing a register.
3364         (mark_regno_cond_dead): New.
3365         (free_reg_cond_life_info): New.
3366         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
3367         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
3368         (mark_used_reg): Record conditional life.
3369
3370         * haifa-sched.c (schedule_insns): Disable death counting
3371         sanity check for HAVE_conditional_execution.
3372
3373 2000-04-30  Richard Henderson  <rth@cygnus.com>
3374
3375         * Makefile.in (TIMEVAR_H): New.
3376         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
3377         (timevar.h): Remove rule.
3378
3379 2000-04-29  Richard Henderson  <rth@cygnus.com>
3380
3381         * config/alpha/crtend.asm: Use C comments instead of #.
3382         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
3383
3384         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
3385
3386 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
3387
3388         * cpphash.h (enum node_type: Take out T_MCONST.
3389         (union hashval): Move into struct hashnode.
3390         (struct hashnode): Pack tighter.  Remove file, line, col
3391         members.
3392         * cpphash.c: Constify most of the macro-definition structures.
3393         (struct definition): Replace by struct object_defn
3394         and struct funct_defn.  Put file, line, column information
3395         here.  All users updated to match.
3396         (_cpp_create_definition, _cpp_macroexpand): Remove special
3397         case for #define WORD OTHERWORD.
3398         * cpplib.c (do_undef): Remove T_MCONST case.
3399
3400         * cpphash.h: Move struct reflist, struct definition, and the
3401         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
3402         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
3403         * cpphash.c (_cpp_free_definition): Free data pointed to by
3404         MCONST, XCONST, MACRO, and FMACRO nodes properly.
3405         (_cpp_create_definition, del_HASHNODE): Just call
3406         _cpp_free_definition to clear out a hashnode.
3407         * cpplib.c (do_pragma_poison): Likewise.
3408
3409 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
3410
3411         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
3412         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
3413         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
3414         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
3415         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
3416         REGNO_AM33_P): Redefine in terms of the new macros.
3417         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
3418         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
3419         STRUCT_VALUE): Likewise.
3420         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
3421         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
3422
3423 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3424
3425         * regmove.c (struct record_stack_memrefs_data): New.
3426         (record_stack_memrefs): New function.
3427         (combine_stack_adjustments_for_block): Use it.
3428
3429 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3430
3431         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
3432         use special_function_p to detect alloca.
3433
3434 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
3435
3436         * gcc.texi: Fixes for makeinfo 4.0 --html.
3437
3438 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
3439
3440         * pcp.h: Delete file.
3441
3442 2000-04-28  Kazu Hirata  <kazu@hxi.com>
3443
3444         * h8300.c (function_epilogue): Clean up flags when the last insn
3445         in a function is a barrier.
3446
3447 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
3448
3449         * configure.in (sparc-hal-solaris2*): protect [] glob from
3450         my expansion.
3451         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
3452         rather than hard-coded constants in target_cpu_default2.
3453         * configure: Regenerate.
3454
3455 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
3456
3457         * tree.c (get_callee_fndecl): Extract the initial value from
3458         a readonly decl.
3459
3460 2000-04-28  Richard Henderson  <rth@cygnus.com>
3461
3462         * varasm.c (record_constant_1): Record the CODE_LABEL when
3463         taking the address of a LABEL_REF.
3464
3465 2000-04-28  Richard Henderson  <rth@cygnus.com>
3466             Jan Hubicka  <jh@suse.cz>
3467
3468         * calls.c (combine_pending_stack_adjustment_and_call): Return the
3469         adjustment; don't do the stack adjust.
3470         (expand_call): Call compute_argument_block_size right before
3471         allocating the block; update comment; don't do alignment sanity
3472         checking for sibling call; use args_size instead of
3473         unadjusted_args_size before args_size is adjusted.  Use
3474         combine_pending_stack_adjustment_and_call to compute stack adjust
3475         for must_preallocate case.
3476
3477         * expr.c (push_block): Remove shadow `temp' in inner scope.
3478
3479 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
3480
3481         * toplev.c (rest_of_compilation): Call
3482         note_deferral_of_defined_inline_function even if the function
3483         can't be inlined.
3484
3485 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
3486
3487         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
3488
3489 2000-04-28  Richard Henderson  <rth@cygnus.com>
3490
3491         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
3492
3493 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3494
3495         * timevar.c (init_timevar): DeANSIfy function definition.
3496
3497 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
3498
3499         * Makefile.in (timevar.o): Depend on flags.h.
3500         * timevar.c (unused_stack_instances): New variable.
3501         (timevar_push): Take a timevar_stack_def from
3502         unused_stack_instances if available.
3503         (timevar_pop): Push the popped timevar_stack_def onto
3504         unused_stack_instances.
3505         (TIMEVAR_ENABLE): New macro.
3506         (timevar_def): Make standalone a 1-bit field.  Add field used.
3507         (get_time): Rename parameter to now.  Return after clearing it if
3508         not TIMEVAR_ENABLE.
3509         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
3510         (timevar_pop): Likewise.
3511         (timevar_stop): Likewise.
3512         (timevar_push): Likewise.  Mark the timing variable as used.
3513         (timevar_start): Likewise.
3514         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
3515         timevars that were never used.
3516
3517 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
3518
3519         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
3520         always TREE_READONLY.
3521
3522 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
3523
3524         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
3525         for call instruction with mode QImode.
3526
3527 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
3528
3529         * Makefile.in (OBJS): Add timevar.o.
3530         (toplev.o): Depend on timevar.h.
3531         (ggc-simple.o): Likewise.
3532         (ggc-page.o): Likewise.
3533         (timevar.o): New rule.
3534         (timevar.h): New rule.
3535
3536         * timevar.h: New file.
3537         * timevar.c: Likewise.
3538         * timevar.def: Likewise.
3539
3540         * toplev.h (gc_time, parse_time, varconst_time): Remove.
3541         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
3542         throughout.
3543         (TIMEVAR): Remove macro.
3544         (gc_time, parse_time, varconst_time, integration_time, jump_time,
3545         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
3546         flow_time, combine_time, regmove_time, sched_time,
3547         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
3548         sched2_time, dbr_sched_time, reorder_blocks_time,
3549         rename_registers_time, shorten_branch_time, stack_reg_time,
3550         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
3551         all_time): Remove.
3552         (compile_file): Don't initialize time variables.  Call
3553         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
3554         of many calls to print_time.
3555         (rest_of_compilation): Add timing for reload_cse_regs.
3556         (get_run_time): Removed to timevar.c.
3557         (print_time): Likewise.
3558         (get_run_time): Implement using TV_TOTAL time variable.
3559         (print_time): Get total run time from get_run_time.
3560         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
3561         computing elapsed time explicitly.
3562         * ggc-simple.c (ggc_collect): Likewise.
3563         (gc_time): Remove declaration.
3564
3565 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
3566
3567         * calls.c (combine_pending_stack_adjustment_and_call): New function.
3568         (expand_call): Use it.
3569
3570 2000-04-27  Jan Hubicka  <jh@suse.cz>
3571
3572         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
3573         fields.
3574
3575 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
3576
3577         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
3578         registers.
3579
3580 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3581
3582         * function.c (epilogue_done): Pass whole insn to record_insns.
3583
3584 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3585
3586         * cse.c (CSE_ADDRESS_COST): Remove.
3587         (find_best_addr): Add new parameter "MODE", use address_cost instead
3588         of CSE_ADDRESS_COST
3589         (address_cost): New.
3590         (fold_rtx): Update call of find_best_addr.
3591         * rtl.h (address_cost): Declare.
3592         * loop.c (general_induction_var): Add new parameter "MODE", use
3593         address_cost instead of ADDRESS_COST
3594         (init_loop): Use address_cost instead of ADDRESS_COST.
3595         (check_insn_for_givs): Update call of general_induction_var.
3596         (find_mem_givs): Likewise.
3597         (consec_sets_giv): Likewise.
3598         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
3599         * i386.c (ix86_address_cost): New.
3600         * i386-protos.h (ix86_address_cost): Declare.
3601
3602 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
3603
3604         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
3605         registers.
3606
3607 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3608
3609         * expr.c (store_expr): Use clear_storage instead of direct memset
3610         libcall.
3611
3612 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
3613
3614         * config/mn10300/mn10300.c (mn10300_address_cost): Test
3615         ASHIFT, AND and LABEL_REF.
3616
3617 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3618
3619         * invoke.texi (-foptimize-sibling-calls): Fix.
3620
3621 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3622
3623         * loop.c (load_mems)  Don't use hard registers for the hoisting.
3624
3625         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
3626         calculation; rename const_equiv array in the preconditioning code
3627         from loop_unroll to loop_unroll_precondition
3628
3629 2000-04-27  Richard Henderson  <rth@cygnus.com>
3630
3631         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
3632         add new_set.
3633         (propagate_one_insn): Clear it.  Don't update reg_live here.
3634         (init_propagate_block_info): Update for pbi member changes.
3635         (free_propagate_block_info): Likewise.
3636         (mark_set_1): Know that zero_extract, sign_extract, and
3637         strict_low_part don't kill their argument.  Alter hard subregs.
3638         Update new_set for non-CLOBBER sets.  Update reg_live.
3639         (find_auto_inc): Update reg_live, not new_dead.
3640         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
3641         to determine if the reg in question was set this insn.  Only update
3642         reg info with PROP_REG_INFO.
3643
3644 2000-04-26  Richard Henderson  <rth@cygnus.com>
3645
3646         * flow.c (allocate_reg_life_data): Set max_regno here ...
3647         (life_analysis): ... not here.
3648
3649         * flow.c (calculate_global_regs_live): Force stack pointer
3650         live at end.
3651
3652 2000-04-26  Richard Henderson  <rth@cygnus.com>
3653
3654         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
3655         commit change group changes.
3656         (invert_exp_1): Similarly.
3657         (redirect_exp, invert_exp): Use them.
3658         (redirect_jump_1): New.
3659         (invert_jump_1): New.
3660         (jump_optimize_1): Remove code subsumed by condexec.c.
3661         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
3662
3663 2000-04-26  Richard Henderson  <rth@cygnus.com>
3664
3665         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
3666
3667         * genconfig.c (main): Set all HAVE_foo to 1.
3668
3669         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
3670
3671 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
3672
3673         * invoke.texi: Document -fssa flag.
3674
3675 2000-04-26  Richard Henderson  <rth@cygnus.com>
3676
3677         * flow.c (count_reg_sets_1): Remove.
3678         (count_reg_sets, count_reg_references): Remove.
3679         (recompute_reg_usage): Implement with update_life_info.
3680         Reallocate life data.
3681
3682 2000-04-26  Richard Henderson  <rth@cygnus.com>
3683
3684         * flow.c (update_life_info): Consider blocks null to mean the
3685         universal set.
3686         (calculate_global_regs_live): Likewise.
3687         (life_analysis): Do that instead of collecting all_blocks.
3688
3689 2000-04-26  Richard Henderson  <rth@cygnus.com>
3690
3691         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
3692         a still-valid conditional jump.
3693
3694 2000-04-26  Richard Henderson  <rth@cygnus.com>
3695
3696         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
3697
3698         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
3699         * flow.c (calculate_loop_depth): Remove.
3700         * output.h (calculate_loop_depth): Don't declare.
3701         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
3702         inline; run estimate_probability at the same time.
3703
3704 2000-04-26  Neil Booth  <NeilB@earthling.net>
3705
3706         * cpplib.h: "~=" is not a single pp-token.
3707         * cpplex.c: Correct commentary.
3708
3709 2000-04-26  Richard Henderson  <rth@cygnus.com>
3710
3711         * flow.c (mark_set_1): New arguments code and flags; update all
3712         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
3713         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
3714         loop_depth when optimizing for size.  Do new_dead update after
3715         emitting REG_UNUSED notes.  Merge mark_set_reg code.
3716         (mark_set_reg): Remove.
3717         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
3718         arrange to not emit REG_UNUSED notes.
3719
3720 2000-04-26  Richard Henderson  <rth@cygnus.com>
3721
3722         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
3723         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
3724
3725 2000-04-26  Richard Henderson  <rth@cygnus.com>
3726
3727         * flow.c (propagate_one_insn): Break out from propagate_block.
3728         (init_propagate_block_info): Likewise.
3729         (free_propagate_block_info): Likewise.
3730         (propagate_block): Use them.  Export.
3731         * basic-block.h: Declare them all.
3732
3733 2000-04-26  Richard Henderson  <rth@cygnus.com>
3734
3735         * basic-block.h (life_analysis): Declare here ...
3736         * output.h: ... not here.
3737         * flow.c (life_analysis): Remove nregs parameter; replace
3738         remove_dead_code with flags.  Remove ssa dead code check.
3739         Only init alias analysis if we'll use it.
3740         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
3741         * ssa.c (convert_to_ssa): Likewise.
3742         (convert_from_ssa): Likewise.
3743         * toplev.c (rest_of_compilation): Likewise.
3744
3745 2000-04-26  Richard Henderson  <rth@cygnus.com>
3746
3747         * flow.c (flow_delete_block): Rename from delete_block.  Export.
3748         * basic-block.h (flow_delete_block): Declare.
3749
3750 2000-04-26  David S. Miller  <davem@redhat.com>
3751
3752         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
3753         taking a PATTERN of it.
3754
3755 2000-04-26  <NeilB@earthling.net>
3756
3757         * cpplex.c (spell_other, spell_char): Remove.
3758         (SPELL_CHAR): New.
3759         (token_spelling, trigraph_map): Use unsigned chars.
3760         (_cpp_lex_line): Tidy up the switch statement.
3761         * cpplib.h: Implement spell_char with spell_string.
3762         (C): New.
3763
3764 2000-04-26  <RodneyBrown@pmsc.com>
3765
3766         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3767         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3768
3769 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3770
3771         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
3772         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
3773         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
3774         dwarf2out_return_save, dwarf2out_return_reg,
3775         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
3776         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
3777         gen_compile_unit_die, dwarf2out_init): Constify a char*.
3778
3779         * dwarf2out.h (dwarf2out_init): Likewise.
3780
3781         * dwarfout.c (filename_entry, primary_filename, last_filename,
3782         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
3783
3784         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
3785         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
3786         dwarf2out_return_reg): Likewise.
3787
3788 2000-04-26  Andreas Jaeger  <aj@suse.de>
3789
3790         * extend.texi (Function Attributes): Fix description of pure
3791         attribute.
3792
3793 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3794
3795         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
3796         before calling rest_of_compilation.
3797
3798 2000-04-26  Andreas Jaeger  <aj@suse.de>
3799
3800         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
3801         last patch.
3802
3803 2000-04-25  Richard Henderson  <rth@cygnus.com>
3804
3805         * cse.c (cse_insn): Emit barrier after unconditional jump.
3806
3807         * calls.c (expand_call): Disable tail call generation once
3808         rtx_equal_function_value_matters is false.
3809
3810         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
3811         like EDGE_EH edges.
3812
3813 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
3814
3815         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
3816
3817         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
3818
3819         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
3820         is the primary DIE for a member function.
3821         (gen_decl_die): Call set_decl_origin_self here.
3822         * dwarfout.c (output_decl): And here.
3823         * integrate.c (output_inline_function): Not here.
3824         Don't clear DECL_INLINE until after calling rest_of_compilation.
3825         (set_decl_origin_self): No longer static.
3826         * tree.h: Add prototype.
3827         * toplev.c (note_deferral_of_defined_inline_function): Only write
3828         out abstract instance for actual inlines.
3829
3830 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
3831
3832         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
3833         EXTENDED_REGS only if TARGET_AM33.
3834         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
3835         SP_REGS to register allocation and reloading unless absolutely
3836         necessary.
3837         (movsi3): Remove special-case of adding non-constants to SP.
3838
3839 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3840
3841         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
3842         INCLUDES to search and does not provide any of its own.  Also it
3843         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
3844         parameters.  Also it does not call AC_DEFINE.
3845         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
3846         AC_DEFINE and provides for automatic entries for autoheader.
3847         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
3848
3849         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
3850         so we can pass -I flags and include gansidecl.h/system.h in this
3851         test.
3852
3853         * acconfig.h: Delete all NEED_DECLARATION_* entries.
3854
3855 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3856
3857         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3858         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3859         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
3860
3861         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3862         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3863         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
3864         for these macros.  Clean up spacing and linewraps.
3865
3866 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3867
3868         * calls.c (expand_call): Use get_callee_fndecl.
3869
3870         * print-tree.c (print_node): Print the chain of an _EXPR.
3871
3872 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
3873                           Jim Wilson  <wilson@cygnus.com>
3874                           Andrew Haley  <aph@cygnus.com>
3875
3876         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
3877         and gp save/restore problems.
3878         * config/ia64/crtend.asm: Add IA-64 unwind support.
3879         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
3880         in fr_pad_size calculation.
3881         (save_restore_insns): Move PR save area.  Correct uses of
3882         RTX_FRAME_RELATED_P.
3883         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
3884         (ia64_expand_epilogue): Add eh_epilogue support.
3885         (ia64_function_prologue): Emit .prologue directive.
3886         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
3887         (ia64_override_options): Set init_machine_status and
3888         mark_machine_status.
3889         (rtx_needs_barrier): Handle bsp reads and writes.
3890         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
3891         New static variables.
3892         (process_set, process_for_unwind_directive): New functions.
3893         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
3894         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
3895         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
3896         macros.
3897         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
3898         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
3899         (struct machine_function): Define.
3900         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
3901
3902 2000-04-25  Bruce Korb  <bkorb@gnu.org>
3903
3904         * fixinc/Makefile.in: make the removal of old programs more
3905         robust
3906         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
3907         install-bin and install-sh
3908
3909 2000-04-25  Nick Clifton  <nickc@cygnus.com>
3910
3911         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
3912         defined, define to return zero.
3913         (function_cannot_inline_p): If a function has any target
3914         specific attributes, then use the macro
3915         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
3916         whether it can be inlined.  If it cannot, issue a suitable
3917         explanation.
3918
3919         * tm.texi: Add a new node 'Inlining' to document the new macro
3920         FUNCTION_ATTRIBUTE_INLINABLE_P.
3921
3922 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
3923
3924         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
3925         commentary.
3926
3927 2000-04-25  Neil Booth  <NeilB@earthling.net>
3928
3929         Restore previous patch, plus the following fixes:
3930
3931         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
3932         flags, not CPP_OPEN_PAREN.
3933         * cpplex.c (expand_token_space, init_token_list,
3934         cpp_free_token_list): Put the dummy token at list->tokens[-1].
3935         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
3936
3937 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3938
3939         * config/i386/freebsd.h (INT_ASM_OP): Define.
3940
3941 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3942
3943         * loop.c (strength_reduce): Fix typo in the last checkin.
3944
3945 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3946
3947         * stor-layout.c (finalize_record_size): Simplify to use existing
3948         functions.
3949         (compute_record_mode): No longer static.
3950         * tree.h (compute_record_mode): New declaration.
3951
3952 2000-04-25  Neil Booth  <NeilB@earthling.net>
3953
3954         * Revert my patch below until cause of build failures
3955         determined.
3956
3957 2000-04-25  Richard Henderson  <rth@cygnus.com>
3958
3959         * combine.c (combine_instructions): Add missing argument
3960         to try_combine.
3961
3962         * toplev.c (rest_of_compilation): Delay sibcall optimization
3963         until after emit_eh_context.
3964
3965 2000-04-24  Nick Clifton  <nickc@redhat.com>
3966
3967         * combine.c (combine_instructions): Do not try to combine a
3968         sequence of insns when the second insn has been replaced by a
3969         note.
3970
3971 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
3972
3973         * gcc.c (load_specs): New static function.
3974         (read_specs): Use it.
3975
3976         * gcc.c (lookup_compiler): Make multiple passes for case
3977         insensitive filesystems.
3978
3979 2000-04-24  Neil Booth  <NeilB@earthling.net>
3980
3981         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
3982         * cpphash.h (_cpp_check_directive): new.
3983         * cpplex.c (handle_newline, cpp_free_token_list,
3984         init_trigraph_map, trigraph_ok, trigraph_replace,
3985         backslash_start, skip_block_comment, skip_line_comment,
3986         skip_whitespace, parse_name, parse_number, parse_string,
3987         copy_comment, _cpp_lex_line, spell_char, spell_string,
3988         spell_comment, spell_name, spell_other, _cpp_lex_file,
3989         _cpp_output_list): new.
3990         (expand_name_space): take length argument.
3991         (init_token_list): add comment list initialisation.
3992         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
3993         instead of HSPACE_BEFORE.
3994
3995         * cpplib.c (_cpp_check_directive): new
3996         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
3997         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
3998         (HSPACE_BEFORE): delete.
3999         (TTYPE_TABLE): rearrange.
4000         (struct cpp_toklist): update.
4001
4002 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4003
4004         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
4005         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
4006         argument form of AC_DEFINE.
4007
4008         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
4009         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
4010         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
4011         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
4012         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
4013
4014         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
4015
4016 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4017
4018         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
4019         deduced.h): Use -isystem, not -I, for including system headers.
4020
4021 2000-04-24  Nick Clifton  <nickc@cygnus.com>
4022
4023         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
4024         the source register is the frame pointer or arg pointer.
4025         (addsi3_small_int): Disallow if source register is the frame
4026         pointer or arg pointer.
4027
4028 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4029
4030         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
4031         call to AC_MSG_RESULT.
4032
4033 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4034
4035         * invoke.texi: Correct grammatical errors, document
4036         -fno-gnu-keywords as identical to -fno-asm for C++.
4037
4038 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4039
4040         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
4041         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
4042         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
4043         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
4044         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
4045
4046         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
4047         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
4048         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
4049         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
4050         new macros names.
4051
4052 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
4053
4054         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
4055         (pop_alignment): Likewise.
4056         (handle_pragma_token): Likewise.
4057
4058 2000-04-24  Robert Lipe <robertlipe@usa.net>
4059
4060         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
4061
4062 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
4063
4064         * combine.c (try_combine): Update reg_nonzero_bits of
4065         newi2pat before newpat.
4066
4067 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4068
4069         * loop.c (strength_reduce): Simplify test to INSN_P.
4070         (record_giv): Attempt to simplify the add value, use CONSTANT_P
4071         expressions instead of CONST_INT.
4072         (express_from_1): Likewise.
4073
4074 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
4075
4076         * regs.h (reg_n_max): Don't declare.
4077         * flow.c (reg_n_max): Don't define.
4078         * regclass.c (renumber): Don't initialize to zero.
4079         (regno_allocated): Likewise.
4080         (reg_n_max): Define.
4081         (allocate_reg_info): Don't initialize unnecessarily.
4082
4083 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
4084
4085         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
4086         and blockage_p in the newly allocated attribute.
4087
4088 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
4089
4090         * config/mn10300/mn10300.md (addsi): `inc4' on address
4091         registers does not modify cc, but `inc' on an extended
4092         register does.
4093
4094 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
4095
4096         * reload.c (find_equiv_reg): Checks all valueno regs
4097         as a reload_reg_p regs.
4098
4099 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
4100
4101         * cpphash.c (collect_objlike_expansion): Add sanity check.
4102         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
4103         the buffer is the empty string, return.  Mark __DATE__ and
4104         __TIME__ as XCONST nodes, not MCONST.
4105         (_cpp_macroexpand): Avoid pushing an empty buffer.
4106         (funlike_macroexpand): Don't pop token_buffer here.
4107
4108 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
4109
4110         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
4111         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
4112         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
4113         (REGNO_OK_FOR_BASE_P): Define in terms of them.
4114         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
4115         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
4116         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
4117
4118 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4119
4120         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
4121         constant MULT givs.
4122
4123 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
4124
4125         * cpphash.h (struct definition): Move file, line, col members...
4126         (struct hashnode): ... here.  Also add 'disabled' flag.
4127         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
4128         T_IDENTITY.  Remove T_DISABLED.
4129         Update prototypes.
4130
4131         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
4132         (collect_expansion): Split into collect_objlike_expansion and
4133         collect_funlike_expansion.
4134         (_cpp_macroexpand): Split out scan_arguments, stringify, and
4135         funlike_macroexpand.
4136         (_cpp_compare_defs): Rename compare_defs, make static.
4137         (_cpp_make_hashnode): Initialize hp->disabled.
4138         (macro_cleanup): Adjust for new token types.  Clear
4139         m->disabled.
4140         (_cpp_create_definition): Move code here to determine what
4141         sort of macro it is, and code to check for redefinitions, from
4142         do_define.  Implement a few simple cases without creating a
4143         full DEFINITION.
4144         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
4145         Handle the simple cases.
4146         (push_macro_expansion): Set buf->has_escapes and hp->disabled
4147         here.
4148
4149         * cppinit.c (builtin_array): Change MCONST to XCONST
4150         everywhere.
4151         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
4152         fix check for disabled and function-like macros.
4153         * cpplib.c (do_define): Move most logic to
4154         _cpp_create_definition.
4155         (do_undef): Handle new special token types.
4156
4157 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4158
4159         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
4160         of CONSTANT_P for mult_val; always use validate_change to update insn.
4161
4162 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
4163
4164         * cpphash.c (trad_stringify, add_pat): New functions.
4165         (collect_expansion): Restore support for -traditional syntax.
4166         Use trad_stringify and add_pat.
4167         (_cpp_macroexpand): Restore support for -traditional semantics.
4168         * cpplex.c (_cpp_scan_line): Don't change space_before if we
4169         get a COMMENT token.
4170         (_cpp_lex_token): Provide COMMENT tokens to caller if
4171         traditional and parsing_define_directive.
4172         (skip_comment): Warn about // comments if -Wtraditional.
4173         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
4174         proper node type.
4175         (do_undef): Don't warn about undefining EMPTY nodes.
4176
4177 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4178
4179         * loop.c (strength_reduce): Fix biv removal code.
4180
4181 2000-04-22  Richard Henderson  <rth@cygnus.com>
4182
4183         * predict.c (estimate_probability): Examine both sides of
4184         a branch for no exits.  Use 90% not 50% for predict taken.
4185         Reorg for one copy of note generation code.
4186
4187 2000-04-22  Richard Henderson  <rth@cygnus.com>
4188
4189         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
4190
4191 2000-04-22  Richard Henderson  <rth@cygnus.com>
4192
4193         * diagnostic.c (init_output_buffer): Don't initialize format_args.
4194         (output_clear): Likewise.
4195         (output_printf): Use va_copy.
4196         (vline_wrapper_message_with_location): Likewise.
4197         (v_message_with_decl): Likewise.
4198         (line_wrapper_printf): VA_START infor buffer.format_args directly.
4199         * system.h (va_copy): Provide default implementation.
4200
4201 2000-04-22  Richard Henderson  <rth@cygnus.com>
4202
4203         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
4204         the collected condition is not a constant.
4205
4206 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
4207
4208         * diagnostic.h: New file.
4209
4210         * Makefile.in (diagnostic.o): Depends on diagnostic.h
4211
4212         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
4213         various function prototypes.
4214         (diagnostic.h): #include.
4215         (struct output_buffer): Move into diagnostic.h.
4216         (get_output_prefix): Rename to output_get_prefix.  Export.
4217         (init_output_buffer): Export. Break out.  Ajust intialization.
4218         (output_space_left, output_append): Export.
4219         (output_newline): Rename to output_add_newline.  Export.
4220         (output_clear): Nullify additional output_buffer fields.
4221         (output_puts): Rename to output_add_string.  Export.
4222         (dump_output): Rename to output_flush_on.  Export.
4223         (build_location_prefix): Constify return-type.
4224         (emit_output_prefix): Rename to output_emit_prefix. Export.
4225         (set_real_maximum_length): New function.
4226         (output_set_maximum_length): Ditto
4227         (output_clear): Ditto.
4228         (output_add_character): Ditto.
4229         (output_add_integer): Ditto.
4230         (output_add_space): Ditto.
4231         (output_format): Ditto.
4232         (output_printf): Adjust buffer initialization.
4233         (vline_wrapper_message_with_location): Ditto.
4234         (v_message_with_decl): Ditto.  Adjust call to output_puts
4235         and get_output_prefix.
4236         (default_print_error_function): Adjust buffer intialization.
4237
4238 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4239
4240         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
4241         of VOID_TYPE.
4242
4243 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
4244
4245         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
4246         of explicit 0.
4247
4248 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
4249
4250         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
4251         accurate data about SP moves.
4252
4253 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
4254
4255         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
4256         aliases to AM33 registers.
4257
4258 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
4259
4260         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
4261         to all EXTENDED bitmaps.
4262
4263 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
4264
4265         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
4266         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
4267         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
4268
4269 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
4270
4271         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
4272         the operand is not constant.
4273
4274 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
4275
4276         * reload.c (find_equiv_reg): Checks all valueno and regno regs
4277         as a call-clobbered regs.
4278
4279 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4280
4281         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
4282         * rtl.h: Likewise.
4283         * rtl.def: Update comment.
4284         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
4285         * integrate.c (expand_inline_function): Likewise.
4286         * profile.c (branch_prob): Likewise.
4287         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
4288         * print-rtl.c (print_rtx): Likewise.
4289         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
4290         (reemit_notes): Likewise; also use enum insn_note.
4291
4292         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
4293         (place_field): Properly compute know and actual alignment.
4294
4295         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
4296         in proper format.
4297
4298         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
4299         note for REG1.
4300
4301 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
4302
4303         * cpphash.c (struct arg, struct arglist): Const-ify strings.
4304         (warn_trad_stringify, duplicate_arg_p): New helper functions.
4305         (collect_expansion): Rewrite to scan over a token list.
4306         Remove -traditional support.
4307         (collect_formal_parameters): Rename to collect_params; rewrite
4308         to scan over a token list.
4309         (_cpp_create_definition): Adjust to scan a token list.
4310         (_cpp_macroexpand): Remove -traditional support.
4311         (_cpp_compare_defs): Whitespace is now canonicalized.
4312         (comp_def_part): Delete function.
4313
4314         * cpphash.h: Update prototypes.
4315         * cpplex.c (init_token_list): Don't set lineno if there is no
4316         buffer.
4317         (pedantic_whitespace): New function.
4318         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
4319         consume a newline.  Use pedantic_whitespace.
4320         (_cpp_lex_token): Remove support for -traditional macros.
4321         (_cpp_get_define_token): Delete.
4322         (_cpp_get_directive_token): Do the real work here.  Use
4323         pedantic_whitespace.
4324         (_cpp_init_input_buffer): Initialize pfile->directbuf.
4325
4326         * cpplib.c (get_macro_name): Delete.
4327         (do_define): Read the entire line into pfile->directbuf, then
4328         feed the token list to _cpp_create_definition.
4329         * cpplib.h (HSPACE_BEFORE): new define.
4330         (struct cpp_reader): Add a toklist member, "directbuf".
4331
4332         * predict.c (estimate_probability): New heuristic: if a jump
4333         branches around a block with no successors, predict it taken.
4334         Disentangle control flow.
4335
4336 2000-04-20  Richard Henderson  <rth@cygnus.com>
4337
4338         * loop.c (emit_iv_add_mult): Revert last change.
4339
4340 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
4341
4342         * cpplib.h (enum cpp_ttype): Add token types for all
4343         punctuators.  Distinguish pp-numbers from valid C numbers.
4344         Give some tokens better names.  Initialize from macro.
4345         (struct cpp_name, cpp_token, cpp_toklist): New data
4346         structures.
4347         Update prototypes.
4348         * cpplex.c (bump_column, expand_name_space,
4349         expand_token_space, init_token_list, cpp_output_list,
4350         _cpp_scan_line):  New functions.
4351         (output_line_command): Add third argument, new line number.
4352         * cpphash.h: Update prototypes.
4353         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
4354         token names.
4355
4356 2000-04-20  Richard Henderson  <rth@cygnus.com>
4357
4358         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
4359
4360 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
4361
4362         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
4363         object pointed to.
4364
4365 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4366
4367         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
4368         REG_EQUAL note explaining the calculated value.
4369
4370         * calls.c (expand_call): Avoid unnecesary precalculation
4371         and outgoing parameters space guarding for sibling calls.
4372         (store_one_arg): Likewise.
4373
4374 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4375
4376         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
4377         (rest_of_compilation): Write sibling dump file and account
4378         for time as jump time.
4379         * invoke.texi: Update documentation on dump flags.
4380
4381 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
4382
4383         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
4384
4385 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
4386
4387         * cpphash.c (special_symbol): Represent an empty macro with
4388         "\r \r " not just "\r ".
4389         (_cpp_macroexpand): Correct condition for the foo ( ) special
4390         case.
4391         (unsafe_chars): Handle EOF as second argument.
4392         (push_macro_expansion): Simplify test for removing escape at
4393         end.  Do not trim both escapes if there is no text in between.
4394
4395 2000-04-19  Jim Blandy  <jimb@redhat.com>
4396
4397         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
4398         of PTR_SIZE, when appropriate.
4399
4400 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
4401
4402         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
4403         (USE_ENUM_BITFIELDS): Fix typo.
4404
4405 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4406
4407         * stor-layout.c (place_field): Set rli->offset_align properly.
4408
4409 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4410
4411         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
4412         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
4413         PARM_BOUNDARY): Remove unnecessary casts.
4414
4415 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4416
4417         * calls.c (precompute_arguments): Remove must_preallocate and
4418         args_size calls.
4419         (expand_call): Update call of precompute_arguments.
4420
4421         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
4422         check_insn_for_givs): Break out from ...
4423         (strength_reduce) ... here; use for_every_insn_in_loop to call
4424         check_insn_for_givs.
4425         * loop.h (for_every_insn_in_loop): Declare.
4426         (loop_insn_callback): New type.
4427
4428 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
4429
4430         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
4431         not nul-terminated.
4432
4433 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
4434
4435         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
4436         flag_pic and RELOC.
4437
4438 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
4439
4440         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
4441
4442         * configure.in: Delete --disable-cpplib option and all
4443         references to cpp_main.
4444         * configure: Regenerate.
4445         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
4446         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
4447         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
4448         cpp$(exeext).  Add --no-headers to makeinfo command line when
4449         generating INSTALL.  Install and uninstall cpp.1 manpage, not
4450         cccp.1.
4451         * install.texi: Delete all references to cexp.y/cexp.c.
4452         Delete ancient instructions for compiling GCC on 3b1.
4453         * INSTALL: Regenerate.
4454
4455         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
4456         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
4457         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
4458         cexp.c/cexp.y.
4459         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
4460         which is no longer tested anywhere.
4461
4462         * cppinit.c (handle_option): Don't run error message through
4463         gettext twice.
4464
4465 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4466
4467         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
4468         * cpperror.c (hashtab.h): Now include.
4469         * cppexp.c (hashtab.h): Likewise.
4470         * cpplex.c (hashtab.h): Likewise.
4471         * cppfiles.c (hashtab.h): Likewise.
4472         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
4473         to htab_find_slot_with_hash.
4474         * cpphash.c (hashtab.h): Now include.
4475         (_cpp_lookup_slot): INSERT is now enum insert_option.
4476         * cpphash.h (_cpp_lookup_slot): Likewise.
4477         * cppinit.c (hashtab.h): Include earlier.
4478         (initialize_builtins): Pass enum to htab_find_slot.
4479         * cpplib.c (hashtab.h): Now include.
4480         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
4481         (do_pragma_poison, do_assert): Likewise.
4482         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
4483         htab_find_slot_with_hash.
4484         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
4485         * tree.c (type_hash_add): Likewise.
4486         (build1): Minor cleanup.
4487
4488         * ggc-common.c: Add missing blanks.
4489         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
4490         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
4491
4492         * stmt.c (mark_case_node): New function.
4493         (mark_case_nesting): Call it.
4494
4495         * expmed.c (emit_store_flag): If comparing two-word integer
4496         with zero, can optimize NE, EQ, GE, and LT.
4497
4498         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
4499         * conflict.c: Minor cleanups.
4500         * optabs.c: Add blank line
4501         * simplify-rtx.c: Minor cleanups.
4502
4503 2000-04-18  Stan Cox  <scox@cygnus.com>
4504
4505         * gengenrtl.c (genlegend): Fix misspelling.
4506
4507 2000-04-18  Robert Lipe  <robertlipe@usa.net>
4508
4509         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
4510         bitfields of the host compiler are not signed quantities.
4511         * config.in: Regenerate.
4512         * configure: Regenerate.
4513         * system.h (USE_ENUM_BITFIELDS): Added.
4514         (ENUM_BITFIELDS): Added.
4515         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
4516         (SHORT_ENUM_BUG): Deleted.
4517         * tree.h (tree_common): Members `code', `mode', `built_in_class',
4518         now ENUM_BITFIELD.
4519         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
4520         (CODE_FIELD_BUG): Likewise.
4521         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
4522         (OLD_CC): Likewise.
4523         * config/m68k/x-ccur (X_CFLAGS): Likewise.
4524
4525 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
4526
4527         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
4528         mark is active.
4529
4530 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4531
4532         * cppexp.c (lex): Don't assume tokens are NUL terminated.
4533         * cpplib.c (do_include, do_import, do_include_next,
4534         read_line_number, detect_if_not_defined): Likewise.
4535         * cpphash.c (collect_expansion): Likewise.
4536         (special_symbol, _cpp_macroexpand): Check return from
4537         cpp_file_buffer.
4538         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
4539         macros.  Delete all uses.
4540
4541         * gcc.dg/cpp-mi.c: Add two more test cases.
4542         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
4543
4544 2000-04-17  Richard Henderson  <rth@cygnus.com>
4545
4546         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
4547         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
4548
4549 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
4550
4551         * function.c (expand_function_start): Use hard_function_value to
4552         compute the RTL to use for DECL_RESULT.
4553
4554 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4555
4556         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
4557         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4558          x86_memory_mismatch_stall): New global variables.
4559         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
4560         alloved; fix load penalties for Athlon.
4561         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4562         x86_memory_mismatch_stall): Declare.
4563         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
4564          TARGET_MEMORY_MISMATCH_STALL): New.
4565         * i386.md (athlon scheduling parameters): Fix latencies according to
4566         Athlon Optimization Manual.
4567         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
4568         vector.
4569         (fsqrt instruction patterns): Set athlon_decode to direct.
4570         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
4571         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
4572         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
4573         and TARGET_PARTIAL_REGISTER_STALL machines.
4574         (pushdf_nointeger): New pattern.
4575         (pushdf_integer): Rename from pushdf.
4576         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
4577         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
4578
4579 2000-04-17  Richard Henderson  <rth@cygnus.com>
4580
4581         * loop.c (canonicalize_condition): Add WANT_REG argument.
4582         Stop the search if we match it.
4583         * expr.h (canonicalize_condition): Update decl.
4584         * predict.c (expected_value_to_br_prob): Use it.  Track last
4585         expected value note.
4586         (find_expected_value): Remove.
4587
4588         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
4589
4590 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4591
4592         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
4593         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
4594         a plain file.
4595         * configure.in: Call AC_FUNC_MMAP_FILE.
4596         * configure: Regenerate.
4597         * config.in: Regenerate.
4598
4599         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
4600         * fixinc/fixincl.c: Likewise.
4601
4602 2000-04-17  Richard Henderson  <rth@cygnus.com>
4603
4604         * builtins.c (expand_builtin_expect): New.
4605         (expand_builtin): Call it.
4606         * builtins.def (BUILT_IN_EXPECT): New.
4607         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
4608         * extend.texi: Document it.
4609
4610         * predict.c (expected_value_to_br_prob): New.
4611         (find_expected_value): New.
4612         * basic-block.h (expected_value_to_br_prob): Declare.
4613         * toplev.c (rest_of_compilation): Invoke it.
4614
4615         * rtl.h (NOTE_EXPECTED_VALUE): New.
4616         (NOTE_INSN_EXPECTED_VALUE): New.
4617         * rtl.c (note_insn_name): Update.
4618         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
4619         cases; handle NOTE_INSN_EXPECTED_VALUE.
4620
4621 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
4622
4623         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
4624         leaf sibcall delay slot if flag_pic.
4625         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
4626
4627 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4628
4629         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
4630
4631         * fixproto: If fix-header fails, exit with an error.
4632
4633 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4634
4635         * cse.c (struct check_depdendence_data): New.
4636         (check_dependence): New function.
4637         (invalidate): Use check_depdenence.
4638
4639 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4640
4641         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
4642         UNITS_PER_WORD is unsigned.
4643
4644         * tree.h (struct tree_common): Remove misleading comment.
4645
4646 2000-04-16  Dave Pitts  <dpitts@cozx.com>
4647
4648         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
4649         message in quotes. Otherwise, IBM's make program treats the '#' as the
4650         start of a comment and ignores the remainder of the line.
4651
4652         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
4653         upper case.
4654         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
4655         * cexp.y (initialize_random_junk): Likewise.
4656         * cppfiles.c (find_include_file): Cast alloca return value.
4657         * cppinit.c (initialize_standard_includes): Likewise.
4658         * cpplib.c (cpp_define, cpp_undef): Likewise.
4659         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
4660         * final.c (output_asm_insn): Allow for holes in EBCDIC.
4661         * fold-const.c (CHARMASK): New.
4662         (real_hex_to_f): Use it.
4663         * real.c (CHARMASK): New.
4664         (etoasc, asctoeg): Use it.
4665         (asctoeg): EBCDIC lower case characters preceed upper case.
4666
4667         * i370.c (mvs_add_label): Change spacing for coding conventions.
4668         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
4669         outputing case vectors.
4670         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
4671         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
4672         since vector in in the data CSECT.
4673         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
4674         * i370.md (Many patterns): Put the length in the XL directives.
4675         (movdi): Put back STM and MVC in definition.
4676         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
4677         pattern using the TCA.
4678         * oe.h (CPP_SPEC): Added to allow trigraphs.
4679         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
4680         not support the "long long" type.
4681
4682 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4683
4684         * config/mips/mips-protos.h (mips_legitimate_address_p): New
4685         function.
4686         (mips_reg_mode_ok_for_base_p): Likewise.
4687         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
4688         (REG_OK_FOR_INDEX_P): Define unconditionally.
4689         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
4690         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
4691         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
4692         that GET_MODE_SIZE is unsigned.
4693         (mips_reg_mode_ok_for_base_p): Define.
4694         (mips_legitimate_address_p): Likewise.  Adjust now
4695         that GET_MODE_SIZE is unsigned.
4696         (block_move_loop): Make the number of bytes unsigned.
4697         (expand_block_move): Likewise.
4698         (function_arg): Make the loop counter unsigned to match the
4699         boundary condition.
4700
4701 2000-04-16  Richard Henderson  <rth@cygnus.com>
4702
4703         * rtl.h (enum insn_note): New enumeration.  Subsume
4704         NOTE_INSN_DELETED and friends.
4705         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
4706         * rtl.c (note_insn_name): Tweak string order.
4707
4708 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
4709
4710         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
4711         to offset * 2.
4712
4713         * cpplex.c (output_line_command): Remove debugging prints.
4714         (cpp_output_tokens): Don't write out a zero-length buffer or
4715         try to see if it has a newline in it.
4716         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
4717         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
4718         the end of the loop.  Use memmove.  Don't read past the end of
4719         the buffer.  Remove trailing newlines from error messages.
4720
4721 2004-04-16  Neil Booth  <NeilB@earthling.net>
4722
4723         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
4724         * cpplib.c: Add new syntax flags to directive table, and
4725         supporting macros.
4726
4727 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
4728
4729         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
4730         using ret $N.
4731
4732 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
4733
4734         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
4735         * haifa-sched.c: Update -fsched-verbose comments to use "=".
4736
4737 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4738
4739         * Makefile.in (ggc-page.o): Now includes toplev.h.
4740         * ggc-page.c (toplev.h): Now included.
4741         (gc_time): Remove declaration.
4742         (ggc_collect): TIME now long.
4743         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
4744         others static.
4745         * toplev.h (gc_time, parse_time, gc_time): New declarations.
4746
4747         * toplev.c: Make *_time variable long to reduce chance of overflow.
4748         (TIMEVAR): Likewise for `otime'.
4749         (print_time): Arg is now long; compute percentage in FP and round.
4750         * toplev.h (print_time): Arg is long.
4751
4752         * tree.c: Minor whitespace changes.
4753
4754         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
4755         * configure: Rebuilt.
4756         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
4757         (__fixunsxfDI): Renamed from __fixunsxfdi.
4758         (__fixunsdfDI): Renamed from __fixunsdfdi.
4759         (__fixunssfDI): Renamed from __fixunssfdi.
4760         (__floatdisf): Use proper type in REP_BIT macro.
4761         (__fixunsxfSI): Renamed from __fixunsxfsi.
4762         (__fixunsdfSI): Renamed from __fixunsdfsi.
4763         (__fixunssfSI): Renamed from __fixunssfsi.
4764         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
4765         Change location of macros and upper-case some names as above.
4766         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
4767         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
4768
4769         * varasm.c (assemble_variable): Add cast to remove warning.
4770         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
4771
4772         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
4773         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
4774         region number to -1.
4775
4776 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
4777
4778         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
4779         call unshare_all_rtl.
4780
4781         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
4782
4783 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
4784
4785         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
4786         Use .s1 not .s0 for all FP instructions.
4787
4788 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
4789
4790         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
4791         interfaces.
4792         (safe_fwrite, output_line_command): New static functions.
4793         (cpp_expand_to_buffer): Now private to cpplib.
4794         (cpp_scan_buffer): Take a printer.
4795
4796         * cpphash.h: Update prototypes.
4797         * cpplib.h: Update prototypes.
4798         (cpp_printer): New.
4799         (cpp_buffer): Remove last_nominal_fname.
4800         (cpp_reader): Remove lineno.
4801
4802         * cppmain.c: Use a cpp_printer.
4803         * fix-header.c: No need to inhibit line commands.  Call
4804         cpp_start_read with no printer.
4805
4806         * cpperror.c (cpp_notice_from_errno): Provide default name.
4807         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
4808         (find_include_file, cpp_read_file): Use make_IHASH.
4809         (file_cleanup): Set control_macro and clear
4810         input_stack_listing_current here.
4811         (_cpp_execute_include): Don't output entering-file marker.
4812         * cpphash.c (special_symbol): Look for the line number in the
4813         buffer, not the reader.
4814         (_cpp_macroexpand): No need to disable line commands.
4815         (_cpp_dump_definition): No need to generate line commands.
4816         (dump_hash_helper): Remove excess newline from output.
4817         * cppinit.c (dump_special_to_buffer): No need to generate line
4818         commands.
4819         (cpp_printer_init): New.
4820         (cpp_start_read): Take a printer, and start it up if it's not
4821         NULL.  No need to generate line commands.
4822         (cpp_finish): Expect no buffers stacked at all.  Take a
4823         printer argument, and flush the output buffer if it's not
4824         NULL.
4825         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
4826         Don't put two hashes at the beginning of an assertion.
4827         (cpp_get_token): Don't increment pfile->lineno or emit line
4828         commands here.  Return EOF if there's no buffer when we get
4829         EOF.
4830         * cpplib.c (do_define, skip_if_group):
4831         No need to disable line commands.
4832         (_cpp_output_line_command): Delete function.
4833         (do_line): Don't emit line commands here, but set things up so
4834         they will be emitted if necessary.  Use _cpp_fake_ihash to
4835         make unique nominal_fnames if necessary.
4836         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
4837         with 0 for column, not -1.
4838         (_cpp_handle_eof): Don't set the control macro here.  Don't
4839         clear input_stack_listing_current here.  Don't emit line
4840         commands.
4841
4842 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
4843
4844         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
4845         always, use the default SVR4 start address.
4846
4847         * config/rs6000/linux.h (LINK_SPEC): Don't define.
4848         (LINK_SHLIB_SPEC): Define.
4849         (LINK_START_DEFAULT_SPEC): Define.
4850         (LINK_OS_DEFAULT_SPEC): Define.
4851
4852         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
4853
4854         * config/rs6000/eabi.asm (__eabi): Call __init rather than
4855         __do_global_ctors to handle constructors.
4856         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
4857         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
4858         (STARTFILE_MVME_SPEC): Likewise.
4859         (STARTFILE_SIM_SPEC): Likewise.
4860         (ENDFILE_ADS_SPEC): Use crtend.
4861         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
4862         (ENDFILE_MVME_SPEC): Likewise.
4863         (ENDFILE_SIM_SPEC): Likewise.
4864         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
4865         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
4866         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
4867         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
4868         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
4869         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
4870         (CRTSTUFF_T_CFLAGS_S): Define.
4871         * config/rs6000/eabi-ctors.c: Delete.
4872
4873         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
4874         boundary.
4875         (__fini): Likewise.
4876         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
4877         boundary.
4878         (__fini): Likewise.
4879
4880 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
4881
4882         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
4883         plus mask size is smaller or equal to the mode size.
4884
4885 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4886
4887         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
4888         not yet set.
4889
4890         * expr.c (reload.h): Now included.
4891         (emit_block_move): Set volatile_ok when checking for movstr.
4892         (emit_move_1): Check for replacements in addresses in multi-word case.
4893         * Makefile.in (expr.o): Now includes reload.h.
4894
4895         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
4896         Never have a LIBCALL end a basic block.
4897         (find_basic_blocks_1): Likewise.
4898         Reorganize CALL_INSN cases.
4899
4900         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
4901
4902 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
4903
4904         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
4905         completers from mov.ret instruction.
4906
4907 2000-04-14  Richard Henderson  <rth@cygnus.com>
4908
4909         * fold-const.c (extract_muldiv): Don't distribute and widen
4910         multiply across plus for non-sizetype unsigned types.
4911
4912 2000-04-14  Richard Henderson  <rth@cygnus.com>
4913
4914         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
4915         If the original source is dead in the incr insn, it's dead now.
4916
4917 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4918
4919         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
4920         see if DECL_BIT_FIELD needs to still be set.
4921
4922         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
4923
4924         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
4925         print_int_cst_octal with something that's not an INTEGER_CST.
4926
4927         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
4928         and not a SUBREG to a FLOAT rtl.
4929
4930 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
4931
4932         * emit-rtl.c (try_split): Avoid infinite loop if the split
4933         results in a sequence that contains the original insn.
4934
4935 2000-04-13  Andreas Jaeger  <aj@suse.de>
4936
4937         * config/mips/mips.c (expand_block_move): Pass alignment
4938         argument to move_by_pieces in bits, not bytes.
4939
4940         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
4941         __pic__ for little endian.
4942
4943 2000-04-13  Andreas Jaeger  <aj@suse.de>
4944
4945         * config/i386/i386-protos.h: Add prototype for
4946         uno_comparison_operator.
4947
4948 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4949
4950         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
4951         * calls.c (ECF_PURE): New flag.
4952         (emit_call_1): Handle ECF_PURE calls.
4953         (initialize_argument_information): Unset ECF_PURE flag too.
4954         (precompute_arguments): Precompute for ECF_PURE too.
4955         (expand_call): Handle ECF_PURE calls too.
4956         (emit_library_call_value_1): Rename no_queue argument to fn_type,
4957         accept value of 2 as pure function.
4958         (emit_library_call_value, emit_library_call): Rename no_queue argument
4959         to fn_type.
4960         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
4961
4962         * tree.h (DECL_IS_PURE): New macro.
4963         (struct tree_decl): Add pure_flag.
4964         * c-common.c (enum attrs): Add attribute "pure".
4965         (init_attributes): Initialize attribute "pure"
4966         (decl_attributes): Handle attribute "pure".
4967         * extend.texi (Attribute "pure"): Document.
4968         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
4969         in pure function.
4970         (flags_from_decl_or_type): Support attribute "pure".
4971
4972 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
4973
4974         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
4975         the token except for numbers and identifiers.
4976
4977 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
4978
4979         * i386.c (ix86_expand_binary_operator,
4980         ix86_expand_unary_operator): Check no_new_pseudos
4981         instead of reload_in_progress and reload_completed.
4982         (ix86_split_ashldi, ix86_split_ashrdi,
4983         ix86_split_lshrdi): Check no_new_pseudos instead
4984         of reload_completed.
4985
4986 2000-04-12  Jeffrey A Law  (law@cygnus.com)
4987
4988         * function.c (purge_addressof): Unshare any shared rtl created by
4989         purge_addressof and its children.
4990
4991 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
4992
4993         * function.c (aggregate_value_p): VOID_TYPE nodes are never
4994         aggregates.
4995
4996 2000-04-05  Andreas Jaeger  <aj@suse.de>
4997
4998         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
4999         not compiling PIC code, add flags for mabi=64.
5000         (SUBTARGET_CPP_SIZE_SPEC): New.
5001         (SUBTARGET_CPP_SPEC): New.
5002         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
5003         for MIPS/Linux and lots of code needs these defines.
5004
5005 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
5006
5007         * reorg.c (fill_slots_from_thread): Check side_effects_p when
5008         trying the "opposite arithmetic" approach.
5009
5010 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5011
5012         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
5013         (struct sh_args): Add new field force_mem.
5014         (INIT_CUMULATIVE_ARGS): Initialize it.
5015         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
5016
5017 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5018
5019         * calls.c (expand_call): Do not reverse args in "equal from" field.
5020         (emit_library_call_value_1): Emit_libcall_block for const and pure
5021         function.
5022
5023 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5024
5025         * reload1.c (reload_combine): Don't enable optimization for fixed
5026         registers when encountering a BARRIER.
5027
5028 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5029
5030         * builtins.c (expand_builtin_memcmp): Do expansion even with
5031         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
5032
5033         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
5034         stack is propertly aligned; add sanity checking for aligned
5035         stack pointer.
5036         (expand_library_call_value_1): Add sanity checking for aligned
5037         stack pointer.
5038
5039 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
5040
5041         * calls.c (emit_library_call_value_1): Change 3rd arg to
5042         locate_and_pad_parm to disregard the setting of partial.
5043
5044 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5045
5046         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
5047
5048         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
5049         CALL_INSN from the normal case.
5050
5051 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5052
5053         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
5054         New global variables.
5055         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
5056         adjustment.
5057         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
5058         Declare,
5059         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
5060          TARGET_ADD_ESP_8): New macros.
5061         * i386.md: Add peep2s to convert esp adjustments to push and pop
5062         instructions.
5063         (pushsi_prologue, popsi_epilogue): New patterns.
5064
5065 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
5066
5067         * real.c (toe64): Remove stale #endif from the last change.
5068
5069 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
5070
5071         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
5072         * real.c (toe64): Revert previous change.
5073
5074 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
5075
5076         * objc/objc-act.c: Include ggc.h.
5077         (objc_tree_index, objc_global_trees): Convert most of the
5078         static tree variables into a static array with previous names
5079         as defines.
5080         (objc_ellipsis_node): New variable.
5081         (lang_init): Call objc_act_parse_init and c_parse_init.
5082         Create objc_ellipsis_node.
5083         (build_selector_translation_table): Use objc_ellipsis_node instead
5084         of (tree)1.
5085         (hack_method_prototype): Likewise.
5086         (get_arg_type_list): Likewise.
5087         (start_method_def): Likewise.
5088         (continue_method_def): Likewise.
5089         (gen_method_decl): Likewise.
5090         (ggc_mark_imp_list): New function.
5091         (ggc_mark_hash_table): New function.
5092         (objc_act_parse_init): New function.
5093         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
5094         * c-parse.in (c_parse_init): For objc add roots of objc specific
5095         local tree variables.
5096         * objc/objc-parse.y: Rebuilt.
5097         * objc/objc-parse.c: Rebuilt.
5098         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
5099
5100 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
5101
5102         * cse.c (delete_trivially_dead_insns): Also delete insns
5103         that copy a register to itself where the destination is
5104         a strict_low_part.
5105
5106 2000-04-11  Richard Henderson  <rth@cygnus.com>
5107
5108         * flow.c (struct propagate_block_info): Add new_dead, new_live.
5109         (propagate_block): Initialize them.  Use them in parallel instead
5110         of one tmp variable, ie revert much of the 0408 and 0407 functional
5111         changes, but keep the structural changes.
5112         (mark_set_regs): Take new_dead from propagate_block_info instead.
5113         (mark_set_1, mark_set_reg): Likewise.
5114         (mark_used_regs): Likewise with new_live.
5115         (mark_used_reg): Likewise.  Revert 0408 change.
5116
5117 2000-04-11  Nick Clifton  <nickc@cygnus.com>
5118
5119         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
5120         restriction.
5121         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
5122
5123 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5124
5125         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
5126         const section to output a CONSTRUCTOR based on the same conditions
5127         used for VAR_DECLs.
5128
5129 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
5130
5131         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
5132         * pa/pa-protos.h (output_call): Add additional argument indicating
5133         if the call is a sibling/tail call.
5134         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
5135         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
5136         (function_arg, function_arg_partial_nregs): Likewise
5137         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
5138         (emit_move_sequence): Zero extend certain constants as needed
5139         for TARGET_64BIT.
5140         (compute_zdepdi_operands, output_64bit_and): New functions.
5141         (output_64bit_ior, function_arg): Likewise.
5142         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
5143         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
5144         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
5145         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
5146         (output_bvb): Likewise.
5147         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
5148         (output_call): New argument 'sibcall'.  Generate sibcall sequences
5149         as needed.
5150         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
5151         (ouput_arg_descriptor): Do not emit argument descriptors for
5152         TARGET_64BIT.
5153         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
5154         defined.
5155         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
5156         (FUNCTION_OK_FOR_SIBALL): Define.
5157         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
5158         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
5159         (CPP_SPEC): Use new spec infrastructure.
5160         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
5161         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
5162         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
5163         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
5164         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
5165         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
5166         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
5167         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
5168         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
5169         (FUNCTION_ARG); Call out to C code.
5170         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
5171         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
5172         (MIN_UNITS_PER_WORD): Likewise.
5173         * pa/pa.md (cmpdi): New expander.
5174         (scc patterns, movstrsi): Not available for TARGET_64BIT.
5175         (64bit conditional arithmetic): New patterns.
5176         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
5177         (movsicc): Not available if modes on all the operands to not match.
5178         (movdicc): New expander and associated patterns.
5179         (64bit branches): New patterns.
5180         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
5181         (pre_ldd, post_std): New patterns.
5182         (64bit addil, load low part): New patterns.
5183         (special movsf constant): Not available for TARGET_64BIT.
5184         (movsf, movdf expanders): Force constants into memory.
5185         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
5186         (64bit movdf/movdi patterns): New patterns.
5187         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
5188         for TARGET_64BIT.
5189         (extendqidi2, extendhidi2, extendsidi2): Similarly.
5190         (adddi3 expander): Allow "arith_operand" for second input.
5191         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
5192         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
5193         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
5194         (muldi3): New expander for TARGET_64BIT.
5195         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
5196         for TARGET_64BIT.
5197         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
5198         patterns for TARGET_64BIT.
5199         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
5200         patterns for TARGET_64BIT.
5201         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
5202         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
5203         (sibcall_epilogue): New expander.
5204         (casesi): Tweak for TARGET_64BIT.
5205         (call expanders): Set & use the outgoing argument pointer.  Use the
5206         64bit call patterns as needed. Add additional arg to output_call.
5207         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
5208         (sibcall, sibcall_internal_symref): New expanders.
5209         (sibcall_value, sibcall_value_internal_symref
5210         (interspace_jump): Turn into an expander + matching patterns.
5211         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
5212         * pa/pa64-regs.h: Eliminate trigraph sequences.
5213         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
5214
5215 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
5216
5217         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
5218         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
5219         cpp_token with cpp_ttype everywhere.
5220         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
5221         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
5222         CPP_BUF_COL.  Line and column numbers are unsigned int, not
5223         long.
5224         * cpplex.c (cpp_buf_line_and_col): Delete.
5225         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
5226         'long lineno' to 'unsigned int lineno'.
5227         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
5228
5229 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5230
5231         * extend.texi: ISO C99 is not a draft anymore.
5232         * invoke.texi: ISO C++ is not a draft anymore.
5233         * cpp.texi: __cplusplus is required by the ISO standard.
5234
5235         * extend.texi (-fthis-is-variable): Undocument.
5236         * flags.h (warn_template_debugging): Remove declaration.
5237         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
5238         -Wenum-clash, -Wtemplate-debugging): Undocument.
5239
5240 2000-04-10  Nick Clifton  <nickc@cygnus.com>
5241
5242         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
5243         integer.
5244         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
5245         integer.
5246         (ARM_SIGN_EXTEND): Use HOST_UINT.
5247         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
5248         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
5249         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
5250         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
5251
5252         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
5253         (arm_gen_constant): Use HOST_UINT.
5254         (arm_canonicalize_constant): Use HOST_UINT.
5255         (arm_reload_in_hi): Use HOST_UINT.
5256         (arm_reload_out_hi): Use HOST_UINT.
5257         (output_multi_immediate): Use HOST_UINT.
5258         (int_log2): Use HOST_UINT.
5259         (arm_poke_function_name): Use HOST_UINT.
5260         (arm_output_epilogue): Use arm_volatile_func().
5261         (output_thumb_prologue): Use arm_strip_name_encoding().
5262
5263 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5264
5265         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
5266         of sequence point problems.
5267
5268 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
5269
5270         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
5271         Recomment.
5272         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
5273
5274 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5275
5276         * sbitmap.h: Whitespace changes and use upper-case macro args.
5277         (struct simple_bitmap_def): All sizes now unsigned.
5278         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
5279         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
5280         (sbitmap_vector_alloc): Parms and local vars now unsigned.
5281         (sbitmap_zero): Cast bzero arg to PTR.
5282         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
5283         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
5284         loop to make structure clearer.
5285         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
5286         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
5287         (sbitmap_a_and_b_or_c): Likewise.
5288         (sbitmap_intersection_of_succs): Minor cleanups.
5289         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
5290         (sbitmap_union_of_preds): Likewise.
5291         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
5292         (debug_sbitmap): New function.
5293
5294         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
5295         * c-typeck.c (convert_for_assignment): Likewise.
5296
5297         * expmed.c (init_expmed): Don't free objects we make.
5298         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
5299
5300         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
5301         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
5302
5303         * gcse.c (expr_hash_table_size): Now unsigned.
5304         (compute_ae_gen): Local variable `i' now unsigned.
5305         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
5306         (compute_transout, hoist_code): Likewise.
5307         (compute_local_properties): Likewise, also hash_table_size.
5308         (alloc_expr_hash_table): N_INSNS now unsigned.
5309         (delete_null_pointer_checks): Mark arg F as unused.
5310
5311         * regrename.c: Minor cleanups, including chang some variables
5312         to unsigned int.
5313
5314 2000-04-10  Neil Booth  <NeilB@earthling.net>
5315
5316         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
5317         than GETC ().
5318         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
5319
5320 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5321
5322         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
5323         __classof__, and __headof__ from the list of gnu keywords.
5324         (-ansi): Remove -foperator-names from list of implied options.
5325         Do not call it ANSI C++.
5326         (-foperator-names): Document as -fno-operator-names.
5327
5328 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
5329
5330         * cpphash.c (timestamp): Delete.
5331         (del_HASHNODE): If type is T_MCONST, free value.cpval.
5332         (special_symbol): Remove unnecessary braces.  Remove
5333         T_VERSION.  Treat T_STDC like T_CONST unless
5334         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
5335         when one is encountered, then convert them into T_MCONST
5336         nodes.
5337         * cppinit.c (builtin_array): version_string is T_MCONST.
5338         __STDC__ has a "1" in its cpval.  Don't have a terminator
5339         entry.  Clean up which entries are dumped.
5340         (initialize_builtins): Only __STDC__ gets the special
5341         -traditional treatment.  Count the length of builtin_array.
5342         Render version_string here.
5343         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
5344         * cpplib.h (struct cpp_reader): Remove timebuf.
5345
5346 2000-04-09  Richard Henderson  <rth@cygnus.com>
5347
5348         * genrecog.c (pred): Update comparison_operator for the unordered
5349         operators.
5350
5351         * config/i386/i386.c (no_comparison_operator): Disallow unordered
5352         operators.
5353         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
5354         (uno_comparison_operator): New.
5355         (put_condition_code): Handle UNORDERED/ORDERED.
5356         (unsigned_comparison): Likewise.
5357         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
5358         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
5359         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
5360         update all callers.  Handle all 8 unordered operators.
5361         (ix86_expand_setcc): Lose the unordered argument, update all callers.
5362         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
5363         * config/i386/i386.h (PREDICATE_CODES): Update.
5364         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
5365         (ix86_expand_branch, ix86_expand_setcc): Update.
5366         * config/i386/i386.md (sunordered, sordered): New.
5367         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
5368         (bunordered, bordered): New.
5369         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
5370         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
5371         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
5372
5373 2000-04-09  Philip Blundell  <philb@gnu.org>
5374
5375         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
5376
5377 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
5378
5379         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
5380         fix_truncxfhi2): New patterns.
5381         * i386.c (output_fix_trunc): Handle converting to HImode.
5382
5383 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
5384
5385         * ssa.c (convert_to_ssa): Eliminate dead code when calling
5386         life_analysis.
5387         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
5388         (for_each_successor_phi): Change parameter to basic_block.
5389         (coalesce_regs_in_successor_phi_nodes): Likewise.
5390         (coalesce_regs_in_copies): Likewise.
5391         (compute_coalesced_reg_partition): Use basic_block instead of index.
5392         * rtl.h (convert_to_ssa): Delete.
5393         (convert_from_ssa): Likewise.
5394         (successor_phi_fn): Likewise.
5395         (for_each_successor_phi): Likewise.
5396         (in_ssa_form): Likewise.
5397         * basic-block.h (convert_to_ssa): Moved from rtl.h.
5398         (convert_from_ssa): Likewise.
5399         (successor_phi_fn): Likewise.
5400         (in_ssa_form): Likewise.
5401         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
5402         * flow.c (calculate_global_regs_live): Pass a basic_block to
5403         for_each_successor_phi.
5404
5405 2000-04-08  Richard Henderson  <rth@cygnus.com>
5406
5407         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
5408         was modified in the current insn.
5409
5410 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5411
5412         * arm/thumb.md: Delete.
5413         * arm/thumb-protos.h: Delete.
5414
5415 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5416
5417         Merge changes from merged-arm-thumb-backend-branch onto trunk.
5418
5419         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5420
5421         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
5422         into branch.
5423
5424         * arm.md (nop): Use the standard RTL expression.  Don't code as a
5425         define_expand.
5426         (*arm_nop, *thumb_nop): Delete.
5427
5428         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
5429         constants.  Use casts instead.
5430         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
5431         output_multi_immediate, arm_poke_function_name): Likewise.
5432         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
5433         MASK_RETURN_ADDDR): Likewise.
5434
5435         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
5436
5437         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
5438         into branch.
5439
5440         * arm.md (eh_epilogue): New function.
5441         * arm.h (struct machine_function): Move to here ...
5442         * arm.c: ... from here.
5443         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
5444         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
5445         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
5446
5447         2000-03-30  Nick Clifton  <nickc@cygnus.com>
5448
5449         * config/arm/semi.h (ASM_SPEC): Restore definition.
5450         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
5451
5452         * config/arm/elf.h (ASM_SPEC): Restore definition.
5453         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
5454
5455         * config/arm/arm.h (ASM_SPEC): Remove definition.
5456         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
5457
5458         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
5459
5460         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
5461
5462         2000-03-24  Nick Clifton  <nickc@cygnus.com>
5463
5464         Various formating tidyups, elimination of compile time
5465         warnings and synchronisation with internal sources:
5466
5467         * config/arm/arm-protos.h (assemble_align): Add prototype.
5468         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
5469         (gen_comapre_reg): Rename to arm_gen_compare_reg.
5470         (arm_return_addr_rtx): Rename to arm_return_addr.
5471
5472         * config/arm/arm.c: Include except.h.
5473         Define shorter typenames for strict minipool_node and struct
5474         minipool_fix.
5475         (arm_return_in_memory): For WinCE return all structures <= 32 bits
5476         in memory.
5477         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
5478         (gen_comapre_reg): Rename to arm_gen_compare_reg.
5479
5480         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
5481         already defined.
5482         (ASM_SPEC): Define if not already defined.
5483         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
5484
5485         * config/arm/arm.md: Rename references to gen_rotated_half_load to
5486         arm_gen_rotated_half_load, and references to gen_comapre_reg to
5487         arm_gen_compare_reg.
5488         (indirect_jump):  Only accept register operands.
5489         (load_indirect_jump): Keep this pattern since combine can generate
5490         it.
5491
5492         * config/arm/coff.h: Include aout.h.
5493         (MULTILIB_DEFAULTS): Only define if not already defined.
5494
5495         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
5496         into arm.h (so that COFF ports can support thumb based aliases).
5497         (ASM_SPEC): Move definition into arm.h
5498
5499         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
5500         redundant apcs spec.
5501         (ASM_SPEC): Move definition to arm.h
5502
5503         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
5504
5505         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
5506         for entries in the .bss section
5507
5508         2000-03-23  Nick Clifton  <nickc@cygnus.com>
5509
5510         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
5511         to thumb_far_jump_used_p.
5512
5513         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
5514         single integer parameter.
5515
5516         * config/arm/arm.c (struct machine_function): Add two new
5517         fields, 'far_jump_used' and 'arg_pointer_live'.
5518         (thumb_far_jump_used_p): Once the decision has been made that
5519         far jumps might be used, always return true.
5520         If being called from the initial elimination offset macro then
5521         do not bother to perform the test if the arg pointer is not
5522         being used.
5523         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
5524         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
5525
5526         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
5527
5528         * arm.c (output_return_instruction): Handle more cases where we can
5529         return from a function with an ldr instruction.
5530         (arm_output_epilogue): Likewise.
5531
5532         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
5533         if we need to push a large stack frame and there are no callee-saved
5534         registers.
5535
5536         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
5537         in ARM code if the frame pointer has been eliminated.
5538
5539         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
5540         unspec_volatile arguments to avoid duplicates.
5541         (consttable_1, consttable_2): Fixes for big-endian mode.
5542
5543         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
5544         as appropriate.
5545
5546         Re-write constant pool code.
5547         * arm.c (minipool_node, minipool_fix): New types.
5548         (minifix): Delete type.
5549         (arm_add_minipool_constant): Delete.
5550         (arm_compute_minipool_offsets, arm_find_barrier,
5551         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
5552         (get_jump_table_size): Now returns HOST_WIDE_INT.
5553         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
5554         functions.
5555         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
5556         (assign_minipool_offsets, arm_print_value): Likewise.
5557         (dump_minipool): Rewrite.
5558         (arm_barrier_cost): New function.
5559         (create_fix_barrier): New function.
5560         (push_minipool_barrier): New function.
5561         (push_minipool_fix): Record additional information about the fixup
5562         required.
5563         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
5564         check the mode of what needs fixing.
5565         (arm_reorg): Rewrite.
5566
5567         2000-03-08  Nick Clifton  <nickc@cygnus.com>
5568
5569         * config/arm/arm.md (indirect_jump): Force constant addresses into
5570         a register.
5571
5572         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
5573
5574         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
5575
5576         2000-02-24  Nick Clifton  <nickc@cygnus.com>
5577
5578         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
5579         adjust is word aligned.
5580         (thumb_expand_epilogue): Make sure that stack adjust is word
5581         aligned.
5582
5583         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
5584
5585         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
5586
5587         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
5588         pointer relative addresses.
5589
5590         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
5591
5592         * arm.c (find_barrier): Find the last barrier within the allowed
5593         range.
5594
5595         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5596
5597         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
5598
5599         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5600
5601         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
5602         ARM_FUNCTION_PROFILER.
5603
5604         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
5605         ARM_FUNCTION_PROFILER.
5606
5607         * config/arm/linux-oldld.h: Imported from mainline sources.
5608
5609         2000-02-07  Nick Clifton  <nickc@cygnus.com>
5610
5611         * config/arm/lib1funcs.asm: Merge in thumb functions from
5612         lib1thumb.asm.
5613
5614         * config/arm/lib1thumb.asm: Delete.
5615
5616         2000-02-04  Nick Clifton  <nickc@cygnus.com>
5617
5618         * config/arm/arm.c: Sychronised with current Red hat local
5619         sources.
5620         * config/arm/arm.h: Ditto.
5621         * config/arm/arm-protos.h: Ditto.
5622
5623         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
5624
5625         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
5626
5627         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
5628         byte stores.
5629
5630         2000-02-02  Nick Clifton  <nickc@cygnus.com>
5631
5632         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
5633
5634         * config/arm/arm.md (epilogue): Fix rtl checking abort because
5635         (return) was emited using an emit_insn() call.
5636
5637         2000-01-31  Nick Clifton  <nickc@cygnus.com>
5638
5639         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
5640         thumb stack frame.
5641         (thumb_exit): Move frame pointer back into hard frame pointer
5642         register if backtracing is being used.
5643
5644         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
5645
5646         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
5647         into branch.
5648
5649         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
5650
5651         * config/arm/arm.md (neg_pool_offset): Provide default for new
5652         attribute.
5653         (arm_movsi_insn): Add neg_pool_offset attribute.
5654         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
5655         rtx for the insn that starts the scan and an unsigned long for its
5656         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
5657         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
5658         instructions in *PINSERTED.
5659         (struct minipool_fixup): Add MIN_ADDRESS elt.
5660         (sort_fixups): Compute it.
5661         (arm_reorg): Changes to support inserting pools before the insn to be
5662         fixed up.
5663
5664         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
5665
5666         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
5667         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
5668         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
5669
5670         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
5671
5672         * config/arm/semi.h (TARGET_VERSION): Do not define if already
5673         defined.
5674         (TARGET_DEFAULT): Do not define if already defined.
5675
5676         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
5677
5678         * config/arm/arm.md (anddi3): Allow disjoint source operands.
5679         (iordi3): Allow disjoint source operands.
5680         (xordi3): Allow disjoint source operands.
5681         (negdi2): Permit construction for ARM and Thumb.
5682         (arm_negdi2): Renamed version of old negdi2 pattern.
5683         (thumb_negdi2): New pattern: Only permit non-overlapping
5684         source and destination.
5685
5686         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
5687
5688         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
5689         scratch low register so that it will not be deleted.
5690
5691         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
5692
5693         * config/arm/pe.h (ARM_PE): Define.
5694
5695         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
5696         interfacearm attribute if this is a PE toolchain.
5697         (output_return_instruction): Do not emit anything if the function
5698         has the naked attribute set.
5699         (is_called_in_ARM_mode): If the function has the interfacearm
5700         attribute then return true.
5701         (thumb_expand_prologue): Do not generate a prologue for naked
5702         functions.
5703         (thumb_expand_epilogue): Do not generate an epilogie for a naked
5704         function.
5705         (output_thumb_prologue): Do not bother if the function is naked.
5706         Strip PE encoding from function name before emitting.
5707
5708         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
5709
5710         * arm.md (pic_load_addr): Fix constraints.
5711
5712         * arm.md (casesi_insn): Fix mis-applied patch.
5713
5714         * arm.md ("core" function unit): Add rules for single- and
5715         multi-cycle insns.
5716         (All TARGET_THUMB patterns): Add "type" attribute information
5717         where needed.
5718         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
5719         the following insn is a CALL.
5720
5721         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
5722         pointer.
5723         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
5724         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
5725         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
5726
5727         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
5728
5729         * config/arm/linux-gas.h: oops - this file was missed out when the
5730         branch was created...
5731
5732         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
5733
5734         * thumb.c: Deleted.  Move contents to ...
5735         * arm.c: ... here.
5736         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
5737         rule for thumb.o
5738         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
5739         * configure: Regen.
5740
5741         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
5742         declare a prototype for asm_output_align();
5743
5744         * arm.c (thumb_condition_code): Delete.
5745         (arm_print_operand): Always use arm_condition_code array.
5746
5747         * arm.c (thumb_return_addr_rtx): Delete.
5748         (arm_save_machine_status, arm_restore_machine_status): Delete.
5749         (arm_init_machine_status, arm_mark_machine_status): New functions.
5750         (arm_init_expanders): Update accordingly.
5751         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
5752         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
5753         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
5754
5755         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
5756
5757         * configure.in : Fix arm-*-aout target to use new t-arm-aout
5758         script.
5759         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
5760         targets.
5761
5762         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
5763
5764         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
5765         stack backtrace structure.
5766
5767         * config/arm/arm-protos.h: Add prototypes for functions defined in
5768         arm/pe.h.
5769
5770         * config/arm/arm.c (arm_override_options): Fix selection of
5771         attributes of default processor.
5772
5773         * config/arm/coff.h: Delete needless #include.
5774
5775         * config/arm/pe.c: Delete unused code.
5776
5777         * config/arm/pe.h (CPP_DEFINES): Delete
5778         (SUBTARGET_CPP_SPEC): Define.
5779         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
5780
5781         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
5782
5783         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
5784
5785         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
5786         updated.
5787         (CAN_DEBUG_WITHOUT_FP): Define.
5788         (FIXED_REGISTERS): Make r11 call-saved.
5789         (CALL_USED_REGISTERS): Likewise.
5790         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
5791         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
5792         frame-pointer is required.
5793         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
5794         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
5795         if the target normally needs a stack frame in non-leaf functions.
5796         (use_return_insn): Correct logic for determining when a return
5797         instruction can be used.
5798         (output_return_instruction): Handle the frame-pointer register as
5799         a normal register when not TARGET_APCS_FRAME.
5800         (arm_output_prologue): Likewise.
5801         (arm_output_epilogue): Likewise.
5802         (output_func_epilogue): Likewise.
5803         (arm_expand_prologue): Likewise.
5804         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
5805
5806         * arm.c (use_return_insn): No need to check floating point regs if
5807         TARGET_SOFT_FLOAT.
5808         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
5809         the code of value stored in the minipool array.
5810         (arm_add_minipool_constant): Likewise.
5811
5812 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5813
5814         * basic-block.h (conflict_graph_enum_fn): K&R fix.
5815
5816 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5817
5818         * tree.c (tree_expr_nonnegative_p): New function.
5819
5820         * tree.h (tree_expr_nonnegative_p): Declare.
5821
5822         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
5823         elide some sign_compare warnings.
5824         (build_conditional_expr): Likewise.
5825
5826 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
5827
5828         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
5829
5830         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
5831         * i386.c (print_operand): Use the proper suffix for a 387 HImode
5832         operand.  Abort if a 387 operand has an unsupported size.
5833
5834 2000-04-08  Neil Booth  <NeilB@earthling.net>
5835
5836         * cppexp.c (parse_charconst): Null does not end character
5837         constants.
5838         * cppinit.c (ISTABLE): Null character handled as whitespace.
5839         * cpplex.c (null_warning):  new function.
5840         (skip_string): Emit warning if nulls encountered.
5841         (_cpp_skip_hspace): Emit warning if nulls encountered.
5842         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
5843         them.
5844         * cpp.texi: Update.
5845
5846 2000-04-07  Richard Henderson  <rth@cygnus.com>
5847
5848         * flow.c (loop_depth): Remove.
5849         (reg_next_use, cc0_live, mem_set_list): Replace with ...
5850         (struct propagate_block_info): New.
5851         (life_analysis): Don't allocate reg_next_use.
5852         (propagate_block_delete_insn): Break out of propagate_block.
5853         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
5854         (propagate_block_delete_libcall): Likewise.
5855         (propagate_block): Create a propagate_block_info struct to pass
5856         to subroutines.  Allocate one not two temporary regsets.  Don't
5857         clobber memory for const calls.  Look for clobbers in
5858         CALL_INSN_FUNCTION_USAGE.
5859         (mark_set_regs): Recognize COND_EXEC.
5860         (mark_set_reg): Break out of mark_set_1.
5861         (mark_used_reg): Break out of mark_used_regs.
5862         (mark_used_regs): Recognize COND_EXEC.
5863         (insn_dead_p): Use propagate_block_info struct.
5864         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
5865         (find_auto_inc, try_pre_increment_1): Likewise.
5866         (print_rtl_with_bb): Dump regs live at end too.
5867         (count_reg_sets_1): Pass in loop_depth.
5868         (count_reg_sets, count_reg_references): Likewise.
5869         (recompute_reg_usage): Provide it.
5870
5871 2000-04-07  Richard Henderson  <rth@cygnus.com>
5872
5873         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
5874         not the raw files.
5875
5876 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
5877
5878         * cpplib.c (do_elif): Skip the rest of the line if we're
5879         not going to bother evaluating it.
5880         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
5881         to avoid pointless calls to the lexer.
5882
5883 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
5884
5885         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
5886
5887 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
5888
5889         * calls.c (expand_call): emit_queue if we're trying a sibcall.
5890
5891 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
5892
5893         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
5894
5895 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
5896
5897         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
5898         crtend so they can be multilibbed.
5899         (STAGESTUFF): Remove s-crt and s-crtS.
5900
5901 2000-04-07  Richard Henderson  <rth@cygnus.com>
5902
5903         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
5904         if we discover we need a pseudo and no_new_pseudos is true.
5905         * config/alpha/alpha.md (ne:DI insn): New.
5906         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
5907
5908 2000-04-07  Richard Henderson  <rth@cygnus.com>
5909
5910         * rtl.def (COND_EXEC): New.
5911         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
5912         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
5913
5914         * genconfig.c (have_cond_arith_flag): Remove.
5915         (have_cond_exec_flag): New.
5916         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
5917         (main): Print HAVE_conditional_execution.
5918
5919         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
5920         (sched_analyze_insn, print_pattern): Likewise.
5921         * reload.c (find_equiv_reg): Likewise.
5922         * rtlanal.c (reg_referenced_p): Likewise.
5923         (note_stores, dead_or_set_regno_p): Likewise.
5924         (reg_overlap_mentioned_p): Rewrite to use a switch.
5925
5926         * ggc.h (struct rtx_def): Forward declare.
5927
5928         * print-rtl.c (debug_rtx_range): New.
5929         * rtl.h (debug_rtx_range): Declare.
5930
5931         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
5932
5933         * gcse.c (gcse_main): Don't rebuild the CFG here.
5934         (delete_null_pointer_checks): Likewise.
5935         * ssa.c (convert_to_ssa): Likewise.
5936         * toplev.c (rest_of_compilation): Do it here instead.  Combine
5937         sequential calls to TIMEVAR.  Consistently use `insns' instead of
5938         `get_insns()'.  Always split insns after reload when optimizing.
5939
5940         * basic-block.h (merge_blocks_nomove): Declare.
5941         (tidy_fallthru_edge): Declare.
5942         * flow.c (merge_blocks_nomove): Document as merging into previous
5943         blocks.  Remove cruft from between blocks; remove all edges out of A.
5944         (tidy_fallthru_edge): Export.
5945
5946 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5947
5948         * ssa.c (compute_conservative_reg_partition): Declare with
5949         void arguments.
5950         * toplev.c (clean_dump_file): Remove previously-deleted function
5951         inadvertantly merged back in.
5952         * conflict.c (conflict_graph_add): Use a single call to
5953         htab_find_slot to look up and insert.
5954
5955 2000-04-06  Richard Henderson  <rth@cygnus.com>
5956
5957         * genrecog.c (*): Rename _last_insn to last_insn.
5958         (make_insn_sequence): Set the position of the peephole2 C test
5959         to be at the last insn.
5960
5961 2000-04-06  Richard Henderson  <rth@cygnus.com>
5962
5963         * flow.c (compute_flow_dominators): Free worklist.
5964
5965 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
5966
5967         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
5968
5969 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5970
5971         * rtl.h (INSN_P): New macro.
5972         (successor_phi_fn): New typedef.
5973         (for_each_successor_phi): New prototype.
5974         (in_ssa_form): New variable.
5975         (PHI_NODE_P): Likewise.
5976         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
5977         phi nodes in successors.
5978         (mark_used_regs): Add PHI case.
5979         (set_phi_alternative_reg): New function.
5980         (life_analysis): Assert that dead code elimination is not selected
5981         when in SSA form.
5982         * toplev.c (to_ssa_time): New variable.
5983         (from_ssa_time): Likewise.
5984         (compile_file): Zero to_ssa_time and from_ssa_time.
5985         Print time to convert to and from SSA.
5986         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
5987         (print_time): Compute percent fraction as integer.
5988         * ssa.c (PHI_NODE_P): Moved to rtl.h.
5989         (convert_to_ssa): Check if we're already in SSA.
5990         Don't eliminate dead code in life_analysis.
5991         Rerun flow and life analysis at bottom.
5992         (eliminate_phi): Use canonical regnos when adding nodes.
5993         (mark_reg_in_phi): New function.
5994         (mark_phi_and_copy_regs): Likewise.
5995         (convert_from_ssa): Rerun life analysis at top.
5996         Use coalesced partition.
5997         Check for removing a phi node at the end of the block.
5998         (compute_coalesced_reg_partition): New function.
5999         (coalesce_regs_in_copies): Likewise.
6000         (coalesce_reg_in_phi): Likewise.
6001         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
6002         (for_each_successor_phi): Likewise.
6003         (rename_context): New struct.
6004         (rename_block): Use a rename_context with rename_insn_1.  When
6005         renaming sets of a subreg, emit a copy of the entire reg first.
6006         (rename_insn_1): Treat data as a rename_context *.  Save current
6007         insn in set_data.
6008         (rename_set_data): Add field set_insn.
6009         * Makefile.in (HASHTAB_H): Move up in file.
6010         (OBSTACK_H): New macro.
6011         (collect2.o): Use OBSTACK_H in dependencies.
6012         (sdbout.o): Likewise.
6013         (emit-rtl.o): Likewise.
6014         (simplify-rtx.o): Likewise.
6015         (fix-header.o): Likewise.
6016         (OBJS): Add conflict.o.
6017         (conflict.o): New rule.
6018         * basic-block.h: Include partition.h.
6019         (conflict_graph): New typedef.
6020         (conflict_graph_enum_fn): Likewise.
6021         (conflict_graph_new): New prototype.
6022         (conflict_graph_delete): Likewise.
6023         (conflict_graph_add): Likewise.
6024         (conflict_graph_conflict_p): Likewise.
6025         (conflict_graph_enum): Likewise.
6026         (conflict_graph_merge_regs): Likewise.
6027         (conflict_graph_print): Likewise.
6028         (conflict_graph_compute): Likewise.
6029         * conflict.c: New file.
6030
6031 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
6032
6033         * tlink.c (read_repo_files): Don't look for .rpo info for
6034         linker flags.
6035
6036 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6037
6038         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
6039
6040 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6041
6042         * config/sh/lib1funcs.asm (___udivsi3_i4):
6043         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
6044         only depends on FMOVD_WORKS.
6045
6046 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6047
6048         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
6049         make double constant 8-byte aligned.
6050
6051 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
6052
6053         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
6054         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
6055         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
6056         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
6057         Accept storing GENERAL_REGS into offsetable memory.
6058         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
6059         building a TFmode constant other than 0.0L into GENERAL_REGS.
6060
6061 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
6062
6063         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
6064
6065 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
6066
6067         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
6068         (macro_cleanup): No need to cast pbuf->macro.
6069         (collect_expansion): Use _cpp_get_define_token.  Goto done if
6070         it returns VSPACE.  Remove check for trailing space after
6071         CPP_COMMENT.
6072         (_cpp_create_definition): Don't diddle flags here.  Return
6073         directly on error.
6074         (unsafe_chars): Handle c1 being EOF.
6075         (push_macro_expansion): Use unsafe_chars for both accidental-paste
6076         checks.  Don't push the buffer till after we're done with
6077         them.
6078         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
6079         (PEEKN, FORWARD, GETC, PEEKC): Use them.
6080         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
6081         appropriately.
6082         (_cpp_parse_assertion): Don't NUL terminate.
6083         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
6084         hspace before calling _cpp_parse_assertion.  Remove all sets
6085         of only_seen_white. Treat '\f' as hspace.  Don't do anything
6086         special with '\n' here.
6087         (maybe_macroexpand): Handle T_EMPTY hash entries without
6088         pushing a buffer at all.
6089         (cpp_get_token): Handle clearing only_seen_white here.  Handle
6090         incrementing the line number here.  Clear
6091         potential_control_macro as well as only_seen_white, if
6092         appropriate.
6093         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
6094         (_cpp_get_define_token): New function, basically like
6095         _cpp_get_directive_token was but doesn't eat horizontal space.
6096         Don't do anything with only_seen_white here.
6097         (_cpp_get_directive_token): Just call _cpp_get_define_token
6098         repeatedly till it returns non-hspace.
6099
6100         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
6101         (conditional_skip, skip_if_group): Return int.
6102         (DIRECTIVE_TABLE): Change origin of all conditional directives
6103         to "COND".
6104         (TRAD_DIRECT_P): New macro.
6105         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
6106         an error for a bogus directive, unless -lang-asm.  Use
6107         TRAD_DIRECT_P. Loop calling handler functions till one returns
6108         zero.
6109         (get_macro_name): Don't diddle flags here.
6110         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
6111         Create T_EMPTY nodes for #define macro /* nothing */.
6112         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
6113         Use hp->name when calling pass_thru_directive.
6114         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
6115         Return the result of conditional_skip and/or skip_if_group.
6116         Don't call _cpp_output_line_command.
6117         (consider_directive_while_skipping): Use _cpp_get_directive_token.
6118         Issue -Wtraditional warnings as appropriate.  Don't complain
6119         about unrecognized directives.  If we are to stop skipping,
6120         return the number of the directive that ended the skip.
6121         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
6122         expansion and line commands while skipping.  Return the result
6123         of consider_directive_while_skipping, if nonzero.
6124         (do_endif): Just set potential_control_macro here.
6125         (validate_else): Use _cpp_get_directive_token.
6126         (do_assert, do_unassert): Don't save pointers into the
6127         token_buffer across calls to the lexer.  Use
6128         _cpp_get_directive_token.
6129
6130         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
6131         pointer, not an offset.  Replace 'data', which was a generic
6132         pointer, with 'macro', which points to a struct hashnode.
6133         (cpp_reader): Add 'potential_control_macro' pointer.
6134         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
6135         (CPP_BUF_GET, CPP_FORWARD): Delete.
6136         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
6137         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
6138         ACTIVE_MARK_P): Update.
6139         (_cpp_get_define_token): New internal function.
6140         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
6141
6142 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
6143
6144         * configure.in: And here.
6145         * configure: Regenerate.
6146         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
6147         --enable-libstdcxx-v3 is passed at configure time.
6148         * config.h.in: Regenerate.
6149
6150 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
6151
6152         * final.c (final): Use xcalloc to allocate line_note_exists.
6153         * function.c (free_after_compilation): Free the temp_slots.
6154         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
6155         (combine_temp_slot): Free temp_slots when they get combined.
6156         (purge_addressof): Fix typo in comment.
6157         * stmt.c (mark_goto_fixup): Mark the fixup itself.
6158         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
6159
6160         * ggc.h: Include varray.h.
6161         (ggc_pending_trees): Declare.
6162         (ggc_mark_tree_children): Remove declaration.
6163         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
6164         * ggc-common.c (ggc_pending_trees): New variable.
6165         (ggc_mark_roots): Call ggc_mark_trees.
6166         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
6167         the ggc_pending_trees.
6168         * Makefile.in (GGC_H): New variable.  Use it throughout in place
6169         of ggc.h.
6170
6171 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6172
6173         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
6174         GET_MODE_SIZE.
6175
6176 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6177
6178         * sh.c (sh_insn_length_adjustment): New function.
6179         * sh-protos.h (sh_insn_length_adjustment): Declare.
6180         * sh.h (ADJUST_INSN_LENGTH): Use it.
6181
6182 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
6183
6184         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
6185         from the insn where REG_RETVAL is added.
6186         (emit_no_conflict_block): Ditto.
6187
6188         * md.texi (Standard Names): Clarify when movX is needed.
6189
6190         * combine.c (simplify_comparison) [MINUS]: Do not replace
6191         all (op (minus A B) 0) with (op A B).
6192
6193 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
6194                           J"orn Rennecke <amylaar@cygnus.co.uk>
6195
6196         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
6197         (block_lump_real): Likewise.
6198
6199 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
6200
6201         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
6202         remaining non-zero debugging masks.
6203
6204 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
6205
6206         * basic-block.h (verify_flow_info): Declare.
6207         (flow_loop_outside_edge_p): Declare.
6208         * flow.c (verify_flow_info): Remove declaration.
6209         (clear_log_links, flow_loop_outside_edge_p): Likewise.
6210
6211 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
6212
6213         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
6214         not C++ comments.
6215
6216 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
6217
6218         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
6219         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
6220         seqdi_zero_trunc+1): Allow splits only if registers are
6221         different.
6222
6223 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
6224
6225         * acconfig.h: Add HAVE_GAS_HIDDEN.
6226         * config.in: Regenerated.
6227         * configure.in: Add test for .hidden pseudo-op in gas.
6228         * configure: Regenerated.
6229         * crtstuff.c: Include auto-host.h.
6230         Emit additional .hidden pseudo-op for __dso_handle if the
6231         assembler knows about it.
6232
6233 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
6234
6235         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
6236         before freeing argnames.
6237         * cpplib.c (do_ifndef): Cast return value of xstrdup.
6238
6239 2000-04-05  Michael Meissner  <meissner@redhat.com>
6240
6241         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
6242         Walton <jonboy@gordian.com> to make memory references with update
6243         work wtih -mregnames.
6244
6245 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6246
6247         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
6248         (regrename_optimize): Rename variables `def_uses' and
6249         `ext_basic_blocks' to avoid conflicts with similarly named
6250         typedefs in traditional C.
6251
6252         * calls.c (initialize_argument_information): Fix typo in previous
6253         change.
6254
6255 2000-04-04  Richard Henderson  <rth@cygnus.com>
6256
6257         * regrename.c (consider_available): Test fixed_regs not
6258         PIC_OFFSET_TABLE_REGNUM.
6259
6260 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
6261
6262         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
6263         crtend.
6264         (CRTSTUFF_T_CFLAGS_S): Delete definition.
6265         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
6266         (ENDFILE_LINUX_SPEC): Always use crtend.
6267         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
6268         (powerpc-*-linux-gnu): Likewise.
6269         * configure: Regenerate.
6270
6271         * config/rs6000/eabi.h: Don't include sysv4.h.
6272         (MULTILIB_DEFAULTS): Don't define.
6273         * config/rs6000/eabiaix.h: Don't include eabi.h.
6274         * config/rs6000/eabile.h: Delete.
6275         * config/rs6000/eabilesim.h: Delete.
6276         * config/rs6000/eabisim.h: Don't include eabi.h.
6277         * config/rs6000/linux.h: Don't include sysv4.h.
6278         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
6279         (MULTILIB_DEFAULTS): Don't redefine.
6280         * config/rs6000/rtems.h: Don't include eabi.h.
6281         * config/rs6000/sol2.h: Don't include sysv4le.h.
6282         * config/rs6000/sysv4le.h: Don't include sysv4.h.
6283         * config/rs6000/t-ppc: Delete.
6284         * config/rs6000/t-ppcgas: Correct comment.
6285         * config/rs6000/t-ppcos: Correct comment.  Don't build
6286         multilibs for -fPIC, rather use -fPIC -mstrict-align
6287         as default.
6288         * config/rs6000/t-ppc: Delete.
6289         * config/rs6000/vxppc.h: Don't include sysv4.h.
6290         * config/rs6000/vxppcle.h: Delete.
6291         * configure.in: Use multiple header files for p2pc ELF targets
6292         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
6293         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
6294         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
6295         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
6296         always available for these platforms.
6297
6298 2000-04-04  Richard Henderson  <rth@cygnus.com>
6299
6300         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
6301
6302 2000-04-04  Stan Cox  <scox@cygnus.com>
6303
6304         * Makefile.in: Add rules for regrename.o
6305         * regrename.c: New file.
6306         * rtl.h (regrename_optimize): Add prototype.
6307         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
6308         (compile_file, decode_d_option): Add support for -frename-registers.
6309         (rest_of_compilation): Call regrename_optimize.
6310         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
6311         New macros.
6312
6313 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6314
6315         * Makefile (gccbug): New target.
6316         (doc): Depend on it.
6317         * gcc.texi (Bugs): Link subnodes.
6318         (gccbug): New node.
6319         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
6320         Document severities, priorities, and classes in bug form.
6321
6322 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
6323
6324         * cpplex.c (trigraph_map, speccase): Combine into single
6325         table, chartab.
6326         (NORMAL, NONTRI): New macros.
6327         (_cpp_read_and_prescan): Change to use unified table.  Use
6328         is_hspace to test for whitespace.
6329
6330         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
6331         definition that doesn't provoke the "empty body in an
6332         if-statement" warning.
6333
6334 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
6335
6336         * builtins.c (expand_builtin_strlen): Force the source to
6337         be a memory address.
6338
6339 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6340
6341         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
6342
6343 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6344
6345         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
6346          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
6347         (ECF_IS_CONST): Rename to ECF_CONST.
6348         (special_function_p): Make static, change interface.
6349         (flags_from_decl_or_type, try_to_integrate): Break out from ...
6350         (expand_call) ... here; convert number of variables to flags.
6351         (emit_library_call_vlue_1): Likewise.
6352         (setjmp_call_p): New function.
6353         (initialize_argument_information): Accepts flags as argument;
6354         return flags.
6355         (precompute_arguments): Likewise.
6356         * tree.h (special_function_p): Remove.
6357         (setjmp_call_p): Add prototype.
6358
6359 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
6360
6361         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
6362         so that addresses are offsetable by up to 16 bytes.
6363         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
6364         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
6365         offsetable.
6366
6367         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
6368         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
6369         (movsf): Don't force any constant to memory if target is integer
6370         hard register.
6371         Move fp_zero_operand check below the const0_rtx check.
6372         (movtf): Likewise. Also allow fp_zero_operand for stores into
6373         memory.
6374         (movdf): Likewise. Also allow fp_zero_operand for stores into
6375         memory and into integer hard registers.
6376         (clear_df, clear_dfp, movdf_const_intreg_sp32,
6377         movdf_const_intreg_sp64): Remove.
6378         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
6379         conditions.
6380         (movdf_no_e_insn_v9_sp32): New pattern.
6381         (movdf_insn_v9only): Remove.
6382         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
6383         (movdf_insn_sp64): Remove.
6384         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
6385         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
6386         (following splits): Rewrite conditions. Add two new splits
6387         for storing 0.0 into memory and registers.
6388         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
6389         (movtf_insn_sp32): Redo constraints and conditions.
6390         (movtf_insn_vis_sp32): New pattern.
6391         (movtf_no_e_insn_sp32): Redo constraints and conditions.
6392         (movtf_insn_hq_sp64): Likewise.
6393         (movtf_insn_hq_vis_sp64): New pattern.
6394         (movtf_insn_sp64): Redo constraints and conditions.
6395         (movtf_insn_vis_sp64): New pattern.
6396         (movtf_no_e_insn_sp64): Redo constraints and conditions.
6397         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
6398         or memory.
6399         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
6400         -mvis or -m64 to take down the number of various reload patterns.
6401
6402 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
6403
6404         * pa/pa-64.h: New file.
6405         * pa/pa64-regs.h: New file.
6406         * pa/pa64-start.h: New file.
6407         * pa/t-pa64: New file.
6408         * pa/xm-pa64hpux.h: New file.
6409
6410 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6411
6412         * sparc.c (output_restore_regs): Prototype.
6413         (sparc_emit_float_lib_cmp): Constification.
6414
6415         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
6416
6417         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
6418         Prototype.
6419
6420         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
6421         (get_value_hash, hash_rtx): Likewise.
6422
6423         * ssa.c (compute_conservative_reg_partition): Prototype.
6424
6425         * tree.c (mark_hash_entry): Prototype.
6426
6427 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
6428
6429         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
6430         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
6431         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
6432
6433         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
6434         * objc/lang-specs.h: Likewise.
6435
6436 2000-04-03  Neil Booth  <NeilB@earthling.net>
6437
6438         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
6439         and SYNTAX_ERROR2. Replace `' in messages with ''.
6440         (op_to_str): Make re-entrant.
6441         (_cpp_parse_expr): Implement new error macros. Use | rather
6442         than || to logically or 2 boolean integers.  Simply expression
6443         checking we have a left operand iff needed.
6444
6445 2000-04-03  Nick Clifton  <nickc@cygnus.com>
6446
6447         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
6448
6449 2000-04-03  Philip Blundell  <philb@gnu.org>
6450
6451         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
6452
6453 2000-04-03  Felix Lee  <flee@cygnus.com>
6454
6455         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
6456         (run_shell): Use it.
6457
6458 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
6459
6460         * Makefile.in (stmp-int-hdrs): Make include subdir here...
6461         (stmp-fixproto): ...rather than here.
6462
6463 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
6464
6465         * pa.c (print_operand): Compute 'base' only inside the code paths
6466         that use it.
6467
6468 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
6469
6470         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
6471         CEIL_DIV_EXPR.
6472
6473 2000-04-03  Philipp Thomas  <pthomas@suse.de>
6474
6475         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
6476
6477 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
6478
6479         * Makefile.in (alias.o): Depend on $(TREE_H).
6480
6481 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
6482
6483         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
6484         processing C++.
6485         * cpplib.c (_cpp_handle_directive): Improve warnings for
6486         traditional C and indented directives.
6487
6488         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
6489         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
6490         fixinc/inclhack.def: Indent the # of #include_next one space.
6491         * cp/rtti.c: Un-indent #if and #endif.
6492
6493         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
6494         syntax error, but an error has already been printed.
6495         * cpplex.c (_cpp_parse_assertion): Give a more specific error
6496         message when called with nothing remaining on the line.
6497         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
6498         OTHER token, not an ASSERTION.
6499         * cpplib.c (do_assert): When we create a 'base' node, clear
6500         its aschain pointer.
6501
6502 2000-04-02  Neil Booth <NeilB@earthling.net>
6503
6504         * cppexp.c:  New typedef op_t.  struct operation and struct
6505         token updated to use it.
6506         (op_to_str): New function.
6507         (_cpp_parse_expr): Error messages modified to use op_to_str.
6508
6509 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6510
6511         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
6512         before checking MUST_PASS_IN_STACK.
6513
6514 2000-04-02  Neil Booth <NeilB@earthling.net>
6515
6516         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
6517         flags and initial priority into a single constant.  New
6518         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
6519         (_parse_cpp_expr): Implement new constants.  Take left operand
6520         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
6521         parse indicated by reducing FINISHED token.  Remove new lines
6522         from cpp_error messages.
6523
6524 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
6525
6526         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
6527         permanent obstack.
6528
6529 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
6530
6531         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
6532         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
6533         the strings and function names on the fly.  Take the #sccs
6534         entry out of the table if SCCS_DIRECTIVE is not defined.
6535         (_cpp_handle_directive): Decide if the # was at the beginning
6536         of the line here.  Issue -pedantic warnings for extended
6537         directives here.  Warn about K+R directives with the #
6538         indented, and C89/extended directives with the # not indented,
6539         here.
6540         (do_import, do_include_next, do_warning, do_ident, do_sccs,
6541         do_assert, do_unassert): Don't issue pedantic warning here.
6542
6543         * cpphash.h: Add CPP_WTRADITIONAL macro.
6544         * cpplib.h (struct cpp_options): Rename warn_stringify to
6545         warn_traditional; update comments.
6546         * cppinit.c (handle_option): Set warn_traditional not
6547         warn_stringify.
6548         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
6549         CPP_WTRADITIONAL (pfile).
6550         * cpplex.c (_cpp_lex_token): Don't decide if directives should
6551         be ignored in -traditional mode here.
6552
6553         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
6554         to initialize speccase[] and trigraph_map[].  Delete all
6555         references to pfile->input_speccase.  Always treat '?' as a
6556         special character.  Remove table-initialization code from
6557         _cpp_init_input_buffer.
6558
6559         * cpplib.h (struct cpp_reader): Remove input_speccase field.
6560         * cppinit.c (cpp_cleanup): Don't free input_speccase.
6561
6562 2000-04-01  Richard Henderson  <rth@cygnus.com>
6563
6564         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
6565         (mostlyclean): Likewise.
6566
6567         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
6568         (struct dump_file_info, enum dump_file_index, dump_file): New.
6569         (open_dump_file): Take a dump_file_index not a suffix, and a decl
6570         not a string.  Clean out file if we havn't yet done so.  Do nothing
6571         if the dump isn't enabled.
6572         (close_dump_file): Do nothing if the dump isn't open.  Dump
6573         graph data if requested.
6574         (dump_rtl, clean_dump_file): Remove.
6575         (compile_file): Don't clean the dump files.  Only finalize .bp dump
6576         if flag_test_coverage or flag_branch_probabilities.  Only finalize
6577         .combine dump if optimizing.  Iterate over dump_file to finalize the
6578         graph dumps.
6579         (rest_of_compilation): Update for open_dump_file/close_dump_file.
6580         Convert all uses of dump_rtl.
6581         (decode_d_option): Iterate over dump_file to implement 'a' and to
6582         locate pass-specific dumps.
6583
6584 2000-04-01  Neil Booth <NeilB@earthling.net>
6585
6586         * cppexp.c: Redefine priority constants.
6587         (_cpp_parse_expr): Replace left and right priority scheme with
6588         single priority logic.  Move LOGICAL to same place as COMPARE.
6589         Remove bogus check for multiple unary +/- operators.
6590
6591 2000-04-01  Neil Booth <NeilB@earthling.net>
6592
6593         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
6594         within the switch statement.  Binary operations break out of
6595         the switch naturally.  '(' tokens handled by forcing
6596         immediate shift.  ')' handled by forcing immediate reduce to
6597         the previous '('.  New error messages.
6598
6599 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
6600
6601         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
6602         part', it's already in use.  Use %K instead.  Add a return at the
6603         end of what is now %K.
6604         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
6605
6606 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6607
6608         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
6609         allocate_dynamic_stack_space.
6610         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
6611         update stack_pointer_delta; do not update arg_size_so_far.
6612         (compute_argument_block_size): Use stack_delta instead of
6613         stack_pointer_pending and arg_size_so_far.
6614         (expand_call): Add sanity checking for stack_pointer_delta;
6615         save and restore stack_pointer_delta for SIB, use
6616         stack_pointer_delta for alignment; do not update arg_space_so_far.
6617         (emit_library_call_value): Use stack_pointer_delta for alignment.
6618         (store_one_arg): Do not update arg_space_so_far.
6619         * explow.c (adjust_stack, anti_adjust_stack): Update
6620         stack_pointer_delta.
6621         (allocate_dynamic_stack_space): Add sanity checking for
6622         stack_pointer_delta.
6623         * expr.c (init_expr, clear_pending_stack_adjust): Clear
6624         stack_pointer_delta.
6625         (emit_push_insn): Update stack_pointer_delta.
6626         * function.h (struct expr_status): Add x_stack_pointer_delta;
6627         remove x_arg_space_so_far.
6628         (arg_space_so_far): Remove.
6629         (stack_pointer_delta): New macro.
6630
6631 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
6632
6633         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
6634         Reorder struct cpp_options and struct cpp_reader for better
6635         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
6636         takes two args.  Change all 'char' flags to 'unsigned char'.
6637         Move show_column flag into struct cpp_options.  Don't
6638         prototype cpp_options_init.
6639         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
6640         cppinit.c, cpplex.c, cpplib.c:
6641         Replace CPP_OPTIONS (pfile)->whatever with
6642         CPP_OPTION (pfile, whatever), and likewise for
6643         opts = CPP_OPTIONS (pfile); ... opts->whatever;
6644
6645         * cppinit.c (merge_include_chains): Take a cpp_reader *.
6646         Extract CPP_OPTION (pfile, pending) and work with that
6647         directly.
6648         (cpp_options_init): Delete.
6649         (cpp_reader_init): Turn on on-by-default options here.
6650         Allocate the pending structure here.
6651         (cl_options, enum opt_code): Define these from the same table,
6652         kept in a large macro.  Add -fshow-column and -fno-show-column
6653         options.
6654
6655         * cpperror.c (v_message): If show_column is off, don't print
6656         the column number.
6657
6658         * cppmain.c: Update for new interface.
6659         * fix-header.c: Likewise.
6660
6661 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
6662
6663         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
6664         definition.
6665         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
6666         are passed to any invocation of AR_FOR_TARGET.
6667         (AR_CREATE_FOR_TARGET): New macro.
6668         (AR_EXTRACT_FOR_TARGET): New macro.
6669         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
6670         AR_EXTRACT_FOR_TARGET.
6671         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
6672         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
6673         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
6674         AR_EXTRACT_FOR_TARGET to sub-makes.
6675
6676 2000-03-31  Neil Booth <NeilB@earthling.net>
6677
6678         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
6679         PAREN_INNER_PRIO.
6680         (_cpp_parse_expr): Check for multiple unary +/- operators.
6681         Correct priorities of ':' and '?'.  Treat ')' as having a
6682         value.  Ensure conditional expression is not void.
6683
6684 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
6685
6686         * alias.c (canon_rtx): Make it global.
6687         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
6688         equality.
6689         * cse.c (struct table_elt): Add canon_exp.
6690         (insert): Clear it.
6691         (invalidate): Canonicalize expressions only once.
6692         * rtl.h (canon_rtx): Declare.
6693
6694 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
6695
6696         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
6697         * alias.c (reg_known_value): Add comments.
6698         (init_alias_analysis): Likewise.
6699         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
6700         address.
6701         (cse_basic_block): Fix typo in comment.
6702         * emit-rtl.c: Include hashtab.h.
6703         (const_int_htab): New variable.
6704         (const_int_htab_hash): New function.
6705         (const_int_htab_eq): Likewise.
6706         (rtx_htab_mark_1): Likewise.
6707         (rtx_htab_mark): Likewise.
6708         (gen_rtx_CONST_INT): Cache all CONST_INTs.
6709         (unshare_all_rtx): Fix formatting.
6710         (init_emit_once): Initialize const_int_htab.
6711         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
6712         address.
6713         * rtl.texi: Document the fact that all CONST_INTs with the same
6714         value are shared.
6715
6716 2000-03-30  Richard Henderson  <rth@cygnus.com>
6717
6718         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
6719
6720 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
6721
6722         * configure.in: Comment out --enable-c-cpplib stanza.
6723         * configure: Regenerate.
6724
6725 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6726
6727         * expr.c (store_constructor): Properly compute displacement and
6728         alignment when offset is variable.
6729
6730         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
6731         cases of alignment in bytes.
6732
6733 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
6734
6735         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
6736         since it is used to generate c-parse.y.
6737         * objc-parse.c, objc-parse.y: Regenerated.
6738
6739         * function.c (expand_function_end): Pass alignment argument to
6740         emit_block_move in bits, not bytes.
6741
6742 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6743
6744         * expr.c (move_by_pieces_ninsns): Fix one more missing align
6745         correction.
6746
6747         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
6748
6749         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
6750         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
6751         * function.c (assign_parms): Likewise.
6752         * integrate.c (expand_inline_function): Likewise.
6753         * stmt.c (expand_decl): Likewise.
6754         (copy_rtx_and_substitute): Likewise.
6755         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
6756         (clear_by_pieces): Fix error in last change.
6757         * emit-rtl.c (init_emit): Set known registers alignment in bits.
6758         * function.h (regno_pointer_align): Now unsigned.
6759         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
6760         is in bits.
6761         * config/i386/i386.c (aligned_operand): Likewise.
6762         * config/sparc/sparc.c (mem_min_alignment): Likewise.
6763         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
6764         (unaligned_memory_operand): Likewise.
6765         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
6766         Also make alignments and sizes unsigned and some whitespace cleanup.
6767         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
6768
6769         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
6770         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
6771         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
6772         (expand_builtin_memset): Likewise, but to clear_storage.
6773         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
6774         (restore_fixed_argument_area): Likewise.
6775         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
6776         (load_register_parameters): Likewise, to emit_group_load.
6777         (expand_call): Likewise, to emit_group_store and emit_block_move.
6778         (emit_library_call_value_1): Likewise, to emit_block_move.
6779         (store_one_arg): Likewise, and to emit_push_insn.
6780         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
6781         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
6782         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
6783         (emit_block_move, emit_group_load, emit_group_store): Likewise.
6784         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
6785         (expand_assigment, store_expr, store_constructor_field): Likewise.
6786         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
6787         (store_constructor, store_field, get_inner_reference): Likewise.
6788         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
6789         (expand_expr, case COMPONENT_REF): Likewise.
6790         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
6791         and positions; reindent code.
6792         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
6793         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
6794         (assign_parms): Likewise to emit_group_store.
6795         * optabs.c (prepare_cmp_insn): Alignment is in bits.
6796         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
6797         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
6798         (expand_return): Likewise to {extract,store}_bit_field.
6799         * stor-layout.c (get_mode_alignment): Minor cleanup.
6800         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
6801         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
6802
6803 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6804
6805         * config/arm/arm.h: Undo effects of previous delta:
6806         (ASM_SPEC): Do not define.
6807         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
6808
6809         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
6810         typo.
6811
6812 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6813
6814         * cppinit.c (cpp_start_read): Call initialize_dependency_output
6815         only after reading in the primary source file.
6816
6817 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
6818
6819         * c-common.c (c_common_nodes_and_builtins): The first parameter to
6820         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
6821         or a reference to a va_list.
6822         * builtins.c (stabilize_va_list): Simplify now we don't have to
6823         work around C array address decay.
6824         * c-typeck.c (convert_for_assignment): Handle assignment to
6825         a reference parameter by taking the address of the RHS.
6826         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
6827         (va_copy): Likewise.
6828         (__va_copy): Likewise.
6829         * ginclude/varargs.h (va_start): Likewise.
6830         (__va_copy): Likewise.
6831
6832 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
6833
6834         * i386/djgpp.h: Remove extraneous "+".
6835
6836         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
6837
6838         * calls.c (expand_call): Fix typo in last change.
6839
6840 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
6841
6842         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
6843         been expanded.
6844
6845 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6846
6847         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
6848         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
6849         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
6850         * tree.c (bit_position, byte_position): Likewise.
6851         * tree.h: Declare new functions.
6852
6853 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6854
6855         * config/arm/arm.c: Minor formatting changes/
6856         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
6857         already defined.
6858         (ASM_SPEC): Define if not already defined.
6859
6860 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6861
6862         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
6863         _cpp_calc_hash.
6864
6865 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
6866
6867         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
6868         value, don't output it as unsigned.
6869
6870 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
6871
6872         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
6873
6874 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6875
6876         * c-common.c (c_common_nodes_and_builtins): Don't special case
6877         cplus_mode when declaring builtin bzero/bcmp, always avoid
6878         prototype arguments.
6879
6880 2000-03-29  Bruce Korb  <bkorb@gnu.org>
6881
6882         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
6883         to a non-file
6884
6885 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6886
6887         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
6888         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
6889         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
6890         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
6891         (save_fixed_argument_area, restore_fixed_argument_area):
6892         conditionize by #ifdef REG_PARM_STACK_SPACE only.
6893         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
6894         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
6895         (precompute_register_parameters): Avoid #ifdefs on
6896         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
6897         (stire_one_args): Likewise.
6898         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
6899         (emit_library_call_value_1): Likewise.
6900         (compute_argument_block_size): Align to STACK_BOUNDARY only for
6901         ACCUMULATE_OUTGOING_ARGS.
6902         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
6903         value.
6904         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
6905         (use_crosses_set_p): Likewise.
6906         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
6907         #define ACCUMULATE_OUTGOING_ARGS 1.
6908         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
6909         frames.
6910         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
6911         constants.
6912         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
6913         (TARGET_SWITCHES): Add push-args, no-push-args,
6914         accumulate-outgoing-args and no-accumulate-outgoing-args.
6915         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
6916         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
6917         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
6918         and PUSH_ROUNDING.
6919         (emit_push_insn): Likewise.
6920         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6921         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
6922         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6923         (STACK_DYNAMIC_OFFSET): Define correctly for both
6924         ACCUMULATE_OUTGOING_ARGS and normal mode.
6925         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
6926         * tm.texi (PUSH_ARGS): Document.
6927         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
6928
6929 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6930
6931         * flags.h (flag_optimize_sibling_calls): Declare.
6932         * calls.c (expand_call): Fail sibcall when
6933         !flag_optimize_sibling_calls
6934         * invoke.texi (flag_optimize_sibling_calls): Document.
6935         * toplev.c (flag_optimize_sibling_calls): New global variable.
6936         (f_options): Add flag_optimize_sibling_calls.
6937         (rest_of_compilation): Conditionize
6938         optimize_sibling_and_tail_recursive_calls by
6939         flag_optimize_sibling_calls.
6940         (main): Set flag_optimize_sibling_calls for -O2.
6941         * stmt.c (expand_return): Conditionize tail recursion by
6942         flag_optimize_sibling_calls.
6943
6944 2000-03-29  Richard Henderson  <rth@cygnus.com>
6945
6946         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
6947         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
6948
6949 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
6950
6951         * except.c (add_eh_table_entry): Mark type_info's as referenced.
6952
6953 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6954
6955         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
6956         is given.
6957         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
6958         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
6959         * config/rs6000/aix.h: then modified likewise.
6960
6961 2000-03-28  Richard Henderson  <rth@cygnus.com>
6962
6963         * rtl.h: Redistribute enum reg_note documentation.
6964         Kill trailing whitespace.
6965         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
6966         Kill trailing whitespace.
6967
6968 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
6969
6970         * cppfiles.c (hash_IHASH): Just return i->hash.
6971         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
6972         htab_find_with_hash.
6973         (cpp_read_file): Likewise.
6974         (find_include_file): Likewise.  Properly initialize
6975         ih->nshort.  Share ih->name and ih->nshort if possible.
6976         * cpphash.c (_cpp_calc_hash): New function.
6977         (hash_HASHNODE): Just return h->hash.
6978         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
6979         htab_find_with_hash.
6980         * cpphash.h: Prototype _cpp_calc_hash.
6981         * cppinit.c (initialize_builtins): Provide a valid hash
6982         to _cpp_make_hashnode, using _cpp_calc_hash.
6983
6984         * cpphash.c (collect_expansion): # is not a special character
6985         in object-like macros.  In -traditional mode, /**/ is not
6986         token paste at the beginning or end of the line.
6987         * cpplib.c (do_include, do_import, do_include_next): If
6988         parse_include fails, return immediately.
6989
6990 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
6991
6992         * config/arm/arm.md (return peepholes): Update to reflect the new
6993         call insn patterns.
6994         * config/arm/arm.c (arm_volatile_func): Also check
6995         current_function_nothrow.
6996         (output_return_instruction, output_func_prologue): Use it.
6997         (arm_output_epilogue, arm_expand_prologue): Likewise.
6998
6999 2000-03-27  Tom Tromey  <tromey@cygnus.com>
7000
7001         * gcc.c (handle_braces): In {x*...} case, break out of loop if
7002         switch is found.
7003
7004 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7005
7006         * expr.c (store_constructor): SIZE now signed.
7007         For EXPR_SIZE, don't evaluate size; just needed if constant.
7008         * fold-const.c (fold): Fix a number of cases when folded tree is
7009         wrong type.
7010         * function.c (flush_addressof): Reenable.
7011         * tree.h (flush_addressof): Likewise.
7012         * toplev.c (independent_decode_option): Look at strings_processed.
7013         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
7014
7015 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
7016
7017         * sibcall.c (indentify_call_return_value): Find last call in the chain;
7018         Allow stack adjustment after function call.
7019
7020         * regmove.c (struct csa_memlist): Make mem field rtx *.
7021         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
7022         (try_apply_stack_adjustment): Replace whole MEM rtx.
7023         (combine_stack_adjustments_for_block): Update calls
7024         to record_one_stack_ref.
7025
7026 2000-03-28  Neil Booth  <NeilB@earthling.net>
7027
7028         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
7029         '\\' rather than a null character, so nulls are not special.  Fix
7030         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
7031         speed trigraph conversion.
7032         (_cpp_init_input_buffer): Initialize trigraph map.
7033
7034 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
7035
7036         * config/i386/i386.c (output_387_binary_op): Correct intel
7037         mode assembly output, and add spaces after commas in AT&T
7038         output.  Correct Unixware assembler comment.  Document input
7039         constraints.  Comment fp operations.  Reduce profligate buffer
7040         size.  Remove extraneous abort.  Localize temp var.
7041         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
7042         (output_fix_trunc): Add spaces after commas in assembly output.
7043
7044 2000-03-27  Richard Henderson  <rth@cygnus.com>
7045
7046         * i386-protos.h (ix86_match_ccmode): Declare.
7047         * i386.c (ix86_match_ccmode): New.
7048         (ix86_expand_fp_compare): Update for pattern renames.
7049         (ix86_expand_strlensi_unroll_1): Likewise.
7050         * i386.h (EXTRA_CC_MODES): Add CCZ.
7051         (SELECT_CC_MODE): Use it for EQ/NE zero.
7052         * i386.md (cmpsi_ccz_1): New.
7053         (cmpqi_ccz_1): New.
7054         (*testsi_ccz_1): New.
7055         (testqi_ccz_1): New.
7056         (cmpsi_ccno_1): Rename from cmpsi_0.
7057         (testsi_ccno_1): Rename from testsi_1.
7058         (testqi_ccno_1): Rename from testqi_1.
7059         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
7060         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
7061         (*cmphi_0): Use ix86_match_ccmode.
7062         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
7063         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
7064         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
7065         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
7066         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
7067         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
7068         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
7069         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
7070         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
7071         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
7072         (appropriate peepholes): Likewise.
7073         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
7074         (*subsi_3, *subhi_3, *subqi_3): Remove.
7075         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
7076         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
7077         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
7078         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
7079         (x86_shift_adj_1): Use CCZ.
7080         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
7081
7082 2000-03-27  Stan Cox  <scox@cygnus.com>
7083
7084         * resource.h (mark_resource_type): New.
7085         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
7086         find_free_register): Use mark_resource_type.
7087         (mark_set_resources): Change include_delayed_effects
7088         to mark_resource_type.
7089         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
7090         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
7091         Use mark_resource_type.
7092
7093 2000-03-27  Richard Henderson  <rth@cygnus.com>
7094
7095         * i386.md (call_pop_0, call_value_pop_0): New.
7096         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
7097         (call_value_pop_1): Likewise.
7098         (call_0, call_value_0): New.
7099         (call_1, call_value_1): Remove constraint from unused arg.
7100
7101 2000-03-27  Nick Clifton  <nickc@cygnus.com>
7102
7103         * invoke.texi (Spec Files): Document new spec % command created by
7104         Tom Tromey's recent patch.
7105
7106 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
7107
7108         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
7109         if not defined.
7110
7111 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7112
7113         * expr.c (expand_assignment): Fix typo in last change.
7114
7115         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
7116
7117 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7118
7119         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
7120         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
7121         and DECL_INLINE if FUNCTION_DECL.
7122         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
7123         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
7124         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
7125         (combine_parm_decls): Likewise.
7126         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
7127         * print-tree.c (print_node): Likewise.
7128         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
7129         DECL_TRANSPARENT_UNION on proper decl types.
7130         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
7131         * stor-layout.c (layout_decl): Only check DECL_PACKED and
7132         DECL_BIT_FIELD of FIELD_DECL.
7133         * tree.h (DECL_RESULT_FLD): New macro.
7134
7135         * expr.c (expand_assignment): Add code to handle variable-sized
7136         BLKmode case.
7137
7138 2000-03-26  Richard Henderson  <rth@cygnus.com>
7139
7140         * calls.c (expand_call): Pass parms not original exp to
7141         optimize_tail_recursion.  Mind return value instead of looking
7142         for a barrier.
7143         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
7144         call_expr.  Move checks for call_expr and current_function_decl ...
7145         (expand_return): ... here.
7146
7147 2000-03-26  Tom Tromey  <tromey@cygnus.com>
7148
7149         * gcc.c (handle_braces): Recognize `%{<S}' construct.
7150         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
7151         defines.
7152         (process_command): Use them.
7153         (check_live_switch): Likewise.
7154         (give_switch): Skip ignored switches.
7155
7156 2000-03-26  Jan Hubicka  <jh@suse.cz>
7157
7158         * jump.c (jump_optimize_1): Fix typo in elide optimizations
7159         for minimal jump pass test.
7160
7161 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
7162
7163         * integrate.c (function_cannot_inline_p): Do inline functions that
7164         return `void'.
7165
7166 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7167
7168         * stor-layout.c (layout_type, set_sizetype): early_type_list is
7169         now a list of TREE_LIST entries, not types.
7170         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
7171
7172         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
7173         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
7174         int_bit_position.
7175         * config/mips/mips.c (function_arg): Likewise; also remove cast
7176         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
7177         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
7178         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
7179         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
7180         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
7181         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
7182         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
7183         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
7184         num_adjusts now unsigned.
7185         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
7186         * config/sparc/sparc.c (struct function_arg_record_value_parms):
7187         NREGS now unsigned.
7188         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
7189         as is BITPOS variable; use host_integerp and int_bit_position.
7190         (function_arg_record_value_2): Likewise.
7191         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
7192         Variable REGNO now unsigned.
7193         (function_arg_record_value): NREGS now unsigned.
7194
7195 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
7196
7197         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
7198
7199 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7200
7201         * Rework fields used to describe positions of bitfields and
7202         modify sizes to be unsigned and use HOST_WIDE_INT.
7203         * alias.c (reg_known_value_size): Now unsigned.
7204         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
7205         (really_start_incremental_init): Use bitsize_zero_node.
7206         (push_init_level, pop_init_level, output_init_element): Likewise.
7207         Use bitsize_unit_node and bitsize_one_node.
7208         (output_pending_init_elements, process_init_element): Likewise.
7209         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
7210         (make_extraction): Position and length HOST_WIDE_INT and unsigned
7211         HOST_WIDE_INT, respectively.
7212         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
7213         (num_sign_bit_copies): Returns unsigned.
7214         BITWIDTH now unsigned; rework arithmetic.
7215         Remove recursive call from arg to MAX.
7216         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
7217         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
7218         REGNO now unsigned.
7219         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
7220         (find_split_point, expand_compound_operation, make_extraction): LEN
7221         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
7222         (make_field_assignment): Likewise.
7223         (combine_simplify_rtx): Add cast.
7224         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
7225         (force_to_mode): WIDTH now unsigned; add cast.
7226         (if_then_else_cond): SIZE now unsigned.
7227         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
7228         (extended_count): Now returns unsigned.
7229         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
7230         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
7231         (simplify_comparison): MODE_WIDTH now unsigned.
7232         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
7233         (mark_used_regs_combine): Likewise; rework arithmetic.
7234         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
7235         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
7236         (record_promoted_value): REGNO now unsigned.
7237         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
7238         (get_last_value): REGNO now unsigned.
7239         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
7240         (reg_dead_regno, reg_dead_endregno): Now unsigned.
7241         (remove_death): Arg REGNO now unsigned.
7242         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
7243         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
7244         now unsigned.
7245         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
7246         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
7247         (struct cse_reg_info): REGNO now unsigned.
7248         (cached_regno): Now unsigned.
7249         (REGNO_QTY_VALID_P): Add cast.
7250         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
7251         (remove_invalid_regs): Likewise.
7252         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
7253         as are variables END and I.
7254         (get_cse_reg_info, insert): Likewise.
7255         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
7256         (canon_hash): Likewise.
7257         (insert_regs, lookup_for_remove): REGNO now unsigned.
7258         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
7259         New variable RN.
7260         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
7261         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
7262         * emit-rtl.c (subreg_realpart_p): Add cast.
7263         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
7264         (operand_subword_force): Arg I is now unsigned.
7265         * except.c (eh_regs): Variable I is now unsigned.
7266         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
7267         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
7268         length is unsigned HOST_WIDE_INT; likewise for internal variables.
7269         (store_split_bit_field, extract_fixed_bit_field): Likewise.
7270         (extract_split_bit_field, store_bit_field, extract_bit_field):
7271         Likewise.
7272         * expr.c (store_constructor_fields, store_constructor, store_field):
7273         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
7274         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
7275         (do_jump): Likewise.
7276         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
7277         MAX_SIZE is now unsigned.
7278         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
7279         (emit_group_store): Likewise.
7280         (emit_move_insn): I now unsigned.
7281         (store_constructor): Use host_integerp, tree_low_cst, and
7282         bitsize_unit_node.
7283         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
7284         Rework all calculations to use trees and new fields.
7285         * expr.h (promoted_input_arg): Regno now unsigned.
7286         (store_bit_field, extract_bit_field): Adjust types of pos and size.
7287         (mark_seen_cases): Arg is HOST_WIDE_INT.
7288         * flow.c (verify_wide_reg_1): REGNO now unsigned.
7289         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
7290         precisions and alignments are unsigned.
7291         (optimize_bit_field_compare, fold_truthop): Likewise.
7292         (int_const_binop): Adjust threshold for size_int_type_wide call.
7293         (fold_convert): Likewise.
7294         (size_int_type_wide): Make table larger and fix thinko that only
7295         had half of table used.
7296         (all_ones_mask_p, fold): Precisions are unsigned.
7297         * function.c (put_reg_info_stack): REGNO is unsigned.
7298         (instantiate_decl): Size is HOST_WIDE_INT.
7299         (instantiate_virtual_regs): I is unsigned.
7300         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
7301         (promoted_input_arg): REGNO is unsigned.
7302         * function.h (struct function): x_max_parm_reg is now unsigned.
7303         * gcse.c (max_gcse_regno): Now unsigned.
7304         (struct null_pointer_info): min_reg and max_reg now unsigned.
7305         (lookup_set, next_set): REGNO arg now unsigned.
7306         (compute_hash_table): REGNO and I now unsigned.
7307         (handle_avail_expr): regnum_for_replacing now unsigned.
7308         (cprop_insn): REGNO now unsigned.
7309         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
7310         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
7311         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
7312         * hard-reg-set.h (reg_class_size): Now unsigned.
7313         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
7314         * jump.c (mark_modified_reg): I now unsigned; add cast.
7315         (rtx_equal_for_thread_p): Add cast.
7316         * loop.c (max_reg_before_loop): Now unsigned.
7317         (struct_movable): REGNO now unsigned.
7318         (try_copy_prop): REGNO arg unsigned.
7319         (regs_match_p): XN and YN now unsigned.
7320         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
7321         (strength_reduce): Likewise; NREGS also unsigned.
7322         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
7323         * loop.h (struct iv_class): REGNO now unsigned.
7324         (max_reg_before_loop, first_increment_giv, last_increment_giv):
7325         Now unsigned.
7326         * machmode.h (mode_size, mode_unit_size): Now unsigned.
7327         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
7328         * optabs.c (expand_binop): I and NWORDS now unsigned.
7329         (expand_unop): I now unsigned.
7330         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
7331         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
7332         * real.c (significand_size): Now returns unsigned.
7333         * real.h (significand_size): Likewise.
7334         * regclass.c (reg_class_size): Now unsigned.
7335         (choose_hard_reg_mode): Both operands now unsigned.
7336         (record_reg_classes): REGNO and NR now unsigned.
7337         (reg_scan): NREGS now unsigned.
7338         (reg_scan_update): old_max_regno now unsigned.
7339         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
7340         * reload.c (find_valid_class): BEST_SIZE now unsigned.
7341         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
7342         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
7343         Likewise for variable R.
7344         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
7345         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
7346         (find_equiv_reg): Add casts.
7347         (regno_clobbered_p): Arg REGNO now unsigned.
7348         * reload.h (struct reload): NREGS now unsigned.
7349         (refers_to_regno_for_reload_p): Regno args are unsigned.
7350         (regno_clobbered_p): Likewise.
7351         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
7352         (compute_use_by_pseudos): REGNO now unsigned.
7353         (find_reg): I and J now unsigned, new variable K, and change loop
7354         variables accordingly; THIS_NREGS now unsigned.
7355         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
7356         (spill_hard_reg): REGNO arg now unsigned; add casts.
7357         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
7358         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
7359         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
7360         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
7361         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
7362         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
7363         (emit_reload_insns): REGNO now unsigned.
7364         (reload_cse_move2add): Add cast.
7365         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
7366         and rework loop.
7367         * resource.c (mark_referenced_resources, mark_set_resources): New
7368         variable R; REGNO and LAST_REGNO now unsigned.
7369         (mark_target_live_regs): J and REGNO now unsigned.
7370         * rtl.c (mode_size, mode_unit_size): Now unsigned.
7371         * rtl.h (union rtunion_def): New field rtuint.
7372         (XCUINT): New macro.
7373         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
7374         (operand_subword, operand_subword_force): Word number is unsigned.
7375         (choose_hard_reg_mode): Operands are unsigned.
7376         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
7377         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
7378         (regno_use_in, combine_instructions, remove_death): Likewise.
7379         (reg_scan, reg_scan_update): Likewise.
7380         (extended_count): Return is unsigned.
7381         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
7382         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
7383         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
7384         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
7385         (reg_reg_last_1): FIRS and LAST now unsigned.
7386         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
7387         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
7388         now unsigned.
7389         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
7390         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
7391         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
7392         (replace_regs): Arg NREGS now unsigned.
7393         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
7394         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
7395         (simplify_binary_operation): Likewise.
7396         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
7397         THIS_LAST now unsigned.
7398         (cselib_record_set): Add cast.
7399         * ssa.c (ssa_max_reg_num): Now unsigned.
7400         (rename_block): REGNO now unsigned.
7401         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
7402         sizes now unsigned.
7403         (all_cases_count): Just return -1 not -2.
7404         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
7405         Rework tests to use trees whenever possible.
7406         Use host_integerp and tree_low_cst.
7407         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
7408         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
7409         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
7410         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
7411         (smallest_mode_for_size): Likewise.
7412         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
7413         KNOWN_ALIGN is now an alignment, so simplify code.
7414         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
7415         (start_record_layout): Renamed from new_record_layout_info.
7416         Update to new fields.
7417         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
7418         New functions.
7419         (place_union_field): Renamed from layout_union_field.
7420         Update to use new fields in rli.
7421         (place_field): Renamed from layout_field.
7422         Major rewrite to use new fields in rli; pass alignment to layout_decl.
7423         (finalize_record_size): Rework to use new fields in rli and handle
7424         union.
7425         (compute_record_mode): Rework to simplify and to use new DECL fields.
7426         (finalize_type_size): Make rounding more consistent.
7427         (finish_union_layout): Deleted.
7428         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
7429         (layout_type, case RECORD_TYPE): Call new function names.
7430         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
7431         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
7432         (get_best_mode): UNIT is now unsigned; remove casts.
7433         * tree.c (bit_position): Compute from new fields.
7434         (byte_position, int_byte_position): New functions.
7435         (print_type_hash_statistics): Cast to remove warning.
7436         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
7437         (build_index_type): Likewise; make subtype of sizetype.
7438         (build_index_2_type): Pass sizetype to build_range_type.
7439         (build_common_tree_nodes): Use size_int and bitsize_int to
7440         initialize nodes; add bitsize_{zero,one,unit}_node.
7441         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
7442         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
7443         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
7444         (DECL_FIELD_BITPOS): Deleted.
7445         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
7446         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
7447         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
7448         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
7449         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
7450         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
7451         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
7452         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
7453         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
7454         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
7455         (DECL_ALIGN): Adjust to new field in union.
7456         (DECL_OFFSET_ALIGN): New field.
7457         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
7458         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
7459         (union tree_decl): Add struct for both aligns.
7460         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
7461         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
7462         (struct record_layout_info): Rework fields to have offset
7463         alignment and byte and bit position.
7464         (start_record_layout, place_field): Renamed from old names.
7465         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
7466         (byte_position, int_byte_position): Likewise.
7467         (get_inner_reference): Change types of position and length.
7468         * unroll.c (unroll_loop): New variable R; use for some loops.
7469         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
7470         (calculate_giv_inc): Arg REGNO now unsigned.
7471         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
7472         * varasm.c (assemble_variable): Clean up handling of size using
7473         host_integerp and tree_low_cst.
7474         (decode_addr_const): Use byte, not bit, position.
7475         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
7476         use tree_low_cst and int_bit_position.
7477         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
7478
7479 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
7480
7481         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
7482         (reorder_block_def): New members eff_head and eff_end.
7483         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
7484         (verify_insn_chain): New function.
7485         (skip_insns_between_block): Add code to skip deleted insns.
7486         Check for note before using.
7487         (chain_reorder_blocks): Replace calls to skip_insns_between_block
7488         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
7489         Check for note before using.
7490         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
7491         (fixup_reorder_chain): Restructure, clean up, defect removal.
7492         (reorder_basic_blocks): Remove last_insn and references to it.
7493         Moved insn chain verification code into a new function (see above).
7494         Delete defective code that sets last insn.
7495         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
7496         all blocks.
7497
7498 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7499
7500         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
7501
7502 2000-03-24  Richard Henderson  <rth@cygnus.com>
7503
7504         * tree.c (lang_safe_for_unsave): Remove.
7505         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
7506         allowing for two levels of unsafeness.  Remove lang hook.
7507         * tree.h: Update declarations.
7508         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
7509         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
7510         Always fail sibcalls when there are pending cleanups.
7511
7512 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
7513
7514         * flow.c (propagate_block): When we delete an ADDR_VEC,
7515         also delete the BARRIER following it if there is one.
7516
7517 2000-03-24  Richard Henderson  <rth@cygnus.com>
7518
7519         * builtins.c (expand_builtin_bzero): Convert `length' argument
7520         to sizetype.
7521
7522 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
7523
7524         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
7525         comparison if regno's are equal.
7526         * calls.c (initialize_argument_informat): Add ecf_flags argument.
7527         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
7528         (expand_call): Update caller.
7529         Avoid making a sibling call if argument size of the callee is larger
7530         than argument size of the caller.
7531         Call hard_function_value with outgoing set if in sibcall pass.
7532         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
7533
7534         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
7535         Change LEAF_REGISTERS from an array initializer to actual array
7536         identifier. Move static global variable into the function.
7537         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
7538         sequences for leaf functions.
7539         * global.c (global_alloc): Likewise.
7540         * tm.texi (LEAF_REGISTERS): Update documentation.
7541
7542         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
7543         TARGET_FLAT leaf disabling hack.
7544         (LEAF_REGISTERS): Changed from an array initializer to actual array
7545         identifier to avoid duplication and remove the above hack.
7546         (FUNCTION_OK_FOR_SIBCALL): Define.
7547         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
7548         always like call attribute.
7549         (eligible_for_sibcall_delay): New attribute.
7550         (sibcall): New delay type.
7551         (sibcall, sibcall_value, sibcall_epilogue): New expands.
7552         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
7553         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
7554         * config/sparc/sparc.c (sparc_leaf_regs): New array.
7555         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
7556         New functions.
7557         (output_function_epilogue): Move part of the code into
7558         output_restore_regs.
7559         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
7560         TYPE_SIBCALL.
7561         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
7562         prototypes.
7563
7564         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
7565         until infrastructure is finished.
7566
7567 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
7568
7569         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
7570         (save_parm_insns): Not here.
7571
7572 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7573
7574         * builtins.c (expand_builtin_bzero): New function.
7575         (expand_builtin): Handle bzero.
7576
7577         * builtins.def: Add BUILT_IN_BZERO.
7578
7579         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7580         prototype & function for bzero.
7581
7582 2000-03-23  Michael Meissner  <meissner@redhat.com>
7583
7584         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
7585         change adding TARGET_FP to the TF floating point insns, except for
7586         trunctfsf2, which generates direct calls to truncdfsf2.
7587
7588 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
7589
7590         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
7591         try to protect against middle-end changes that break binary
7592         compatibility.
7593         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
7594
7595 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7596
7597         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
7598
7599 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7600
7601         * calls.c (expand_call): If TARGET is passed by reference and
7602         is readonly, write a CLOBBER.
7603
7604 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7605
7606         * builtins.c (expand_builtin): Handle bcmp.
7607
7608         * builtins.def: Add BUILT_IN_BCMP.
7609
7610         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7611         prototype & function for bcmp.
7612
7613 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
7614
7615         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
7616         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
7617         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
7618
7619 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
7620
7621         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
7622         alternative when using -fp64 -gp32.
7623
7624 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7625
7626         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
7627         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
7628         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
7629
7630         * frame.h (frame_state): Revert last change.
7631         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
7632         * libgcc2.c (throw_helper): Revert last change.
7633
7634 2000-03-22  Richard Henderson  <rth@cygnus.com>
7635
7636         * stmt.c (expand_asm_operands): Don't promote the temporary.
7637
7638 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7639
7640         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
7641         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
7642           c_get_alias_set): Likewise.
7643         * c-decl.c (duplicate_decls): Likewise.
7644         * c-typeck.c (default_conversion,build_unary_op): Likewise.
7645         * calls.c (initialize_argument_information): Likewise.
7646         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
7647         Likewise.
7648         * dwarfout.c (decl_class_context,output_type): Likewise.
7649         * expr.c (get_inner_reference): Likewise.
7650         * fold-const.c (simple_operand_p,fold): Likewise.
7651         * function.c (aggregate_value_p): Likewise.
7652         * stmt.c (expand_asm_operands): Likewise.
7653         * varasm.c (named_section): Likewise.
7654
7655 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7656
7657         Implement dwarf2 exception handling for the ARM.
7658         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
7659         (DWARF_FRAME_RETURN_COLUMN): Define.
7660         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
7661         REG_FRAME_RELATED_EXPR note.
7662         (emit_sfm): Likewise.
7663         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
7664         * dwarf2out.c (reg_save): Handle saving a register to itself.
7665         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
7666         * except.c (eh_regs): Don't use the static chain reg if it's
7667         callee-saved.
7668         * frame.h (frame_state): Add cfa_saved field.
7669         * frame.c (execute_cfa_insn): Set it.
7670         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
7671         the epilogue.
7672         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
7673         Now takes a parm.
7674         (instantiate_virtual_regs): Adjust.
7675         * tm.texi: Adjust.
7676         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7677         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7678         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
7679
7680         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
7681         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
7682
7683 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7684
7685         * builtins.def: New file.
7686
7687         * Makefile.in (TREE_H): Depend on builtins.def.
7688
7689         * builtins.c (built_in_names): Use builtins.def.
7690
7691         * tree.h (built_in_function): Likewise.
7692
7693 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
7694
7695         * tree.c (size_in_bytes): Return size_zero_node, not
7696         integer_zero_node.
7697
7698 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
7699
7700         * config/fp-bit.c (pack_d): Correct the case when a denormal
7701         is rounded up and stops being denormal.
7702
7703 2000-03-21  Richard Henderson  <rth@cygnus.com>
7704
7705         * config/alpha/alpha.c (function_arg): Check for void_type_node
7706         before using MUST_PASS_IN_STACK.
7707
7708 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
7709
7710         * regmove.c (combine_stack_adjustments_for_block): Check that
7711         the stack pointer is a valid memory address.
7712
7713 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
7714
7715         * calls.c: re-install Mar 16 emit_library_call merge.
7716
7717 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
7718
7719         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
7720         we cannot be sure that if reload_completed base register will
7721         be properly aligned.
7722
7723 2000-03-21  Richard Henderson  <rth@cygnus.com>
7724
7725         * flow.c (delete_block): Fix typo last change.
7726
7727 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
7728
7729         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
7730         not COMPLETE_TYPE_P, to check the type of the expression.
7731
7732 2000-03-21  Michael Meissner  <meissner@redhat.com>
7733
7734         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
7735         all floating point insns that just tested the macro
7736         TARGET_HAS_XFLOATING_LIBS.
7737         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
7738         used to only use the gprs.
7739
7740 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
7741
7742         * tree.h (COMPLETE_TYPE_P): New macro.
7743         (COMPLETE_OR_VOID_TYPE_P): New macro.
7744         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
7745         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
7746         * c-aux-info.c (gen_type): Use them.
7747         * c-common.c (c_expand_expr_stmt): Likewise.
7748         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
7749         grokdeclarator, grokparms, finish_struct, start_function,
7750         store_parm_decls, combine_parm_decls): Likewise.
7751         * c-parse.y (cast_expr): Likewise.
7752         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
7753         c_size_in_bytes, c_alignof, build_component_ref,
7754         build_indirect_ref, build_array_ref, convert_arguments,
7755         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
7756         * calls.c (initialize_argument_information): Likewise.
7757         * convert.c (convert_to_integer): Likewise.
7758         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
7759         * dwarfout.c (location_or_const_value_attribute,
7760         output_enumeration_type_die, output_structure_type_die,
7761         output_union_type_die, output_type): Likewise.
7762         * expr.c (safe_from_p, expand_expr): Likewise.
7763         * function.c (assign_parms): Likewise.
7764         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
7765         * tree.c (build_array_type, build_function_type,
7766         build_method_type, build_offset_type, build_complex_type): Likewise.
7767         * c-parse.c, c-parse.h: Regenerated.
7768
7769 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7770
7771         * config/c4x/rtems.h: Include config/rtems.h.
7772
7773 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
7774
7775         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
7776         decl is a FUNCTION_DECL
7777
7778 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
7779
7780         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
7781         function uses output registers.  Don't save RP for leaf functions.
7782         Do save RP even if no epilogue.
7783         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
7784         (CALL_USED_REGISTERS): Unmark in registers.
7785         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
7786         to near the middle.
7787
7788 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7789
7790         * config/rs6000/rs6000.md (bunordered): New expander.
7791         (bordered): New expander.
7792         (buneq): New expander.
7793         (bunge): New expander.
7794         (bungt): New expander.
7795         (bunle): New expander.
7796         (bunlt): New expander.
7797         (bltgt): New expander.
7798
7799         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
7800         (ccr_bit_negated_p): New function.
7801         (print_operand): For %C, generate appropriate cror for UNEQ,
7802         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
7803
7804 2000-03-20  Andreas Jaeger  <aj@suse.de>
7805
7806         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
7807         warning.
7808
7809         * tree.h (safe_for_unsave): Prototype.
7810
7811 2000-03-20  Richard Henderson  <rth@cygnus.com>
7812
7813         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
7814         (combine_stack_adjustments_for_block): Don't allow sp references
7815         in the side of a set we're not fixing up.
7816         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
7817         after life_analysis.
7818
7819 2000-03-20  Richard Henderson  <rth@cygnus.com>
7820
7821         * calls.c (expand_call): Don't bother generating tail call
7822         sequences if there are pending cleanups.  Use
7823         expand_start_target_temps/expand_end_target_temps to elide
7824         cleanups created during sibcall expansion.
7825
7826 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7827
7828         * configure.in: Set $IFS to a value if it doesn't already have one
7829         in the --enable-checking handling.
7830         * configure: Regenerate.
7831
7832 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7833
7834         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
7835         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7836         Regenerated.
7837
7838 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
7839
7840         * jump.c (delete_noop_moves): Remove code attempting to
7841         combine stack adjustments.
7842
7843 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7844
7845         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
7846         * except.c (emit_cleanup_handler): Use them.
7847         (expand_end_all_catch): Likewise.
7848         * function.c (fixup_var_refs): Likewise.
7849         (expand_function_end): Clear catch_clauses_last.
7850         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
7851         * except.h (struct eh_status): New field x_catch_clauses_last.
7852         (catch_clauses_last): New define.
7853
7854         * Makefile.in (tree.o): Depend on HASHTAB_H.
7855         * tree.c: Include hashtab.h.
7856         (struct type_hash): Remove next field.
7857         (TYPE_HASH_SIZE): Remove.
7858         (TYPE_HASH_INITIAL_SIZE): New define.
7859         (type_hash_table): Change type to htab_t.
7860         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
7861         mark_hash_entry): New functions.
7862         (init_obstacks): Allocate type hash.
7863         (type_hash_lookup): Use htab functions.
7864         (type_hash_add, mark_type_hash): Likewise.
7865         (dump_tree_statistics): Call print_type_hash_statistics.
7866
7867 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7868
7869         * rs6000/t-aix41: New file.
7870
7871         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
7872
7873 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
7874
7875         * tm.texi (Driver): Fix typos and tweak entry for
7876         INCLUDE_DEFAULTS.
7877         Move misplaced STRUCT_FORCE_BLK entry ...
7878         (Storage Layout): ... to here.
7879         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
7880
7881 2000-03-19  Richard Henderson  <rth@cygnus.com>
7882
7883         * flow.c (delete_block): Delete the addr_vec along with the block.
7884         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
7885         reference labels.
7886
7887         * fold-const.c (extract_muldiv): Apply type check for defined
7888         overflow to multiply as well as divide.
7889
7890         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
7891
7892 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7893
7894         * emit-rtl.c (remove_unncessary_notes): Check that all
7895         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
7896         associated NOTE_BLOCK.
7897         * function.h (identify_blocks): Update comments.
7898         (reorder_blocks): Declare.
7899         * function.c (identify_blocks): Don't take paramters.
7900         (reorder_blocks): Don't take parameters.
7901         * loop.h (find_loop_tree_blocks): Remove.
7902         (unroll_block_trees): Likewise.
7903         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
7904         reorder_blocks instead of unroll_block_trees.h
7905         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
7906         * stmt.c (find_loop_tree_blocks): Remove.
7907         (unroll_block_trees): Likewise.
7908         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
7909         in whole-function mode.
7910         * tree.h (reorder_blocks): Remove declaration.
7911
7912         * expr.c: Include intl.h.
7913         * Makefile.in (expr.o): Depend on intl.h.
7914
7915 2000-03-18  Richard Henderson  <rth@cygnus.com>
7916
7917         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
7918
7919 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7920
7921         * tree.h (tree_index): Remove enumerals for integer types.
7922         (integer_type_kind): New type.
7923         (integer_types): New variable.
7924         (char_type_node): Adjust.
7925         (signed_char_type_node): Likewise.
7926         (unsigned_char_type_node): Likewise.
7927         (short_integer_type_node): Likewise.
7928         (short_unsigned_type_node): Likewise.
7929         (integer_type_node): Likewise.
7930         (unsigned_type_node): Likewise.
7931         (long_integer_type_node): Likewise.
7932         (long_unsigned_type_node): Likewise.
7933         (long_long_integer_type_node): Likewise.
7934         (long_long_unsigned_type_node): Likewise.
7935         * tree.c (integer_types): New variable.
7936         (init_obstacks): Register it as a root.
7937
7938 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
7939
7940         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
7941         NEXT_INSN. Update last insn in chain.
7942
7943 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
7944
7945         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
7946         with TYPE_DECL_SUPPRESS_DEBUG set.
7947
7948 2000-03-18  Richard Henderson  <rth@cygnus.com>
7949
7950         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
7951
7952 2000-03-18  Richard Henderson  <rth@cygnus.com>
7953
7954         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
7955         care for HALF_PIC_P.
7956         (expander_call_insn_operand): Remove.
7957         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
7958         * i386.h (PREDICATE_CODES): Update.
7959         * i386.md (all call expanders): Remove predicates, remove special
7960         handling for half-pic.
7961         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
7962         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
7963         (sibcall_epilogue): New.
7964
7965 2000-03-17  Richard Henderson  <rth@cygnus.com>
7966
7967         * rtlanal.c (single_set): Reject if the parallel has anything
7968         except SET or USE or CLOBBER.
7969
7970 2000-03-17  Jeff Law  <law@cygnus.com>
7971             Richard Henderson  <rth@cygnus.com>
7972
7973         * Makefile.in (OBJS): Add sibcall.o.
7974         (sibcall.o): New.
7975         * sibcall.c: New file.
7976         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
7977         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
7978         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
7979         Emit sibcall patterns when requested.  Update all callers.
7980         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
7981         elimination seems feasable.
7982         * final.c (leaf_function_p): Sibling calls don't discount being
7983         a leaf function.
7984         * flow.c (HAVE_sibcall_epilogue): Provide default.
7985         (find_basic_blocks_1): Sibling calls don't throw.
7986         (make_edges): Make edge from sibling call to EXIT.
7987         (propagate_block): Don't remove sibcall_epilogue insns.
7988         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
7989         (sibcall_epilogue): New.
7990         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
7991         (identify_blocks_1): Likewise.  Break out from ...
7992         (identify_blocks): ... here.
7993         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
7994         (reorder_blocks): ... here.
7995         (init_function_for_compilation): Zap prologue/epilogue as varrays.
7996         (record_insns): Extend a varray instead of mallocing new memory.
7997         (contains): Read a varray not array of ints.
7998         (sibcall_epilogue_contains): New.
7999         (thread_prologue_and_epilogue_insns): Emit and record
8000         sibcall_epilogue patterns.
8001         (init_function_once): Allocate prologue/epilogue varrays.
8002         * genflags.c (gen_insn): Treat sibcall patterns as calls.
8003         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
8004         Broken out from ...
8005         (save_for_inline_nocopy): ... here.
8006         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
8007         Broken out from ...
8008         (expand_inline_function): ... here.
8009         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
8010         (subst_constants): Handle 'n' formats.
8011         * jump.c (jump_optimize_minimal): New.
8012         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
8013         optimizations if it's set.
8014         * rtl.c (copy_rtx): Do copy jump & call for insns.
8015         * rtl.h (struct rtx_def): Document use of jump and call for insns.
8016         (SIBLING_CALL_P): New.
8017         (sibcall_use_t): New.
8018         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
8019         Invoke optimize_sibling_and_tail_recursive_calls.
8020         * tree.c (lang_safe_for_unsave): New.
8021         (safe_for_unsave): New.
8022         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
8023
8024         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
8025         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
8026         (*sibcall_osf_1, *sibcall_value_osf_1): New.
8027
8028 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
8029
8030         * objc/objc-act.c (encode_method_prototype): Pass types, not
8031         PARM_DECLs, to int_size_in_bytes.
8032
8033 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
8034
8035         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
8036
8037         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
8038         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
8039
8040 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8041
8042         * Clean up usages of TREE_INT_CST_LOW.
8043         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
8044         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
8045         Regenerated.
8046         * c-tree.h (min_precision): Move declaration to here.
8047         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
8048         (build_unary_op, add_pending_init): Use bit_position.
8049         (pending_init_member, process_init_element): Likewise.
8050         (really_start_incremental_init, push_init_level, pop_init_level):
8051         Don't make copies of nodes or modify them in place, use consistent
8052         types when tracking positions, and use tree routines computations.
8053         (set_init_index, output_init_element): Likewise.
8054         (output_pending_init_elements, process_init_element): Likewise.
8055         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
8056         tree_low_cst and int_bit_position; also minor cleanup.
8057         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
8058         (print_cst_octal): Precision is unsigned.
8059         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
8060         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
8061         (simple_type_align_in_bits): Result is unsigned int.
8062         Use tree_int_low_cst and host_integerp.
8063         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
8064         (field_byte_offset): Result is HOST_WIDE_INT.
8065         Change types of internal variables so alignments are unsigned int,
8066         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
8067         Use host_integerp, tree_low_cst, and int_bit_position.
8068         (add_bit_offset_attribute): Likewise.
8069         (add_data_member_location_attribute): Use tree_cst_low.
8070         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
8071         (add_bit_size_attribute): Use tree_low_cst.
8072         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
8073         * dwarfout.c: Similar changes to dwarf2out.c.
8074         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
8075         * genoutput.c (n_occurences): Return -1 for null string.
8076         (strip_whitespace): Accept null string and make into function.
8077         (scan_operands): Reflect above changes.
8078         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
8079         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
8080         * ssa.c (rename_registers): Add missing cast of arg to bzero.
8081         * tree.c (int_size_in_bytes): Check for too big to represent.
8082         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
8083         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
8084         New declarations.
8085         (min_precision): Delete from here.
8086         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
8087         and int_bit_position.
8088         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
8089         (encode_method_def): Likewise.
8090         (build_ivar_list_initializer): Use int_bit_position.
8091         (generate_shared_structures): Convert size.
8092         (encode_type, encode_complete_bitfield): Use integer_zerop.
8093         (encode_bitfield): Use tree_low_cst and int_bit_position.
8094
8095 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8096
8097         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
8098
8099 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8100
8101         * call.c (special_function_p): It is only malloc if it returns
8102         Pmode.
8103
8104 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8105
8106         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
8107         (C33_FLAG, TARGET_C3X): Add macros.
8108         (TARGET_SWITCHES): Add -m33 option.
8109         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
8110
8111 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8112
8113         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
8114         (PARALLEL_PACK_FLAG): Delete.
8115         (TARGET_SWITCHES): Update.
8116         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
8117
8118 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8119
8120         * fold-const.c (fold): Fix a few cases when the returned result
8121         is not of the same type as the input.
8122
8123 2000-03-16  Nick Clifton  <nickc@cygnus.com>
8124
8125         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
8126         warning.
8127
8128 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8129
8130         * libgcc2.h: Move prototypes above macros with the same name.
8131         Wrap some function prototypes in the conditional which indicates
8132         whether they are supported, i.e. "BITS_PER_UNIT == 8".
8133
8134 2000-03-16  Richard Henderson  <rth@cygnus.com>
8135
8136         * calls.c: Revert last two changes.
8137
8138 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
8139
8140         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
8141         has exponent 0 is a zero.
8142
8143         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
8144         HASH may already be nonzero.  Add code/mode into hash value
8145         immediately after repeat label.
8146         (cselib_lookup): Don't leave the hash table in an inconsistent
8147         state before a hash lookup operation.
8148
8149 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
8150
8151         * i386.md (all HI and QI mode non-move patterns):  Conditionize
8152         by TARGET_[HQ]IMODE_MATH.
8153         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
8154         x86_promote_qi_regs): Declare.
8155         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
8156         TARGET_PROMOTE_QI_REGS): New macros.
8157         (PROMOTE_MODE): New macro.
8158         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
8159         x86_promote_qi_regs): New global variables.
8160
8161 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
8162
8163         * calls.c (emit_library_call_value_1): Break out from ...; handle
8164         VOIDmode function calls too.
8165         (emit_library_call_value): ... here.
8166         (emit_library_call): Implement by calling emit_library_call_value_1.
8167
8168 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
8169
8170         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
8171         Update arg_space_so_far on stack adjustments.
8172         (emit_library_call, emit_library_call_value): Likewise; take into
8173         account arg_space_so_far and pending_stack_adjust when calculcating
8174         the boundary.
8175
8176 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
8177
8178         * flow.c: Move all basic block reordering code into its own file.
8179         (create_basic_block): Externalize.
8180         * bb-reorder.c: New file. Copy all basic block reordering code from
8181         flow.c to this file.
8182         (reorder_basic_blocks): Fix fencepost error in for-loop.
8183         (reorder_basic_blocks): Remove braces from single statement for-loops.
8184         * basic-block.h: Add declaration for create_basic_block.
8185         * Makefile.in: Add rules for bb-reorder.o.
8186
8187 2000-03-16  Neil Booth  <NeilB@earthling.net>
8188
8189         * cppinit.c (handle_option):  Implement #unassert directive
8190         as -A- command line option.
8191         (print_help):  Update.
8192         * cpptexi.c:  Update.
8193
8194 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8195
8196         * md.texi (Standard Names): Document `jump'.
8197
8198 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8199
8200         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
8201         gotos.
8202
8203 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
8204
8205         Merge changes from newppc-branch onto trunk.
8206
8207         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
8208
8209         * rs6000.c (toc_hash_table): Update for new hash table functions.
8210         (toc_hash_function): Likewise.
8211         (toc_hash_eq): Likewise.
8212         (toc_hash_mark_entry): Likewise.
8213         (toc_hash_mark_table): Likewise.
8214         (output_toc): Likewise.
8215         (rs6000_add_gc_roots): Likewise.
8216
8217         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8218
8219         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
8220         (AR_FLAGS_FOR_TARGET): here.  New macro.
8221
8222         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
8223
8224         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
8225         fpmem_operand) Delete.
8226         (xer_operand) New.
8227         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
8228         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
8229         (rs6000_save_machine_status, rs6000_restore_machine_status,
8230         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
8231         references to above variables.
8232         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
8233         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
8234         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
8235         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
8236         (XER_REGNO_P, XER_REGNO): New.
8237         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
8238         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
8239         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
8240         XER_REGNO_P.
8241         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
8242         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
8243         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
8244
8245         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8246
8247         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
8248         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
8249         * rs6000.h: from here.
8250
8251         * rs6000-protos.h (rs6000_select_section): Provide prototype.
8252         (rs6000_select_rtx_section): Likewise.
8253         (rs6000_encode_section_info): Likewise.
8254         (sdata_section): Likewise.
8255         (sdata2_section): Likewise.
8256         (sbss_section): Likewise.
8257         * sysv4.h (rs6000_select_section): Delete prototype.
8258         (rs6000_select_rtx_section): Likewise.
8259         (rs6000_encode_section_info): Likewise.
8260         (sdata_section): Likewise.
8261         (sdata2_section): Likewise.
8262         (sbss_section): Likewise.
8263         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
8264
8265         * sysv4.h: Delete various unnecessary #undef's and put a comment
8266         on the remaining ones.
8267         Change various comments according to coding standard.
8268
8269         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
8270
8271         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
8272         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
8273         (CR0_REGNO_P) Remove.
8274         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
8275         setup_incoming_varargs, mtcrf_operation, print_operand,
8276         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
8277         Use the above macros.
8278
8279         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
8280
8281         * config/rs6000/rs6000.md: Added a new alternative for each
8282         pattern that had a 'x' alternative but no 'y' alternative.
8283         Added a new split for each of the above patterns.
8284
8285         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
8286
8287         * aix41.h (ASM_CPU_SPEC): Delete.
8288         (CPP_CPU_SPEC): Delete.
8289
8290         * aix.h (RS6000_OUTPUT_BASENAME): Define.
8291         (ASM_OUTPUT_LABEL): Define.
8292         (ASM_GLOBALIZE_LABEL): Define.
8293         (STRIP_NAME_ENCODING): Define.
8294         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
8295         (STRIP_NAME_ENCODING): Don't define.
8296         (ASM_OUTPUT_LABEL): Don't define.
8297         (ASM_GLOBALIZE_LABEL): Don't define.
8298         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
8299         names, and ASM_OUTPUT_LABEL to output labels, rather than
8300         asm_fprintf.
8301         (ASM_OUTPUT_LABEL): Define.
8302         (ASM_OUTPUT_INT): Use assemble_name.
8303         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
8304         (STRIP_NAME_ENCODING): Don't undefine first.
8305         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
8306         ELF.
8307         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
8308         specified with 'asm' even with -fleading-underscore.
8309         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
8310         (output_epilog): Likewise.
8311         (output_toc): Likewise.
8312         * tramp.asm: Handle -fleading-underscore correctly.
8313
8314         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
8315         -mminimal-toc.
8316         (nonlocal_goto_receiver): Delete.
8317         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
8318
8319         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
8320         (SET_ASM_OP): Define.
8321         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
8322
8323         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
8324         (ASM_LONG): Define.
8325
8326         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
8327         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
8328
8329         * rs6000.h: Add 'u' to more constants.
8330
8331         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
8332
8333         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
8334
8335         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
8336
8337         * rs6000.c (reg_or_u_cint_operand): New function.
8338         (logical_operand): Handle 64-bit hosts.
8339         (logical_u_operand): New function.
8340         (non_logical_cint_operand): Handle 64-bit hosts.
8341         (non_logical_u_cint_operand): New function.
8342         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
8343         (PREDICATE_CODES): Define new functions.
8344         * rs6000-protos.h: Declare new functions.
8345         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
8346         (movdi_64): Bracket code intended for 64-bit hosts.  Create
8347         CONST_DOUBLE for 32-bit values.
8348         (scc insns): Generate DImode compares.
8349         (mfcr insns): Create DImode versions.
8350         (sge matchers): New patterns.
8351
8352         2000-02-15  Gabriel Paubert  <paubert@iram.es>
8353
8354         * rs6000.md: Correct instructions length attributes and
8355         constraints on unsigned compare instructions.
8356         (*ne0): Disable for PowerPC64.
8357
8358         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8359
8360         * rs6000.c (output_function_profiler): Use .long for a 32-bit
8361         quantity, fix profile1.C test failure under -fPIC.
8362
8363         * rs6000.c: Add 'u' to many constants to suppress warnings.
8364         (constant_pool_expr_1): Make static.
8365         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
8366         * rs6000.h: Add 'u' to many constants to suppress warnings.
8367
8368         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
8369         for the start of the TOC, instead of LCTOC..0.
8370         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
8371         of the TOC.
8372         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
8373         (load_toc_aix_di): Use LCTOC..1.
8374
8375         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
8376         * rs6000.c (rs6000_legitimize_address): New function from
8377         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
8378         symbols in the constant pool that really are TOC references.
8379         (print_operand_address): For ELF, write TOC offsets under
8380         -fPIC as subtractions in the insn.
8381         (output_toc): For ELF, define symbols in TOC as normal labels,
8382         to match RTL.
8383         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
8384         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
8385         (create_TOC_reference): Prototype only when RTX_CODE is defined.
8386         * rs6000.md (movsi): Only use create_TOC_reference on
8387         symbols in the constant pool that really are TOC references.
8388
8389         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
8390         * rs6000.c (rs6000_reorg): Delete.
8391         * rs6000-protos.h (rs6000_reorg): Delete.
8392
8393         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
8394
8395         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
8396
8397         * aix.h (SETUP_FRAME_ADDRESSES): Define.
8398         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
8399         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
8400         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
8401         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
8402         rs6000_aix_emit_builtin_unwind_init.
8403         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
8404         rs6000_emit_eh_toc_restore on AIX.
8405         (return_eh_si): Use r2.
8406         (return_eh_di): Use r2.
8407
8408         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
8409         since we're breaking binary compatibility anyway.
8410
8411         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8412
8413         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
8414         constant_pool_expr_p): Declare them.
8415         (constant_pool_expr_p): Declare it.
8416         * config/rs6000/rs6000.c (toc_label_name): Define.
8417         (rs6000_override_options): Set toc_label_name.
8418         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
8419         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
8420         uses_TOC): New functions.
8421         (print_operand): Delete old '*' case.
8422         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
8423         and strip off rtl for TOC before calling output_addr_const.
8424         (rs6000_emit_load_toc_table): Use toc_label_name.
8425         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
8426         the default.
8427         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
8428         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
8429         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
8430         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
8431         into explicit TOC_REGISTER offsets.
8432         (TOC_REGISTER): New macro.
8433         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
8434         TARGET_TOC to reference TOC_REGISTER.
8435         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
8436         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
8437         uses_TOC before emitting label references.
8438
8439         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8440
8441         * rs6000.md (stack_tie): Fix warning.
8442
8443         * eabi-ctors.c: Use 'asm' names for the start/end variables,
8444         to handle -fleading-underscore.
8445         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
8446         (USER_LABEL_PREFIX): New macro.
8447         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
8448         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
8449         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
8450         call-linux can use the same multilibs.
8451         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
8452         and call-linux multilibs.  Do multilib with -fleading-underscore.
8453         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
8454         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
8455         to call-aix.
8456
8457         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
8458         have MASK_SOFT_FLOAT set.
8459         (CPP_FLOAT_DEFAULT_SPEC): New macro.
8460         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
8461         CPP_FLOAT_DEFAULT_SPEC.
8462
8463         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
8464         * rs6000.md: Whitespace change.
8465         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
8466         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
8467
8468         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8469
8470         * rs6000.md (eh_epilogue): New expander.
8471         (eh_reg_restore): New expand/split/insn combination.
8472         (return_eh_si): New insn.
8473         (return_eh_di): New insn.
8474
8475         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
8476         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
8477         * eabi-ctors.c (__do_global_ctors): Register this object's
8478         frame.  Clean up.  Call atexit() after the constructors.
8479         (__do_global_dtors): Deregister this object's frame.  Clean up.
8480         Allow for recursive calls to exit().
8481         * rs6000.c (fixuplabelno): New variable.
8482         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
8483         TARGET_RELOCATABLE, it slows down exec() under linux.
8484         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
8485
8486         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
8487         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
8488         (ASM_OUTPUT_DWARF_DELTA2): New macro.
8489         (ASM_OUTPUT_DWARF_DELTA4): New macro.
8490         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
8491         (ASM_OUTPUT_DWARF_ADDR): New macro.
8492         (ASM_OUTPUT_DWARF_DATA4): New macro.
8493         (ASM_OUTPUT_DWARF_DATA2): New macro.
8494         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
8495         (ASM_OUTPUT_DWARF_OFFSET): New macro.
8496         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
8497
8498         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
8499
8500         * rs6000.c (rs6000_sr_alias_set): New variable.
8501         (rs6000_override_options): Initialise rs6000_sr_alias_set.
8502         (rs6000_emit_stack_tie): New function.
8503         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
8504         in a way that dwarf2out can understand.
8505         (rs6000_frame_related): New function.
8506         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
8507         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
8508         Use rs6000_emit_stack_tie when needed.
8509         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
8510         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
8511         * rs6000.md (stack_tie): New insn.
8512         (return_internal_si): Allow return value to be in the count
8513         register.
8514         (return_internal_di): Likewise.
8515
8516         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
8517
8518         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
8519
8520         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
8521
8522         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
8523
8524         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
8525
8526         * rs6000.md (stmw): Use the right POWER opcode.
8527         (lmw): Likewise.
8528
8529         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8530
8531         * rs6000-protos.h: New file.
8532
8533         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
8534
8535         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
8536         warnings.
8537
8538         * sysv4.h: Likewise.
8539
8540         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
8541
8542         * ../../configure.in: Delete powerpcle-*-winnt*
8543         and powerpcle-*-pe|powerpcle-*-cygwin*.
8544         * ../../configure: Regenerated.
8545         * cygwin.h: Delete.
8546         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
8547         (TARGET_WINDOWS_NT): Delete.
8548         (ABI_NT): Delete.
8549         (CALL_NT_DLLIMPORT): Delete.
8550         Delete NT-specific code.
8551         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
8552         * win-nt.h: Delete.
8553         * t-winnt: Delete.
8554         * nt-ci.asm: Delete.
8555         * nt-cn.asm: Delete.
8556         * ntstack.asm: Delete.
8557
8558         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8559
8560         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
8561         (ASM_FILE_START): Likewise.
8562         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8563         (ASM_OUTPUT_LABELREF): Likewise.
8564         (ASM_OUTPUT_SKIP): Likewise.
8565         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
8566         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
8567         (ASM_OUTPUT_CASE_LABEL): Likewise.
8568         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8569         (ASM_OUTPUT_ASCII): Likewise.
8570
8571         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
8572
8573         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
8574         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
8575         increment rs6000_pic_labelno here.
8576         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
8577         and increment rs6000_pic_labelno here.
8578
8579         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
8580
8581         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
8582         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
8583         allocation knows (reg) is dead before the insn.
8584
8585         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
8586
8587         * rs6000.md (movsi_to_cr): Correct typo in output template.
8588
8589         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8590
8591         * rs6000.c (rs6000_pic_labelno): Always define.
8592         (rs6000_pic_func_labelno): Delete.
8593         (lmw_operation): Check for a zero base register,
8594         which doesn't mean what we want.
8595         (stmw_operation): New function.
8596         (print_operand): Define new 'l' modifier.
8597         (rs6000_stack_info): We must save all 64 bits of the registers
8598         if TARGET_POWERPC64.
8599         (rs6000_output_load_toc_table): Delete.
8600         (rs6000_emit_load_toc_table): New function.
8601         (rs6000_allocate_stack_space): Delete.
8602         (rs6000_emit_allocate_stack): New function.
8603         (rs6000_emit_prologue): New function.
8604         (output_prolog): Use rs6000_emit_prologue.
8605         (rs6000_emit_epilogue): Change a few variable names to be
8606         more accurate.  Restore all 64 bits of the registers if
8607         TARGET_POWERPC64.  Only restore the FP registers which were used
8608         if they are being saved/restored one-at-a-time.
8609         (output_mi_thunk): Delete inefficient code generation.
8610         (output_function_profiler): Don't use rs6000_output_load_toc_table.
8611         * rs6000.h: Declare rs6000_emit_load_toc_table,
8612         rs6000_allocate_stack_space, stmw_operation.  Don't declare
8613         rs6000_output_load_toc_table.
8614         * rs6000.md (elf_high): Allow register 0, but discourage it
8615         heavily.
8616         (elf_low): Support loading into register 0.
8617         (load_toc_aix_si): New pattern.
8618         (load_toc_aix_di): New pattern.
8619         (load_toc_v4_pic_si): New pattern.
8620         (load_toc_v4_pic_di): New pattern.
8621         (load_toc_v4_PIC_1): New pattern.
8622         (load_toc_v4_PIC_1b): New pattern.
8623         (load_toc_v4_PIC_2): New pattern.
8624         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
8625         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
8626         (prologue): New expander.
8627         (movesi_from_cr): New pattern.
8628         (stmw): New pattern.
8629         (save_fpregs_si): New pattern.
8630         (save_fpregs_di): New pattern.
8631
8632         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8633
8634         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
8635         (movdi): Likewise.
8636         (movhi): Likewise.
8637         (movqi): Likewise.
8638
8639         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8640
8641         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
8642         at present.
8643         (movsi_got_internal): Likewise.
8644         (movsi_got_internal+1): Likewise.
8645         (set_sp): 'unspec 7' does a SImode clobber.
8646
8647         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8648
8649         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
8650         allocate a stack temporary.
8651         (floatsidf2_internal): Likewise.
8652         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
8653         with unspec.
8654         (floatunssidf2): Don't use the fpmem "register", just
8655         allocate a stack temporary.
8656         (floatunssidf2_internal): Likewise.
8657         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
8658         with unspec.
8659         (floatsidf2_loadaddr): Delete.
8660         (floatsidf2_store1): Delete.
8661         (floatsidf2_store2): Delete.
8662         (floatsidf2_load): Delete.
8663         (fix_truncdfsi2): Don't use the fpmem "register", just
8664         allocate a stack temporary.
8665         (fix_truncdfsi2_internal_si): Delete.
8666         (fix_truncdfsi2_internal_di): Delete.
8667         (fix_truncdfsi2_internal): New insn.
8668         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
8669         (fix_truncdfsi2_store): Delete.
8670         (fix_truncdfsi2_load): Delete.
8671         (fctiwz): Produce gen_fctiwz.
8672
8673         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8674
8675         * eabi.h (INVOKE__main): Define.
8676         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
8677         specially.
8678         (rs6000_emit_prologue): Likewise.
8679         * rs6000.h (struct rs6000_stack): Don't keep track of whether
8680         this is the main program.
8681
8682         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8683
8684         * rs6000.c (rs6000_va_arg): Delete some unused variables.
8685
8686         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8687
8688         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
8689         goes after the argument.
8690
8691         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8692
8693         * rs6000.md: Document 'unspec' values used.
8694         (epilogue): New expander.
8695         (movesi_to_cr_one): New expander.
8696         (movesi_to_cr and following): New pattern.
8697         (lmw): New pattern.
8698         (return_internal_si): New pattern.
8699         (return_internal_di): New pattern.
8700         (return_and_restore_fpregs_si): New pattern.
8701         (return_and_restore_fpregs_di): New pattern.
8702         * rs6000.h: Declare new functions.
8703         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
8704         rather than rs6000_calls_p.
8705         (rs6000_makes_calls): Delete.
8706         (lmw_operation): New function.
8707         (mtcrf_operation): New function.
8708         (rs6000_emit_epilogue): New function.
8709         (output_epilog): Call rs6000_emit_epilogue and final if
8710         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
8711
8712         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8713
8714         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
8715         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
8716         * aix.h (SUBTARGET_SWITCHES): Document switches.
8717         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
8718         sched-prolog and sched-epilog the same.  Document all the
8719         switches.
8720         (TARGET_OPTIONS): No longer allow -mdebug-.
8721
8722         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8723
8724         * rs6000.h (ASM_FILE_END): Move to aix.h.
8725         (EXTRA_SECTIONS): Move to aix.h.
8726         (READONLY_DATA_SECTION): Move to aix.h.
8727         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
8728         (SELECT_SECTION): Move to aix.h.
8729         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
8730         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
8731         (LINK_REGISTER_REGNUM): New definition.
8732         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
8733         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
8734         AIX and SVR4.
8735         * sysv4.h: Delete the code between the inclusion of rs6000.h
8736         and svr4.h.
8737         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
8738         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
8739         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
8740         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
8741         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
8742         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
8743         (fix_truncdfsi2_internal_di): New pattern.
8744         (fix_truncdfsi2_store): The second arg here is Pmode too.
8745         (fix_truncdfsi2_load): The second arg here is Pmode too.
8746         (tablejumpdi): Now that switch tables hold only SImode values,
8747         gcc needs to know how to add them to the pc which is DImode.
8748         * rs6000.c (rs6000_stack_info): Use symbolic name for
8749         LINK_REGISTER_REGNUM.
8750         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
8751         (output_toc): Delete unused variables s1 and s2.
8752         (output_ascii): Use fputs not fprintf on a variable string.
8753
8754         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
8755
8756         * rs6000.c (processor_target_table): Add power3 as alias for 630.
8757         * aix43.h: Revert Aug 2 change.
8758         (HAS_INIT_SECTION): Define, not visible yet.
8759         (LD_INIT_SWITCH): Define, not visible yet.
8760         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
8761
8762         2000-01-04  Joel Sherrill (joel@OARcorp.com>
8763
8764         * config/rs6000/rtems.h: Include config/rtems.h.
8765
8766         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
8767
8768         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
8769         (SLOW_UNALIGNED_ACCESS): Define.
8770         (CASE_VECTOR_MODE): Always use 32-bit offsets.
8771         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
8772         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
8773         (toc_section): Likewise and .toc pseudo-op.
8774         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
8775         64-bit mode.
8776         (TEXT_SECTION_ASM_OP): Likewise.
8777         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
8778         32-bit offsets.
8779
8780         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
8781
8782         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
8783         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
8784         compiling libgcc2.
8785
8786         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8787
8788         * rs6000.h: Move more stuff from here...
8789         * aix.h: to here.
8790         * sysv4.h: Cleanup accordingly.
8791         * netware.h: Likewise
8792
8793         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8794
8795         * rs6000.h: Continue cleanup.
8796         * aix.h: Likewise.
8797         * lynx.h: Likewise.
8798         * netware.h: Likewise.
8799         * sol2.h: Likewise.
8800         * sysv4.h: Likewise.
8801         * win-nt.h: Likewise.
8802
8803         * rs6000.h (TARGET_SWITCHES): Add descriptions.
8804         (TARGET_OPTIONS): Likewise.
8805
8806         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
8807         (SUBTARGET_OPTIONS): Likewise.
8808
8809         * rs6000.md: Fix compile time warnings.
8810
8811         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8812
8813         vxworks patches from the Cygnus tree originally by
8814         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
8815         <vmakarov@cygnus.com>.
8816         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
8817         (ENDFILE_SPEC): Likewise.
8818         (LIB_VXWORKS_SPEC): New macro.
8819         (STARTFILE_VXWORKS_SPEC): New macro.
8820         (ENDFILE_VXWORKS_SPEC): New macro.
8821         (LINK_START_VXWORKS_SPEC): New macro.
8822         (LINK_OS_VXWORKS_SPEC): New macro.
8823         (CPP_OS_VXWORKS_SPEC): New macro.
8824         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
8825         * vxppc.h: Rewrite to use proper configuration method.
8826         * vxppcle.h: New file.
8827         * ../../configure.in: Add powerpcle-wrs-vxworks*.
8828         * ../../configure: Rebuilt.
8829
8830         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8831
8832         Lots of changes to rs6000.h, sysv4.h, aix.h,
8833         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
8834         with the aim that rs6000.h is the first header
8835         included and the others override it.
8836         * aix.h: New file.
8837
8838         * x-aix41-gld: Remove.
8839         * x-aix43: Remove.
8840         * x-aix41: Remove target-specific switches, and don't specify
8841         -Wl,-bbigtoc as we don't need it any more.
8842         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
8843         Use t-aix43 for AIX 4.3 and above.
8844         * ../../configure: Regenerated.
8845
8846         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
8847         options, that don't do anything yet.
8848         (MASK_SCHED_PROLOG): New macro.
8849         (MASK_SCHED_EPILOG): New macro.
8850         (TARGET_SCHED_PROLOG): New macro.
8851         (TARGET_SCHED_EPILOG): New macro.
8852
8853         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8854
8855         * rs6000.c: Correct comment, the `minimal' TOCs are actually
8856         one per translation unit, not one per function.
8857         (output_toc): Also do duplicate constant elimination
8858         for per-translation-unit TOCs.
8859
8860         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
8861         a comment explaining _exactly_ when this pattern gets used.
8862         (builtin_setjmp_receiver): New pattern for better clarity.
8863         (init_v4_pic): Move it into a section dealing with TOC registers.
8864
8865         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
8866
8867         * rs6000.c (toc_hash_table): New variable.
8868         (rs6000_hash_constant): New function.
8869         (toc_hash_function): New function.
8870         (toc_hash_eq): New function.
8871         (toc_hash_mark_entry): New function.
8872         (toc_hash_mark_table): New function.
8873         (output_toc): Don't output duplicate TOC entries in
8874         a single file.
8875         (rs6000_add_gc_roots): Add the hash table as a GC root.
8876         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
8877         where they clearly shouldn't be.  This may need to be fixed
8878         later when there is a GNU ar for AIX.
8879         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
8880         Don't define BOOT_LDFLAGS as it is now not necessary.
8881
8882         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
8883
8884         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
8885         for va_list on AIX.  Use unsigned_char_type_node rather than
8886         constructing our own version on svr4.
8887
8888         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
8889
8890         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
8891         since patently it's not.
8892
8893         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
8894
8895         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
8896         define_expand/define_insn pair, and handle restore of the
8897         SVR4 -fpic register.
8898
8899 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
8900
8901         * acconfig.h (HAVE_GAS_WEAK): New define.
8902         * configure.in (assembler weak support): Check for .weak support.
8903         * config.in, configure: Rebuilt.
8904         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
8905         HAVE_GAS_WEAK is defined.
8906
8907 2000-03-15  Nick Clifton  <nickc@cygnus.com>
8908
8909         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
8910         asm_fprintf().
8911
8912 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
8913
8914         * cppfiles.c (open_include_file): New function.
8915         (find_include_file, cpp_read_file): Use it.
8916
8917 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8918
8919         * cpphash.c (dump_hash_helper): Take the slot, not the element.
8920
8921 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
8922
8923         * flow.c (verify_flow_info): Check for unconditional return.
8924
8925 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
8926
8927         * config/ia64/ia64.md (restore_stack_nonlocal): New.
8928         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
8929         (__ia64_restore_stack_nonlocal): New.
8930         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
8931
8932 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8933
8934         * cpphash.c (collect_formal_parameters): Do not complain about
8935         parameter names that just start with `__VA_ARGS__'.
8936
8937 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
8938
8939         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
8940         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
8941         * i386.c (pentiumpro_cost): Set mul cost to 4.
8942         (x86_use_movx): Set for PPro.
8943
8944 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
8945
8946         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
8947         STACK_BOUNDARY for empty frames now.
8948
8949 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
8950
8951         * stor-layout.c (layout_union): Remove.
8952         (layout_union_field): New function, split out from layout_union.
8953         (finish_union_layout): Likewise.
8954         (layout_field): Handle unions by calling layout_union_field.
8955         (finish_record_layout): Handle unions.
8956         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
8957         QUAL_UNION_TYPE handling.
8958
8959 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
8960
8961         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
8962         end of basic block is jump_insn, not barrier; use create_basic_block
8963         instead of creating basic block by hand.
8964
8965 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
8966
8967         * flow.c (reorder_basic_blocks): Account for barriers when writing
8968         over NEXT_INSN (last_bb->end).
8969         (verify_flow_info): Add check for missing barriers.
8970
8971 2000-03-14  Greg McGary  <gkm@gnu.org>
8972
8973         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
8974         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
8975         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
8976         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
8977         __unbounded, __unbounded__): New keywords.
8978         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
8979         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
8980         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
8981
8982 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
8983
8984         * cselib.h: New file.
8985         * alias.c: Include "cselib.h".
8986         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
8987         MEMs as two new arguments.
8988         (get_addr): New static function.
8989         (find_base_term): Handle VALUEs.
8990         (memrefs_conflict_p): Likewise.
8991         (true_dependence): Call get_addr on the addresses.
8992         Call fixed_scalar_and_varying_struct_p with addresses that have been
8993         passed through get_addr and canon_rtx.
8994         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
8995         with true_dependence.
8996         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
8997         * loop.c: Include "cselib.h".
8998         (load_mems): Process extended basic block that enters the loop with
8999         cselib.  Use that information to change initialization of the shadow
9000         register so that a constant equivalence is seen by later passes.
9001         * reload1.c: Include "cselib.h".
9002         (reload_cse_invalidate_regno): Delete function.
9003         (reload_cse_mem_conflict_p): Likewise.
9004         (reload_cse_invalidate_mem): Likewise.
9005         (reload_cse_invalidate_rtx): Likewise.
9006         (reload_cse_regno_equal_p): Likewise.
9007         (reload_cse_check_clobber): Likewise.
9008         (reload_cse_record_set): Likewise.
9009         (reg_values): Delete static variable.
9010         (invalidate_regno_rtx): Likewise.
9011         (reload_cse_delete_noop_set): New static function.
9012         (reload_cse_simplify): New static function, broken out of
9013         reload_cse_regs_1.
9014         (reload_cse_noop_set_p): Delete unused argument INSN.
9015         Just call rtx_equal_for_cselib_p on set source and destination.
9016         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
9017         reload_cse_delete_noop_set.  Delete code to keep track of values; use
9018         cselib functions instead.  Delete code to push/pop obstacks.
9019         (reload_cse_simplify_set): Use cselib to find equivalent values.
9020         Delete code to push/pop obstacks.
9021         (reload_cse_simplify_operands): Likewise.
9022         * rtl.def (VALUE): New rtx code.
9023         * rtl.h (union rtunion_def): New elt rt_cselib.
9024         (X0CSELIB, CSELIB_VAL_PTR): New macros.
9025         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
9026         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
9027         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
9028         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
9029         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
9030         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
9031         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
9032         cselib_record_set, cselib_record_sets): New static functions.
9033         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
9034         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
9035         references_value_p): New functions.
9036         (MAX_USELESS_VALUES, REG_VALUES): New macros.
9037         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
9038         n_useless_values, reg_values, callmem, cselib_obstack,
9039         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
9040         New static variables.
9041         * varray.h (union varray_data_tag): New elt te.
9042         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
9043         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
9044         dependencies.
9045
9046 2000-03-14  Nick Clifton  <nickc@cygnus.com>
9047
9048         * gcc.c (do_spec_1): Catch the case where %* is used in a
9049         substitution pattern, but it has not been initialised.
9050         Issue a meaningful error message if an unrecognised operator
9051         is encountered in a spec string.
9052
9053 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
9054
9055         * function.c (prepare_function_start): Correctly initialize
9056         cfun->stack_alignment_needed.
9057
9058 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
9059
9060         * cppfiles.c (find_include_file): Don't assume nshort is a
9061         substring of name.
9062
9063 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
9064
9065         * configure.in (hppa configurations): Add pa32-regs.h to the
9066         list of tm files as appropriate.
9067         * configure: Rebuilt.
9068         * pa.c (compute_frame_size): Remove explicit knowledge about FP
9069         register numbering.
9070         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
9071         (fmpyaddoperands, fmpysuboperands): Likewise.
9072         * pa.h: Remove various definitions which depend on knowing
9073         how registers are numbered.
9074         * pa32-regs.h: New file with PA32 register numbering specific
9075         definitions.
9076
9077 2000-03-14  Richard Henderson  <rth@cygnus.com>
9078
9079         * regmove.c (combine_stack_adjustments): New.
9080         (stack_memref_p, single_set_for_csa): New.
9081         (free_csa_memlist, record_one_stack_memref): New.
9082         (try_apply_stack_adjustment): New.
9083         (combine_stack_adjustments_for_block): New.
9084         * rtl.h (combine_stack_adjustments): Declare.
9085         * toplev.c (rest_of_compilation): Call it.
9086
9087         * i386.md: Revert 2000-01-16 change.
9088
9089 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9090
9091         * gccbug.in: Add web category, gcc specific classes.
9092
9093 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
9094
9095         * stor-layout.c (finalize_record_size): Fix typo.
9096
9097 2000-03-14  Stan Shebs  <shebs@apple.com>
9098
9099         * c-typeck.c (c_alignof): Error on incomplete types.
9100         * extend.texi (Alignment): Document this.
9101
9102 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9103
9104         * cppfiles.c: Include mkdeps.h.
9105         (find_include_file, read_include_file): Remove _cpp_ prefix
9106         from name, make static.
9107         (_cpp_execute_include): New function, broken out of
9108         do_include.
9109
9110         * cpplib.c: Don't include mkdeps.h.
9111         (struct directive): Remove type field. Reorder entries.  The
9112         function takes only one argument.
9113         (struct if_stack): Make type field an int.
9114         (directive_table): Rename to dtable.  Generate it, the
9115         prototypes of the directive handlers, and the enum for the
9116         directive numbers, from a template macro.
9117         (do_ifndef, do_include_next, do_import): New functions.
9118         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
9119         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
9120         do_ident, do_assert, do_unassert, do_sccs): Take only one
9121         argument.
9122         (do_sccs): Define always, but alter behavior based on
9123         SCCS_DIRECTIVE.
9124         (_cpp_handle_directive, consider_directive_while_skipping):
9125         Restructure for new directive table layout.
9126
9127         (pass_thru_directive): Take a directive number, not a pointer
9128         to a struct directive.
9129         (parse_include): New function, broken out of do_include.
9130         (do_include, do_import, do_include_next): Use parse_include
9131         and _cpp_execute_include.
9132         (do_elif, do_else): Test for T_ELSE specifically when checking
9133         for #elif/#else after #else.
9134         (parse_ifdef): New function, broken out of do_ifdef.
9135         (validate_else): Expect a name arg without a leading #.
9136         (if_directive_name): Delete.
9137         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
9138         directive handlers with only one argument.
9139
9140         * cpphash.h: Update prototypes.
9141         (enum node_type): Remove entries for directives.
9142         * Makefile.in: Update dependencies.
9143
9144         * cpphash.c (dump_hash_helper): Only dump nodes of type
9145         T_MACRO.  Emit a newline after each definition.
9146
9147 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9148
9149         * gccbug.in: New file.
9150         * configure.in (all_outputs): Add gccbug.
9151         * Makefile.in (install-common): Install gccbug.
9152         (GCCBUG_INSTALL_NAME): New variable.
9153         * configure: Rebuilt.
9154
9155 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
9156
9157         * function.c (put_var_into_stack): Use type_for_mode to calculate
9158         part_type.  Use MEM_SET_IN_STRUCT_P.
9159         * expr.c (store_field): Handle CONCAT.
9160         (store_constructor): Use fields_length.
9161         * tree.c (fields_length): New fn.
9162         * tree.h: Declare it.
9163
9164 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9165
9166         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
9167         (cpplex.o): New target.
9168         * po/POTFILES.in: Add cpplex.c.
9169
9170         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
9171         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
9172         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
9173         skip_block_comment, skip_line_comment, skip_comment,
9174         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
9175         _cpp_parse_name, skip_string, parse_string,
9176         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
9177         _cpp_get_directive_token, find_position,
9178         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
9179         (maybe_macroexpand, _cpp_lex_token): New functions.
9180
9181         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
9182         parse_goto_mark): Delete.
9183         (_cpp_handle_eof): New function.
9184         (_cpp_handle_directive): Rename from handle_directive.
9185         (_cpp_output_line_command): Rename from output_line_command.
9186         (do_if, do_elif): Call _cpp_parse_expr directly.
9187         * cppfiles.c (_cpp_read_include_file): Don't call
9188         init_input_buffer here.
9189         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
9190         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
9191         here; pop the token_buffer and skip the rest of the line here.
9192         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
9193         here.
9194
9195         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
9196         Define here.
9197         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
9198         CPP_GOTO_MARK): New macros.
9199         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
9200         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
9201         _cpp_read_and_prescan, _cpp_init_input_buffer,
9202         _cpp_grow_token_buffer, _cpp_get_directive_token,
9203         _cpp_handle_directive, _cpp_handle_eof,
9204         _cpp_output_line_command): Prototype them here.
9205         * cpplib.h (enum cpp_token): Add CPP_MACRO.
9206         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
9207         quote_string, output_line_command): Remove.
9208
9209 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
9210
9211         * stmt.c (expand_end_case): RANGE may be signed, and when checking
9212         whether it is too large we must also verify that it isn't negative.
9213
9214 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
9215
9216         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
9217         (movsi_zero_liveg0): Remove.
9218         (movsf_insn_novis_liveg0): Remove.
9219         (negsi2): Remove.
9220         (negsi2_not_liveg0): Rename to negsi2.
9221         (one_cmplsi2): Remove.
9222         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
9223         (one_cmplsi2_liveg0): Remove.
9224         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
9225         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
9226         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
9227         (PREDICATE_CODES): Remove zero_operand.
9228         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
9229         TARGET_BROKEN_SAVERESTORE.
9230         (zero_operand): Remove.
9231         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
9232         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
9233         options.
9234         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9235         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
9236         TARGET_BROKEN_SAVERESTORE): Remove.
9237         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9238         Remove.
9239         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9240         Remove.
9241         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9242         Remove.
9243
9244         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
9245
9246 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9247
9248         * cpplib.c (do_pragma_implementation): Fix off-by-one error
9249         truncating a string.  Don't assume tokens are nul terminated.
9250         Problem noted by Andreas Jaeger <aj@suse.de>
9251
9252 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
9253
9254         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
9255         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
9256         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
9257
9258 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
9259
9260         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
9261         STRUCTURE_SIZE_BOUNDARY.
9262
9263 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
9264
9265         * tree.h (record_layout_info_s): New structure.
9266         (record_layout_info): New type.
9267         (new_record_layout_info): New function.
9268         (layout_field): Likewise.
9269         (finish_record_layout): Likewise.
9270         * stor-layout.c (layout_record): Remove.
9271         (new_record_layout_info): New function.
9272         (layout_field): New function, broken out from layout_record.
9273         (finalize_record_size): Likewise.
9274         (compute_record_mode): Likewise.
9275         (finalize_type_size): New function, broken out from layout_type.
9276         (finish_record_layout): Likewise.
9277         (layout_type): Use them.
9278
9279 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
9280
9281         * cpphash.c: Don't include version.h.
9282         (special_symbol) [case T_VERSION]: Look for the string in
9283         hp->value.cpval; don't use version_string.
9284         * cppinit.c (initialize_builtins): Set hp->value.cpval for
9285         __VERSION__ to version_string.
9286         * Makefile.in (cpphash.o): Update deps.
9287
9288 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
9289
9290         Convert cpplib to use libiberty/hashtab.c.
9291
9292         * cpplib.h (struct cpp_reader): Make hashtab and
9293         all_include_files of type 'struct htab *'.  Delete HASHSIZE
9294         and ALL_INCLUDE_HASHSIZE macros.
9295
9296         * cpphash.h: Update prototypes.
9297         (struct hashnode): Remove next, prev, and bucket_hdr members.
9298         Make length a size_t.  Add hash member.
9299         (struct ihash): Remove next member.  Add hash member.  Make
9300         name a flexible array member.
9301
9302         * cppfiles.c: Include hashtab.h.
9303         (include_hash): Delete.
9304         (IHASHSIZE): New macro.
9305         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
9306         (cpp_included): Do the hash lookup here.
9307         (_cpp_find_include_file): Rewrite.
9308         (cpp_read_file): Put the "fake" hash entry into the hash
9309         table.  Honor the control_macro, if it turns out we've seen
9310         the file before.  Don't push the buffer here.
9311         (_cpp_read_include_file): Push the buffer here.
9312         (OMODES): New macro.  Use it whenever we call open(2).
9313
9314         * cpphash.c: Include hashtab.h.
9315         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
9316         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
9317         _cpp_lookup_slot): New functions.
9318         (HASHSIZE): new macro.
9319         (hashf, _cpp_install, _cpp_delete_macro): Delete.
9320         (_cpp_lookup): Use hashtab.h routines.
9321
9322         * cppinit.c: Include hashtab.h.
9323         (cpp_reader_init): Call _cpp_init_macro_hash and
9324         _cpp_init_include_hash.  Don't allocate hashtab directly.
9325         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
9326         pfile->all_include_files.
9327         (initialize_builtins): Use _cpp_make_hashnode and
9328         htab_find_slot to add hash entries.
9329         (cpp_finish): Just call _cpp_dump_macro_hash.
9330         * cpplib.c: Include hashtab.h.
9331         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
9332         create hash entries.
9333         (do_pragma_poison, do_assert): Likewise.
9334         (do_include): Don't push the buffer here.  Don't increment
9335         system_include_depth unless _cpp_read_include_file succeeds.
9336         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
9337         or htab_remove_elt.
9338         (do_pragma_implementation): Use alloca to create copy.
9339
9340         * Makefile.in: Update dependencies.
9341
9342 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9343
9344         * cppinit.c (cl_directive_handler): More K&R fixing.
9345
9346 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
9347
9348         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
9349         STACK_BOUNDARY.
9350         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
9351
9352 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9353
9354         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
9355         Change from char[] to macros.
9356
9357 2000-03-12  Neil Booth  <NeilB@earthling.net>
9358
9359         * cppinit.c (cpp_start_read): Update indirect function
9360         call to K&R C.
9361
9362 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
9363
9364         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
9365         entry.
9366
9367         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9368         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
9369
9370 2000-03-11  Neil Booth  <NeilB@earthling.net>
9371
9372         * cppinit.c (struct pending option): Replace undef with a
9373         pointer to a directive handling routine.
9374         (struct cpp_pending): Replace separate assert_ and define_
9375         lists with one directive_ list.
9376         (new_pending_define): Rename new_pending_directive. Extra
9377         argument is the directive's handling routine.
9378         (handle_option): Update to use new_pending_directive.
9379
9380 2000-03-11  Neil Booth  <NeilB@earthling.net>
9381
9382         * cppfiles.c (file_cleanup, _cpp_find_include_file,
9383         remap_filename, _cpp_read_include_file, actual_directory,
9384         hack_vms_include_specification): Replace bcopy(), index() etc
9385         calls.  Add casts to some allocations.  Make some variables
9386         pointers to const [unsigned] char.
9387         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
9388         collect_formal_parameters): Similarly.
9389         * cppinit.c (struct pending_option, append_include_chain,
9390         cpp_options_init, cpp_reader_init, initialize_standard_includes,
9391         cpp_start_read, new_pending_define, handle_option): Similarly.
9392         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
9393         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
9394         do_pragma_implementation, detect_if_not_defined,
9395         do_ifdef, skip_if_group, cpp_get_token, parse_string,
9396         do_assert, do_unassert): Similarly.
9397         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
9398         function prototypes.
9399         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
9400
9401 2000-03-10  Richard Henderson  <rth@cygnus.com>
9402
9403         * builtins.c (expand_builtin_strlen): Revert last change.
9404         Use emit_insn_before if we're at the beginning of a sequence.
9405
9406 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
9407
9408         * builtins.c (expand_builtin_strlen): Make sure that we have something
9409         at the beginning of the sequence.
9410
9411         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
9412         deferred inlines.
9413
9414         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
9415
9416 2000-03-10  Richard Henderson  <rth@cygnus.com>
9417
9418         * except.c (can_throw): Use INTVAL on a CONST_INT.
9419         (reachable_handlers): Likewise.
9420         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
9421
9422 2000-03-10  Andreas Jaeger  <aj@suse.de>
9423
9424         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
9425         MD_STARTFILE_PREFIX since those are not needed on linux.
9426         (ASM_FILE_START): New, from mips/gnu.h.
9427
9428 2000-03-09  Richard Henderson  <rth@cygnus.com>
9429             Alex Samuel  <samuel@codesourcery.com> and others
9430
9431         * Makefile.in (ssa.o): New rule.
9432         (OBJS): Add ssa.o.
9433         (STAGESTUFF): Add *.ssa and *.ussa.
9434         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
9435         * rtl.def (PHI): New RTL expression.
9436         * rtl.h (clear_log_links): New declaration.
9437         (convert_to_ssa): Likewise.
9438         (convert_from_ssa): Likewise.
9439         * flow.c (split_edge): If the entry node falls through to the
9440         split edge's source block, split the entry edge.
9441         (clear_log_links): New function.
9442         * toplev.c (ssa_dump): New variable.
9443         (flag_ssa): Likewise.
9444         (f_options): Add "ssa".
9445         (compile_file): Create SSA dump files.
9446         (rest_of_compilation): Go to and from SSA if enabled.
9447         (decide_d_option): Handle -de for SSA dump files.
9448         * ssa.c: New file.
9449
9450 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
9451
9452         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
9453         same as VAR_DECL.
9454
9455 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
9456
9457         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
9458
9459 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
9460
9461         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
9462         (MD_STARTFILE_PREFIX_1): New macro.
9463
9464 2000-03-09  Robert Lipe  <robertl@sco.com>
9465
9466         * config/ia64/ia64.c: Include system.h.
9467
9468 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
9469
9470         * except.c (nothrow_function_p): If -fno-exceptions, just return.
9471         (init_eh_nesting_info): Likewise.
9472
9473         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
9474         (TREE_NOTHROW): Rename from TREE_RAISES.
9475         * toplev.c (rest_of_compilation): Set it.
9476         * print-tree.c (print_node): Adjust.
9477         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
9478         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
9479         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
9480         REG_EH_REGION note as appropriate.
9481         (libfunc_nothrow): New fn.
9482         (emit_library_call, emit_library_call_value): Use it.
9483         (expand_call): Check TREE_NOTHROW.
9484
9485         * varasm.c (make_decl_rtl): Skip initial '*' when setting
9486         DECL_ASSEMBLER_NAME.
9487
9488 2000-03-09  Andreas Jaeger  <aj@suse.de>
9489
9490         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
9491         (TARGET_MEM_FUNCTIONS): Define.
9492
9493 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
9494
9495         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
9496
9497         * except.c (can_throw): See through a SEQUENCE.
9498         (nothrow_function_p): New fn.
9499         * except.h: Declare it.
9500         * function.c (current_function_nothrow): New var.
9501         (prepare_function_start): Initialize it.
9502         * output.h: Declare it.
9503         * toplev.c (rest_of_compilation): Set it.
9504         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
9505
9506 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
9507
9508         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
9509         match.  (cpp_compare_defs): Count the nul separator when
9510         advancing over argument names.
9511
9512 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
9513
9514         * recog.c (preprocess_constraints): Matching constraints affect
9515         same alternative/different operand, not same operand/different
9516         alternative.
9517
9518         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
9519         register and a constant specially.
9520
9521 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9522
9523         * libgcc2.h: New file.
9524         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
9525
9526 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
9527
9528         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
9529         * configure: Regenerate.
9530         * config/ia64: New.
9531
9532 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9533
9534         * Makefile.in (LIBCPP_DEPS): New macro.
9535         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
9536         it to declare deps.
9537         * cpperror.c: Include cpphash.h.
9538         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
9539         dingleberry.
9540         (lex): Don't use CPP_WARN_UNDEF.
9541         (_cpp_parse_expr): Return an int, the truth value.
9542         * cppfiles.c: Include cpphash.h.
9543         (_cpp_merge_include_chains): Move to cppinit.c and make static.
9544         * cppinit.c (include_defaults_array): Disentangle.
9545         (cpp_cleanup): Don't free the if stack here.
9546         (cpp_finish): Pop off all buffers, not just one.
9547         * cpplib.c (eval_if_expr): Return int.
9548         (do_xifdef): Rename do_ifdef.
9549         (handle_directive): Don't use CPP_PREPROCESSED.
9550         (cpp_get_token): Don't use CPP_C89.
9551         * fix-header.c: Don't use CPP_OPTIONS.
9552
9553         * cpplib.h: Move U_CHAR, enum node_type, struct
9554         file_name_list, struct ihash, is_idchar, is_idstart,
9555         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
9556         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
9557         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
9558         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
9559         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
9560         of _cpp_simplify_pathname, _cpp_find_include_file,
9561         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
9562         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
9563         cppinit.c.
9564         Change all uses of U_CHAR to be unsigned char instead.
9565         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
9566
9567 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9568
9569         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
9570         (dwarf2out_begin_prologue): Set it.
9571         (output_call_frame_info): Don't emit EH unwind info for leaves.
9572
9573         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
9574         can occur outside of an EH region.
9575         * except.c: Correct comments about rethrow behavior.
9576         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
9577
9578 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
9579
9580         * flow.c (make_edges): Always call make_eh_edge for calls.
9581
9582 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9583
9584         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
9585         (struct cpp_buffer): Remove fname and underflow fields.
9586         (struct cpp_reader): Remove get_token field.
9587         (struct include_hash): Rename to struct ihash.  Add typedef to
9588         IHASH.
9589         (struct if_stack): Remove fname field.
9590         (IF_STACK_FRAME): Rename to IF_STACK.
9591
9592         * cpperror.c (print_containing_files): Trust that there are no
9593         macro buffers below the top file buffer.
9594         * cppfiles.c: Replace all references to 'struct include_hash'
9595         with 'IHASH'.  Rename initialize_input_buffer to
9596         init_input_buffer.  Don't set or reference cpp_buffer->fname,
9597         use buffer->ihash->name instead.
9598         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
9599         not CPP_NULL_BUFFER.
9600         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
9601         IF_STACK_FRAME, IHASH not struct include_hash.
9602         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
9603         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
9604         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
9605         references to cpp_buffer->fname (delete entirely, or use
9606         ->ihash->name instead) and IF_STACK->fname.
9607         (cpp_push_buffer): Don't set new->underflow.
9608         (do_include): Use cpp_file_buffer.
9609
9610         * cpphash.c (collect_formal_parameters): Remove duplicate
9611         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
9612         used as a macro argument name.  Don't append "..." to namebuf
9613         for varargs macros.  After we're done scanning, go through
9614         namebuf and make it NUL separated, not comma separated.
9615         (_cpp_compare_defs): Remove register tag from variables.
9616         Expect defn->argnames to be NUL separated.
9617         (_cpp_dump_definition): Expect defn->argnames to be NUL
9618         separated and in forward order.
9619         * cpphash.h: Update documentation of argnames field.
9620
9621 2000-03-08  Richard Henderson  <rth@cygnus.com>
9622
9623         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
9624         to fail.  Don't pre-expand the source operand.
9625
9626         * i386.md (strlensi): Initialize eoschar and align before use.
9627
9628 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9629
9630         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
9631         CONSTRUCTOR element.
9632
9633 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
9634
9635         * mips.c (mips_expand_prologue): If the last
9636         named argument is the vararg marker "va_list", treat it as
9637         an unnamed argument.
9638
9639 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
9640
9641         * dbxout.c (dbxout_parms): When correcting for promoted
9642         big-endian parameters, use the mode of the DECL_RTL rather
9643         than UNITS_PER_WORD.
9644
9645 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
9646
9647         * c-common.h (make_fname_decl): Declare.
9648         * c-common.c (make_fname_decl): Define.
9649         (declare_hidden_char_array): Remove.
9650         (declare_function_name): Use make_fname_decl.
9651         * c-decl.c (c_make_fname_decl): New function.
9652         (init_decl_processing): Set make_fname_decl.
9653
9654 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
9655
9656         * cccp.c (handle_directive): Initialize backslash_newlines_p.
9657
9658 2000-03-07  Philipp Thomas  <pthomas@suse.de>
9659
9660         * po/POTFILES.in: Remove cppalloc.c from file list.
9661
9662 2000-03-07  Steve Chamberlain  <sac@pobox.com>
9663
9664         * pj.c (pj_expand_prologue): current_function->args_info is
9665         now current_function_args_info.
9666
9667         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
9668         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
9669         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
9670
9671 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9672
9673         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
9674         output as hexadecimal rather than the default octal.
9675
9676 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9677
9678         * cpphash.c (special_symbol): Fix thinko in previous commit.
9679
9680 2000-03-07  Neil Booth  <NeilB@earthling.net>
9681
9682         * cppexp.c (struct operation, left_shift, right_shift,
9683         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
9684         "int"s to "unsigned int"s.
9685         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
9686         Similarly.
9687         * cpplib.h: Update for above.
9688         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
9689         returned from allocations.
9690
9691         * cppinit.c (opt_comp, parse_options): New functions.
9692         (handle_option): Use parse_option to parse a single command
9693         line option, that possibly takes an argument.
9694         (cpp_handle_options): Sort the array of command line options on
9695         first invocation (non-ASCII hosts only).
9696         (print_help): Update.
9697
9698 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9699
9700         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
9701         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
9702
9703         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
9704         initialized.
9705         * cppinit.c (cpp_cleanup): Free imp->nshort also.
9706
9707         * cpperror.c (cpp_print_containing_files,
9708         cpp_print_file_and_line, v_cpp_message): Rename to
9709         print_containing_files, print_file_and_line, and v_message.
9710         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
9711         to _cpp_parse_expr, parse_escape, and lex.
9712         (parse_charconst): Remove broken multibyte support.
9713         * cppfiles.c (include_hash): Make static.
9714         (cpp_included): New function.
9715         (merge_include_chains, find_include_file, finclude,
9716         simplify_pathname): Rename to _cpp_merge_include_chains,
9717         _cpp_find_include_file, _cpp_read_include_file, and
9718         _cpp_simplify_pathname.
9719         * cpphash.c (cpp_lookup, free_definition, delete_macro,
9720         cpp_install, create_definition, macroexpand, compare_defs,
9721         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
9722         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
9723         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
9724         * cppinit.c (cpp_handle_option): Rename to handle_option, make
9725         static.
9726         * cpplib.c: Remove extern prototype of cpp_parse_expr.
9727
9728         * cpphash.h: Update prototypes.
9729         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
9730
9731 2000-03-07  Andrew Haley  <aph@cygnus.com>
9732
9733         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
9734         PTRDIFF_TYPE should be based solely on Pmode.
9735         (SIZE_TYPE): ditto.
9736
9737 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9738
9739         * rtl.h (rtunion_def): Constify member `rtstr'.
9740         (emit_line_note_after, emit_line_note, emit_line_note_force,
9741         emit_note, decode_asm_operands): Constify.
9742
9743         * cse.c (canon_hash): Likewise.
9744
9745         * dbxout.c (dbxout_block): Likewise.
9746
9747         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
9748         v_warning_for_asm): Likewise.
9749
9750         * dwarfout.c (function_start_label): Likewise.
9751
9752         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
9753         emit_line_note_force): Likewise.
9754
9755         * final.c (last_filename, asm_insn_count, final_scan_insn,
9756         output_source_line): Likewise.
9757
9758         * function.h (struct emit_status): Likewise.
9759
9760         * gcse.c (hash_expr_1): Likewise.
9761
9762         * genattr.c (gen_attr, main): Likewise.
9763
9764         * genattrtab.c (struct function_unit, current_alternative_string,
9765         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
9766         attr_numeral, check_attr_test, check_attr_value,
9767         convert_set_attr_alternative, convert_set_attr,
9768         compute_alternative_mask, simplify_by_exploding, gen_attr,
9769         gen_unit): Likewise.
9770
9771         * genflags.c (gen_insn): Likewise.
9772
9773         * gengenrtl.c (type_from_format): Likewise.
9774
9775         * genopinit.c (gen_insn): Likewise.
9776
9777         * genoutput.c (n_occurrences, process_template, process_template):
9778         Likewise.
9779
9780         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9781         Likewise.
9782
9783         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9784         Likewise.
9785
9786         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
9787         ggc_set_mark, ggc_get_size): Likewise.
9788
9789         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
9790
9791         * optabs.c (init_one_libfunc): Likewise.
9792
9793         * output.h (assemble_start_function): Likewise.
9794
9795         * recog.c (decode_asm_operands): Likewise.
9796
9797         * toplev.c (rest_of_compilation): Likewise.
9798
9799         * tree.h (emit_line_note_after, emit_line_note,
9800         emit_line_note_force): Likewise.
9801
9802         * varasm.c (asm_output_bss, asm_output_aligned_bss,
9803         asm_emit_uninitialised, assemble_start_function,
9804         assemble_variable, const_hash, compare_constant_1,
9805         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
9806
9807         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
9808
9809         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
9810
9811         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
9812
9813         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
9814
9815         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
9816         arm_dllimport_name_p): Likewise.
9817
9818         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
9819         Likewise.
9820
9821         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
9822
9823         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9824
9825         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
9826         arm_mark_dllexport, arm_mark_dllimport,
9827         arm_pe_encode_section_info): Likewise.
9828
9829         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
9830         ASM_FINISH_DECLARE_OBJECT): Likewise.
9831
9832         * arm/thumb.c (thumb_function_prologue): Likewise.
9833
9834         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
9835
9836         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9837
9838         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
9839
9840         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
9841
9842         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
9843
9844         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9845
9846         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
9847         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
9848
9849         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
9850
9851         * i386/i386.c (asm_output_function_prefix): Likewise.
9852
9853         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
9854
9855         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9856
9857         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
9858
9859         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
9860         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
9861         ASM_OUTPUT_SECTION_NAME): Likewise.
9862
9863         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
9864
9865         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
9866
9867         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
9868
9869         * m32r/m32r.c (m32r_encode_section_info): Likewise.
9870
9871         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9872
9873         * mcore/mcore.c (mcore_encode_section_info): Likewise.
9874
9875         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9876
9877         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9878
9879         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9880
9881         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
9882
9883         * mips/mips.md (movdi, movsi): Likewise.
9884
9885         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9886
9887         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9888
9889         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9890
9891         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
9892         ASM_OUTPUT_ASCII): Likewise.
9893
9894         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
9895         output_mi_thunk, output_toc): Likewise.
9896
9897         * rs6000/rs6000.md (movsi): Likewise.
9898
9899         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
9900
9901         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
9902
9903         * v850/v850.c (print_operand, print_operand_address,
9904         v850_encode_data_area): Likewise.
9905
9906 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
9907
9908         * config/mips/mips.md (zero_extendsidi2): Always force operand
9909         one to memory for mips16.
9910
9911 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9912
9913         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
9914         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
9915         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
9916         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
9917         (min_precision): Result is unsigned.
9918         (add_double, neg_double, mul_double): Low word is unsigned.
9919         (lshift_double, rshift_double, lrotate_double): Likewise.
9920         (rrotate_double, div_and_round_double): Likewise.
9921         (tree_floor_log2, compare_tree_int): New functions.
9922         (preserve_rtl_expr_temps): New declaration.
9923         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
9924         (decl_attributes): Use tree_log2 to find alignment.
9925         Check for TREE_INT_CST_HIGH for format args.
9926         (min_precision): Now unsigned.
9927         Use tree_floor_log2.
9928         (truthvalue_conversion): Delete long-disabled code.
9929         * c-decl.c (finish_struct): Clean up tests on field width.
9930         (finish_function): Use compare_tree_int.
9931         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
9932         * c-typeck.c (comptypes): Use tree_int_cst_equal.
9933         (default_conversion, digest_init): Use compare_tree_int.
9934         (build_binary_op): Use integer_all_onesp and compare_tree_int.
9935         Fix type errors in forming masks.
9936         * calls.c (initialize_argument_information): Use compare_tree_int.
9937         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9938         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
9939         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
9940         (store_field): Use compare_tree_int.
9941         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
9942         (expand_expr, case ARRAY_REF): Use compare_tree_int.
9943         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
9944         (do_store_flag): Use compare_tree_int.
9945         * fold-const.c (encode, decode): Low part is always unsigned.
9946         (force_fit_type, add_double, neg_double, mul_double): Likewise.
9947         (lshift_double, rshift_double, lrotate_double): Likewise.
9948         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
9949         (fold_convert): Use compare_tree_int.
9950         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
9951         (invert_truthvalue, case INTEGER_CST): Likewise.
9952         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
9953         * mkdeps.c (deps_dummy_targets): Make I unsigned.
9954         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
9955         (lshift_double, rshift_double, lrotate_double, rrotate_double):
9956         Likewise.
9957         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
9958         (expand_end_case): Use compare_tree_int.
9959         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9960         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
9961         (layout_decl): Likewise.
9962         (layout_record, layout_union): Make sizes unsigned.
9963         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
9964         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
9965         * tree.c (struct type_hash): hashcode is unsigned.
9966         (build_type_attribute_variant, type_hash_list): Likewise.
9967         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
9968         (attribute_hash_list, build_array_type, build_method_type): Likewise.
9969         (build_complex_type): Likewise.
9970         (real_value_from_int_cst): Remove unneeded casts.
9971         (integer_all_onesp): Add casts.
9972         (tree_floor_log2, compare_tree_int): New functions.
9973         (build_index_type): Use tree_int_cst_sgn.
9974         * varasm.c (assemble_variable): Use compare_tree_int.
9975
9976 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
9977
9978         * cpphash.c (collect_expansion): Also catch ## at start of macro.
9979
9980         * varasm.c (make_decl_rtl): Don't add a number to members of
9981         local classes.
9982         (make_function_rtl): Likewise.
9983
9984 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9985
9986         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
9987         patch from 2000-01-28.
9988
9989 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
9990
9991         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
9992         filled with an insn from the jump target.
9993
9994 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9995
9996         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
9997         (c4x_external_ref): Likewise.
9998         * config/c4x/c4x.c (struct name_list): Likewise.
9999
10000 1999-12-16  Ben Collins  <bcollins@debian.org>
10001
10002         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
10003         argument to genmultilib.
10004         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
10005         the contents into the multilib.h header.
10006         * gcc.c: Declare multilib_exclusions for the specs file.
10007         (set_multilib_dir): Use it.
10008         (print_multilib_info): Likewise.
10009         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
10010         to pass to genmultilib.
10011
10012 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10013
10014         * builtins.c (built_in_class_names, built_in_names): Constify a
10015         char*.
10016
10017         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
10018         int.
10019         (_mcleanup): Ensure value matches format specifier in sprintf.
10020
10021         * cpphash.c (special_symbol): Don't needlessly cast away
10022         const-ness.
10023
10024         * cppinit.c (base_name): Delete unused prototype.
10025
10026         * mkdeps.c (deps_init): Make definition K&R safe.
10027
10028         * tree.h (built_in_class_names, built_in_names): Constify a
10029         char*.
10030
10031 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
10032
10033         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
10034         floating point instructions for epilogue delay.
10035
10036         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
10037         to gas if it supports .register pseudo.
10038
10039         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
10040         LONG_DOUBLE_TYPE_SIZE if not defined.
10041         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
10042         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
10043         * real.c: Likewise.
10044         * gengenrtl.c: Likewise.
10045         * print-rtl.c: Likewise.
10046         * rtl.c: Likewise.
10047         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
10048         MASK_LONG_DOUBLE_128.
10049         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
10050         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
10051         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
10052         (SUBTARGET_SWITCHES): Define.
10053         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
10054         with -mlong-double-128.
10055         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
10056         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
10057         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
10058         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
10059         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
10060         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
10061         with -mlong-double-128.
10062         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
10063         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
10064         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
10065         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
10066         TARGET_LONG_DOUBLE_128): Define.
10067         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10068         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
10069         long double on TARGET_ARCH64.
10070
10071 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
10072
10073         * function.c (free_temps_for_rtl_expr): Don't free slots
10074         that have been pushed into a higher level.
10075
10076         Revert this patch:
10077         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
10078
10079 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
10080
10081         * basic-block.h (ALLOCA_REG_SET): Remove.
10082         (INITIALIZE_REG_SET): New macro.
10083         * flow.c (update_life_info): Use it.
10084         (calculate_global_regs_live): Likewise.
10085         (propagate_block): Likewise.
10086         * global.c (build_insn_chain): Likewise.
10087         * haifa-sched.c (schedule_region): Likewise.
10088
10089 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
10090
10091         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
10092         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
10093         (DWARF_ARANGES_PAD_SIZE): New define.
10094         (output_aranges): Use it to pad the address range header.
10095         (DWARF_ROUND): Fix for non power of 2 rounding.
10096
10097 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
10098
10099         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
10100
10101 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
10102
10103         * tree.def (RTL_EXPR): Update documentation.
10104         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
10105         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
10106         * function.c (preserve_rtl_expr_temp): New function.
10107         (preserve_rtl_expr_temps): Likewise.
10108         (preserve_rtl_expr_result): Use it.
10109
10110         Revert this patch:
10111         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
10112
10113 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
10114
10115         * regmove.c (copy_src_to_dest)  Do not create src->dest move
10116         for unchanging destination.
10117
10118 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
10119
10120         * function.h (struct sequence_stack): Remove rtl_expr.
10121         (struct emit_staus): Likewise.
10122         (seq_rtl_expr): Remove.
10123         * tree.h (free_temps_for_rtl_expr): Don't declare.
10124         (start_sequence_for_rtl_expr): Likewise.
10125         * rtl.h (preserve_rtl_expr_result): Likewise.
10126         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
10127         (start_sequence_for_rtl_expr): Remove.
10128         (push_topmost_sequence): Don't save sequence_rtl_expr.
10129         (pop_topmost_sequence): Remove comment about not restoring it.
10130         (end_sequence): Don't set seq_rtl_expr.
10131         (init_emit): Don't initialize it.
10132         (mark_sequence_stack): Don't mark it.
10133         (mark_emit_status): Likewise.
10134         * except.c (protect_with_terminate): Use
10135         start_sequence_for_rtl_expr, not start_sequence.
10136         * expr.c (expand_expr, case RTL_EXPR): Don't call
10137         preserve_rtl_expr_result or free_temps_for_rtl_expr.
10138         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
10139         (preserve_rtl_expr_result): Remove.
10140         (free_temps_for_rtl_expr): Likewise.
10141         (pop_temp_slots): Likewise.
10142         (mark_temp_slot): Don't mark the rtl_expr.
10143         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
10144         start_sequence_for_rtl_expr.
10145
10146 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
10147
10148         * mkdeps.c, mkdeps.h: New files.
10149         * po/POTFILES.in: Add them.
10150         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
10151         (cpplib.o, cppinit.o): Depend on mkdeps.h.
10152         (mkdeps.o): New target.
10153
10154         * cppfiles.c: Delete deps_output.
10155         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
10156         OBJECT_SUFFIX, and base_name.
10157         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
10158         the include hash.
10159         (initialize_dependency_output): Use deps_init,
10160         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
10161         all the unnecessary string bashing.
10162         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
10163         level.
10164         * cpplib.c (do_include): Use deps_add_dep.
10165         * cpplib.h (struct cpp_reader): Replace deps_buffer,
10166         deps_allocated_size, deps_size, deps_column members with
10167         single pointer to a struct deps.  Delete prototype of
10168         deps_output.
10169
10170         * cppinit.c: Fix thinko in previous patch.
10171
10172 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10173
10174         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
10175         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
10176         (mode_for_size_tree): New function.
10177         (layout_decl, layout_type): Call it and clean up BLKmode checks.
10178         * tree.h (mode_for_size_tree): New declaration.
10179
10180         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
10181
10182 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
10183
10184         * stmt.c (is_body_block): Move...
10185         * dwarfout.c, dwarf2out.c: ...from here.
10186         * tree.h: Declare it.
10187         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
10188         * final.c (final_start_function): Do call remove_unnecessary_notes
10189         when scheduling.
10190
10191 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
10192
10193         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
10194
10195         * cpplib.h (_dollar_ok): New macro.
10196         (is_idchar, is_idstart): Use it.
10197         (IStable): Rename to _cpp_IStable.  Declare it const if
10198         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
10199         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
10200         is_space): Update for renamed IStable.
10201
10202         * cppinit.c: Delete all references to FAKE_CONST and CAT
10203         macros. Define init_IStable as empty macro if gcc >=2.7 or
10204         C99. Change TABLE() to ISTABLE and hardcode name of table.
10205         (cpp_start_read): Don't change the IStable based on
10206         dollars_in_ident.
10207
10208         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
10209         changed.  Handle '$' for char1 correctly.
10210         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
10211
10212         * cppexp.c (tokentab2): Make const.
10213         (cpp_lex): Make toktab const.
10214         * cppinit.c (include_defaults_array): Make const.
10215         (initialize_standard_includes): Make default_include const.
10216
10217 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
10218
10219         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
10220         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
10221         (gen_decl_die): Likewise.
10222         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
10223         (output_decl): Likewise.
10224
10225         * varasm.c (make_function_rtl): If we change the name used in the
10226         rtl, update DECL_ASSEMBLER_NAME accordingly.
10227         (make_decl_rtl): Likewise.
10228
10229         * toplev.c (rest_of_compilation): Tweak formatting.
10230
10231         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
10232         remove_unnecessary_notes.
10233         (debug_ignore_block): New fn.
10234         * toplev.h: Declare it.
10235         * emit-rtl.c (remove_unncessary_notes): Call it.
10236         * dwarf2out.c (dwarf2out_ignore_block): New fn.
10237         * dwarf2out.h: Declare it.
10238         * final.c (final_start_function): Don't call remove_unnecessary_notes
10239         if we did insn scheduling.
10240
10241 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
10242
10243         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
10244         * cpplib.h: Delete SET_CPP_PEDANTIC.
10245
10246 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10247
10248         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
10249         result is a RECORD_TYPE.
10250
10251 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
10252
10253         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
10254
10255 2000-03-03  Richard Henderson  <rth@cygnus.com>
10256
10257         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
10258         addition over compliments over shifts.
10259
10260 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10261
10262         * reload1.c (reload_combine_note_use): Handle return register USEs.
10263         REG case: Handle multi-hard-register hard regs.
10264
10265 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10266
10267         * md.texi: Document use of '*' in insn pattern name.
10268
10269 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
10270
10271         * calls.c (special_function_p): operator new may not be malloc-like.
10272
10273         * gcse.c (dump_hash_table): Really fix error in last change.
10274
10275 2000-03-02  Denis Chertykov  <denisc@overta.ru>
10276
10277         * avr.c (print_operand): Use print_operand_address instead of
10278         output_addr_const.
10279         * avr/libgcc.S: Cleanup code.
10280
10281 2000-03-02  Richard Henderson  <rth@cygnus.com>
10282
10283         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
10284
10285 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
10286
10287         * tree.h (TYPE_ALIGN_UNIT): New macro.
10288
10289 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
10290
10291         * i386.c: (constant_call_address_operand): Reject CONST_INT.
10292
10293 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
10294
10295         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
10296         for the buffer.
10297         (SET_CPP_PEDANTIC): New macro.
10298         * cpplib.c (do_include): Don't bother checking system_header_p.
10299         (do_warning, do_ident, do_assert, do_unassert): Likewise.
10300         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
10301
10302         * function.h (struct expr_status): Add x_arg_space_so_far.
10303         (arg_space_so_far): New macro.
10304         * expr.c (init_expr): Initialize it.
10305         * calls.c (emit_call_1): Reset it.
10306         (compute_argument_block_size, expand_call): Use it.
10307         (expand_call, store_one_arg): Increment it.
10308
10309 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10310
10311         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
10312         a UNION_TYPE.
10313
10314 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
10315
10316         * cppfiles.c (cpp_read_file): New function.
10317
10318         * cpphash.c (collect_expansion): Make sure to reset last_token
10319         to NORM when we hit a string.  Handle trailing whitespace
10320         properly when the expansion is empty.
10321         (create_definition): Disable line commands while parsing the
10322         directive line.
10323         (dump_definition): If pfile->lineno == 0, output a line
10324         command ahead of the dump, and add a trailing newline.
10325
10326         * cppinit.c (append_include_chain): Add fifth argument, which
10327         indicates whether or not system headers are C++ aware.
10328         (initialize_standard_includes): New function,
10329         broken out of read_and_prescan.  Pass 'cxx_aware' value from
10330         the include_defaults_array on to append_include_chain.
10331         (dump_special_to_buffer): Const-ify char array.
10332         (builtin_array): Don't dump __BASE_FILE__.
10333         (cpp_start_read): Use cpp_read_file.  Reorder code for
10334         clarity.  Don't output line commands here for -D/-A/-U
10335         switches.  Don't call deps_output for files included with
10336         -include or -imacros.
10337
10338         * cpplib.c (do_define): Don't pay any attention to the second
10339         argument.
10340         (cpp_expand_to_buffer): Disable line commands while scanning.
10341         (output_line_command): Work in the file buffer.
10342         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
10343         Fix formatting of comments.  Prototype cpp_read_file.
10344
10345 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10346
10347         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
10348         reference the language-equivalent of sizetype.
10349         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
10350         * fold-const.c (size_binop, size_diffop): Put back checks.
10351         * gcse.c (dump_hash_table): Fix minor error in last change.
10352         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
10353         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
10354         all sizetypes.
10355
10356 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
10357
10358         * calls.c (expand_call)  Do not attempt to combine stack adjustments
10359         with inhibit_defer_pop set.
10360
10361 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
10362
10363         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
10364         the DECL_SIZE for a FIELD_DECL.
10365
10366 2000-03-01  Bruce Korb  <bkorb@gnu.org>
10367
10368         * fixinc/inclhack.tpl: remove unused symlinks
10369         * fixinc/README: GCC Maintainer info
10370         * fixinc/inclhack.sh: regen
10371         * fixinc/fixincl.sh: regen
10372
10373 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
10374
10375         * cpphash.c (collect_expansion): Trim trailing white space
10376         from macro definitions, but don't go past the last insertion
10377         point.
10378
10379 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
10380
10381         * i386.md (mulqi3): New pattern.
10382
10383 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
10384
10385         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
10386         token types.
10387         (struct cpp_reader): Add parsing_if_directive and
10388         parsing_define_directive flags.
10389         (struct cpp_options): Remove output_conditionals flag.
10390         (check_macro_name): Delete prototype.
10391
10392         * cpphash.h (struct macrodef): Delete.
10393         (struct reflist): Separate from struct definition.
10394         (struct definition): Remove unused fields.  Add column number.
10395         (create_definition): Returns a DEFINITION *.  Takes a
10396         cpp_reader * and an int.
10397
10398         * cpphash.c (SKIP_WHITE_SPACE): Delete.
10399         (PEEKC): Copy defn from cpplib.c.
10400         (rest_extension, REST_EXTENSION_LENGTH): Delete.
10401         (struct arg): New.
10402         (struct arglist): Simplify.
10403         (collect_expansion): Rewrite.  Get tokens by calling
10404         cpp_get_token.  Add more error checking.
10405         (collect_formal_parameters): New function, broken out of
10406         create_definition and reworked to use get_directive_token.
10407         (create_definition): All real work is now in collect_expansion
10408         and collect_formal_parameters.  do_define handles finding the
10409         macro name.  Return a DEFINITION, not a MACRODEF.
10410         (macroexpand): Replace bcopy with memcpy throughout.  Replace
10411         character-at-a-time copy loop with memcpy and pointer increments.
10412         (compare-defs): d1->argnames / d2->argnames might be null.
10413
10414         * cpplib.c (copy_rest_of_line): Delete function.
10415         (skip_rest_of_line): Do all the work ourselves.
10416         (skip_string): New function.
10417         (parse_string): Use skip_string.
10418         (get_macro_name): New function.
10419         (check_macro_name): Delete.
10420         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
10421         (cpp_skip_hspace): Use CPP_BUMP_LINE.
10422         (handle_directive): ICE if we're called on a macro buffer.
10423         (do_define): Determine macro name and type (funlike/objlike)
10424         here.  Expunge all uses of MACRODEF.
10425         (cpp_push_buffer): Set line_base to NULL.
10426         (do_undef, read_line_number): Don't worry about getting a POP token.
10427         (eval_if_expression): Set/reset parsing_if_directive around
10428         cpp_parse_expr. Don't clear only_seen_white.
10429         (skip_if_group): Remove output_conditionals logic.  Use
10430         skip_rest_of_line.
10431         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
10432         tokens under appropriate conditions.
10433         (cpp_unassert): Call do_unassert not do_assert.  Oops.
10434
10435         * cppexp.c (parse_defined): New function, break out of
10436         cpp_lex.
10437         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
10438         ourselves, with cpp_defined.
10439         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
10440
10441         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
10442         * gcc.dg/strpaste-2.c: New.
10443
10444 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
10445
10446         * fold-const.c (size_binop): Don't asert inputs are the same and
10447         have TYPE_IS_SIZETYPE set.
10448         (size_diffop): Likewise.
10449
10450 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
10451
10452         * dwarfout.c (output_block): Output abstract blocks even if they
10453         don't have TREE_ASM_WRITTEN set.
10454
10455         * calls.c (emit_library_call): Check for null REG.
10456
10457 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
10458
10459         * c-decl.c (current_function_decl): Move to toplev.c.
10460         (init_decl_processing): Don't add current_function_decl as a ggc
10461         root here.
10462         * dbxout.c (dbxout_symbol): Change return type to int.
10463         (dbxout_symbol_location, dbxout_syms): Likewise.
10464         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
10465         any locals. Use current_function_func_begin_label if set.
10466         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
10467         * dwarf2out.c (dwarf2out_begin_prologue): Set
10468         current_function_func_begin_label.
10469         * final.c (final_start_function): Reset it.
10470         * toplev.c (current_function_decl): Define it here.
10471         (current_function_func_begin_label): New variable.
10472         (main): Add both as ggc roots.
10473         * tree.h (current_function_func_begin_label): Declare.
10474
10475 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10476
10477         * gcse.c: Cleanups throughout: mostly white-space, but also
10478         some minor rearrangement of code.
10479
10480 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
10481
10482         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
10483         returns a PARALLEL.  Use emit_group_load and use_group_regs
10484         as needed.
10485         (emit_library_call_value): Similarly.
10486
10487         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
10488         * pa/quadlib.asm: Remove.
10489         * pa/quadlib.c: New file.
10490
10491         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
10492         * configure: Rebuilt.
10493
10494 2000-02-29  Philip Blundell  <pb@futuretv.com>
10495
10496         * config/arm/conix-elf.h: New file.
10497         * configure.in (arm*-*-conix*): New configuration.
10498         * configure: Regenerate.
10499
10500 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
10501
10502         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
10503         don't have TREE_ASM_WRITTEN set.
10504
10505 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10506
10507         * Eliminate DECL_FIELD_SIZE.
10508         * builtins.c (built_in_class_names, built_in_names): New variables.
10509         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
10510         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
10511         DECL_SIZE, not DECL_FIELD_SIZE.
10512         * print-tree.c (print_node): Remove code that prints extra blank
10513         lines in some cases.
10514         Properly handle inline and builtin function cases.
10515         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
10516         * tree.h (built_in_class_named, built_in_names): New declarations.
10517         (union tree_decl): Rename internal unions to u1 and u2 and change
10518         some of their components.
10519         Add new field built_in_class.
10520         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
10521         Reflect above changes.
10522         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
10523         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
10524         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
10525         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
10526
10527 2000-02-28  Dmitri Makarov  <dim@windriver.com>
10528
10529         * extend.texi: Document ARM's support for long/short calls.
10530
10531         * invoke.texi: Document ARM's -mlong-calls command line switch.
10532
10533         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
10534         (arm_encode_call_attribute): Add prototype.
10535         (arm_set_default_type_attribute): Add prototype.
10536         (arm_strip_name_encoding): Add prototype.
10537
10538         * config/arm/arm.c (arm_init_cumulative_args): replace
10539         initialisation og 'long_calls' field with initialisation of
10540         'call_cookie' field.
10541         (enum arm_pragma_enum): New enum.
10542         (arm_pragma_long_calls): New static variable.
10543         (arm_process_pragma): Also process "#pragma long_calls_off".
10544         (arm_valid_type_attribute_p): Accept short_call attribute.
10545         (arm_comp_type_attributes): Check long/short call attributes.
10546         (arm_encode_call_attribute):  New function:  Encode long_call
10547         or short_call attribute in function name.
10548         (arm_set_default_type_attributes): New function: Assign
10549         default attributes to newly defined type.
10550         (current_file_function_operand): New function: Return true if
10551         the symbol is a function which has already been compiled.
10552         (arm_is_longcall_p): New function: Return true if the
10553         indicated function should be called via a long call.
10554         (arm_get_strip_length): New function.  Returns number of
10555         prefix characters to be stripped from a function's name.
10556         (arm_strip_name_encoding): New function.  Strip prefix characters
10557         from a function's name.
10558
10559         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
10560         with 'call_cookie'.
10561         (SHORT_CALL_FAG_CHAR): Define.
10562         (LONG_CALL_FAG_CHAR): Define.
10563         (ENCODED_SHORT_CALL_ATTR_P): Define.
10564         (ENCODED_LONG_CALL_ATTR_P): Define.
10565         (ARM_NAME_ENCODING_LENGTHS): Define.
10566         (STRIP_NAME_ENCODING): Define.
10567         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
10568         (ARM_ENCODE_CALL_TYPE): Define.
10569         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
10570         (ARM_DECLARE_FUNCTION_SIZE): Define.
10571         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
10572
10573         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
10574         if a long call is needed.
10575         (call_value): Ditto.
10576         (call_symbol): Ditto.
10577
10578         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
10579         ARM_DECLARE_FUNCTION_SIZE.
10580
10581         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
10582         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
10583         (ARM_STRIP_NAME_ENCODING): Undefine.
10584         (STRIP_NAME_ENCODING): Undefine.
10585         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
10586         (ASM_DECLARE_FUNCTION_NAME): Ditto.
10587         (ASM_OUTPUT_COMMON): Ditto.
10588         (ASM_DECLARE_OBJECT_NAME): Ditto.
10589
10590         * config/arm/pe.c (arm_dllexport_name_p): Check for
10591         ARM_PE_FLAG_CHAR.
10592         (arm_dllimport_name_p): Ditto.
10593         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
10594         (arm_mark_dllimport): Ditto.
10595
10596 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10597
10598         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
10599
10600 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
10601
10602         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
10603
10604 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
10605
10606         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
10607         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
10608         NO_BUILTIN_WCHAR_TYPE is not defined.
10609         (CPP_WCHAR_TYPE): Delete.
10610         * cccp.c (main): Don't change wchar_type if cplusplus.
10611         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
10612
10613 2000-02-28  Nick Clifton  <nickc@cygnus.com>
10614
10615         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
10616
10617 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
10618
10619         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
10620         (ASM_WEAKEN_LABEL): Define.
10621
10622 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
10623
10624         * expr.c (store_constructor): Do not emit USE.
10625         * rtl.h (stupid_life_analysis): Remove.
10626
10627 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10628
10629         * function.c (number_blocks): Reset next_block_index based on
10630         what debugging format is used, not what is defined.
10631
10632         * lcm.c: Minor reformatting throughout.
10633         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
10634
10635         * toplev.c (rest_of_compilation): Account for time in
10636         optimize_mode_switching.
10637
10638         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
10639         if only marking labels.
10640
10641 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
10642
10643         * calls.c (expand_call): Attempt to combine stack adjustments with
10644         pending stack adjustments.
10645
10646 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10647
10648         * loop.c (reg_in_basic_block_p): Don't abort when falling through
10649         to the end of the function.
10650
10651 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
10652
10653         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
10654         blocks.
10655         * final.c (next_block_index): Remove.
10656         (max_block_depth): Likewise.
10657         (pending_blocks): Likewise.
10658         (init_final): Don't initialize them.
10659         (final_start_function): Don't set next_block_index.  Set up
10660         BLOCK_NUMBER.
10661         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
10662         * function.h (number_blocks): New function.
10663         * function.c (get_block_vector): New function.
10664         (identify_blocks): Use it.
10665         (reorder_blocks): Set NOTE_BLOCK.
10666         (number_blocks): New function.
10667         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
10668         * tree.h (BLOCK_NUMBER): New macro.
10669         (tree_block): Add block_num field.
10670         * dbxout.c (next_block_number): Remove.
10671         (dbxout_init): Don't set it.
10672         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
10673         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
10674         block numbers.
10675         * toplev.c (rest_of_compilation): Always call
10676         find_loop_tree_blocks.  Fix indentation.
10677         * dwarf2out.c (next_block_number): Remove.
10678         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10679         to determine block numbers.
10680         (gen_inlined_subroutine_die): Likewise.
10681         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
10682         (decls_for_scope): Don't increment next_block_number.
10683         * dwarfout.c (next_block_number): Remove.
10684         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10685         to determine block numbers.
10686         (output_inlined_subroutine_die): Likewise.
10687         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
10688         (output_decls_for_scope): Don't increment next_block_number.
10689         * sdbout.c (next_block_number): Remove.
10690         (sdbout_block): Use BLOCK_NUMBER.
10691         (sdbout_begin_block): Simplify.
10692         * xcoffout.c (next_block_number): Remove.
10693         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
10694         (xcoffout_begin_block): Don't set next_block_number.
10695         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
10696         next_block_number.
10697
10698 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10699
10700         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
10701         (expand_builtin_strcpy): Pass correct type to size_binop.
10702         (expand_builtin_strcmp): Likewise.
10703         Clean up conditional structure.
10704         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
10705         (complete_array_type): Don't use size_binop for MAXINDEX.
10706         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
10707         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
10708         (c_alignof): Use size_one_node.
10709         (build_unary_op): Pass arg of proper type to size_binop.
10710         (really_start_incremental_init, push_init_level): Use sizetype for
10711         constructor{,_bit,_unfilled}_index.
10712         (pop_init_label, output_init_element): Likewise.
10713         (output_pending_init_elements, process_init_element): Likewise.
10714         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
10715         * expr.c (store_expr): Use size_int.
10716         (store_constructor): Use proper types for size_binop args.
10717         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
10718         (expand_expr_unaligned): Likewise.
10719         (string_contant): Return object of sizetype.
10720         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
10721         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
10722         (ARGS_SIZE_TREE): Pass proper types to size_binop.
10723         * fold-const.c (int_const_binop): Refine when size_int is called.
10724         (fold_convert): Likewise.
10725         (size_int_wide): Rework to take KIND as arg, only take low order
10726         bits, handle new sizetype_tab datatype, and chain entries in
10727         size_table.
10728         (size_int_type_wide): New function.
10729         (size_binop): Validate types of arguments.
10730         (ssize_binop): Deleted.
10731         (size_diffop): New function.
10732         (extract_muldiv): Only fold division into multiplication for sizetypes.
10733         * function.c (assign_parms): Use size_diffop and make sure
10734         VAR field is of ssizetype; also pass proper type to size_binop.
10735         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
10736         (round_down): Deleted from here.
10737         * store-layout.c (sizetype_tab): Now an array.
10738         (sizetype_set, early_root_list): New variables.
10739         (variable_size): Use size_one_node.
10740         (round_up): Pass proper type to size_binop.
10741         (round_down): Moved to here and corrected as above.
10742         (layout_record): Pass proper arg types to size_binop.
10743         (layout_type): Likewise.
10744         If sizetype_set is zero, record the type just laid out.
10745         (make_unsigned_type): Don't call set_sizetype;
10746         (make_signed_type): Likewise; also, call fixup_signed_type.
10747         (initialize_sizetypes): New function.
10748         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
10749         set name of bitsizetype to "bit_size_type".
10750         Fix up type of sizes of all types made before call.
10751         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
10752         * tree.c (fix_sizetype): Deleted.
10753         (build_common_tree_nodes): Call initialize_sizetypes.
10754         (build_common_tree_nodes_2): Don't call fix_sizetype.
10755         * tree.h (TYPE_IS_SIZETYPE): New macro.
10756         (initialize_sizetype): New declaration.
10757         (enum size_type_kind): New type.
10758         (struct sizetype_tab): Deleted.
10759         (sizetype_tab): Now array; adjust sizetype macros.
10760         (size_diffop, size_int_type_wide): New functions.
10761         (size_int_wide): Change number of args and type; access macros changed.
10762         (ssize_int, sbitsize_int): New macros.
10763         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
10764         (ROUND_TYPE_SIZE_UNIT): New macro.
10765
10766 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
10767
10768         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
10769
10770 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10771
10772         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
10773         Mark as possibly unused.
10774
10775         * cse.c (cse_insn): Delete dead code involving tablejump.
10776         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
10777
10778         * Makefile.in (libcpp.a): Start by deleting it.
10779
10780 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10781
10782         * cpplib.h (enum file_change_code): Added rename_file.
10783         * cpplib.c (do_line): If a filename is given, set file_change to
10784         rename_file.
10785         (output_line_command): If file_change is rename_file, always
10786         output a # directive with the file name.
10787
10788         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
10789
10790 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
10791
10792         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
10793         when copying a PARM_DECL or RESULT_DECL.
10794
10795 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10796
10797         * fix-header.c (recognized_function): Also fix prototypes for
10798         functions taking "void".
10799
10800 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10801
10802         * reload1.c (do_output_reload): Check reg_reloaded_valid before
10803         looking at reg_reloaded_contents.
10804
10805 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
10806
10807         * Makefile.in (STMP_FIXINC): New toggle.
10808         (LIBGCC2_DEPS): Delete all references.
10809         (stmp-headers): Delete target.  All references either deleted
10810         or changed to stmp-int-headers.
10811         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
10812         (LIBCPP_OBJS): Take out cppalloc.o.
10813         (cppalloc.o): Delete target.
10814         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
10815         (gen-protos, fix-header): Link with libiberty.a.
10816         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
10817         to empty.
10818
10819         * configure.in: Remove refs to strerror.
10820         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
10821         * system.h: Take out strerror stanza.
10822
10823         * cpperror.c (my_strerror): Delete function.
10824         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
10825         * cppmain.c (main): Call xmalloc_set_program_name first thing.
10826         * cppalloc.c: Delete file.
10827         * gen-protos.c: Don't provide xrealloc.
10828
10829         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
10830         xstrerror throughout.
10831
10832 2000-02-26  Bruce Korb  <bkorb@gnu.org>
10833
10834         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
10835         match for DOS headers, too.
10836         * fixinc/inclhack.sh,fixincl.x: Regenerate.
10837
10838 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10839
10840         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
10841         is right for most ELF targets.
10842         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
10843         Let the default file use %U properly.
10844         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
10845         default.
10846
10847         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
10848         numbers.
10849
10850 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10851
10852         * toplev.c (documented_lang_options): Correct spelling error.
10853         (decode_d_option, decode_f_option, main): Likewise.
10854
10855         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
10856
10857         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
10858         to tell assembler it is permitted to expand large constants.
10859
10860 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
10861
10862         * protoize.c: (AUX_INFO_SUFFIX): New macro.
10863         (aux_info_suffix): Use.
10864         (SAVE_SUFFIX): New macro.
10865         (save_suffix): Use.
10866         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
10867         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
10868         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
10869
10870         * invoke.texi (Running Protoize): Update documentation.
10871
10872 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
10873
10874         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
10875
10876 2000-02-25  John Wehle  (john@feith.com)
10877
10878         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
10879
10880 2000-02-25  Anthony Green  <green@cygnus.com>
10881
10882         * toplev.c (rest_of_compilation): Rebuild jump labels if
10883         combine_instructions has created a new direct jump.
10884         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
10885         when appropriate.
10886         (combine_instructions): Call try_combine with new argument.
10887         Return non-null value when new direct jump instruction is created.
10888         * rtl.h: combine_instructions returns an int.
10889
10890 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
10891
10892         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
10893         jump when changing a computed jump into a jump to a known
10894         target.
10895
10896 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
10897
10898         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
10899         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
10900
10901         * i386.md (define_expand "clrstrsi"): Fix typo.
10902
10903 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
10904
10905         * rtl.texi: Fix typo.
10906
10907 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10908
10909         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
10910         UNITS_PER_WORD.  Change caller initial_elimination_offset.
10911         (rounded_frame_size): Take into account that argument pushed has
10912         changed.  Fix TARGET_ALIGN_DOUBLE problem.
10913
10914 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
10915
10916         * haifa-sched.c (schedule_block): Explain the real reason
10917         we delete REG_SAVE_NOTEs on the first insn of a block.
10918         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
10919
10920 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
10921
10922         * input.h (push_srcloc): New function.
10923         (pop_srcloc): Likewise.
10924         * toplev.c (push_srcloc): Define it.
10925         (pop_srcloc): Likewise.
10926
10927 2000-02-24  Richard Henderson  <rth@cygnus.com>
10928
10929         * flow.c (life_analysis): When collecting reg info, clear
10930         regs_ever_live.
10931
10932 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10933
10934         Fix bug exposed by reload.c no longer rounding the frame
10935         size to BIGGEST_ALIGNMENT:
10936         * sh.c (rounded_frame_size): New function.
10937         (sh_expand_prologue, sh_expand_epilogue): Use it.
10938         (initial_elimination_offset): Likewise.
10939
10940 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10941
10942         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
10943         * sh-protos.h (sh_need_epilogue): Declare.
10944         * sh.c (sh_need_epilogue_known): New static variable.
10945         (sh_need_epilogue): New function.
10946         (function_epilogue): Clear need_epilogue_known.
10947         * sh.md (return): Split into expander / insn pattern.
10948         Make the expander conditional on ! sh_need_epilogue ().
10949
10950 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
10951
10952         * machmode.h (get_mode_alignment): Declare.
10953         (GET_MODE_ALIGNMENT): Call it.
10954         * stor-layout.c (get_mode_alignment): New function. Make
10955         sure alignment is always power of 2.
10956
10957 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10958
10959         * i386.h: Remove useless definition of "I386" and misleading
10960         comment above it.
10961
10962 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10963
10964         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
10965         under which TREE_PERMANENT will be set.
10966         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
10967         build1): Use TREE_SET_PERMANENT.
10968         * print-tree.c (print_node): Don't report value of
10969         TREE_PERMANENT if ggc_p is true.
10970
10971         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
10972         decide whether to give a type a new alias set.
10973         * objc/objc-act.c (build_objc_string_object): Never copy the string.
10974         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
10975         of value of 'obstack'.
10976
10977
10978 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10979
10980         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
10981
10982 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10983
10984         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
10985         * cpplib.c (cpp_get_token): Produce them.
10986         * cppexp.c (cpp_lex): Handle them.
10987
10988 2000-02-23  Nick Clifton  <nickc@cygnus.com>
10989
10990         * config/arm/arm.c (arm_comp_type_attributes): Simply and
10991         comment tests on type attributes.
10992
10993 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10994
10995         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
10996         conform to documentation.
10997         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
10998         to check for special cases.
10999         * sh-protos.h (sh_loop_align): Declare.
11000         * sh.c (sh_loop_align): Define.
11001
11002 2000-02-22  Andrew Haley  <aph@cygnus.com>
11003
11004         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
11005         (SIZE_TYPE): Is 32 bits when using -mgp32.
11006         (PTRDIFF_TYPE): Ditto.
11007
11008 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11009
11010         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
11011
11012 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
11013
11014         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
11015         BIGGEST_FIELD_ALIGNMENT a constant.
11016
11017 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
11018
11019         * dwarf2out.c (output_line_info): Put the marker for the end of
11020         the line number info at the actual end.
11021         (gen_struct_or_union_type_die): Use decl_function_context
11022         to check for local classes.
11023         * dwarfout.c (output_type): Likewise.
11024
11025 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
11026
11027         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
11028         for arguments with a mode, but no type.
11029         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
11030         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
11031         * pa/long_double.h: New file.
11032         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
11033         both have 128bit wide long doubles.
11034         * configure: Rebuilt.
11035
11036 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11037
11038         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
11039
11040         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
11041         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
11042         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
11043
11044         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
11045
11046         * integrate.c (compare_blocks, find_block): Likewise.
11047
11048         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
11049
11050         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
11051
11052         * stmt.c (stmt_status, set_file_and_line_for_stmt,
11053         expand_asm_operands): Likewise.
11054
11055 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
11056
11057         * predict.c (estimate_probability): Added the pointer heuristic to
11058         the collection of static branch predictors.
11059
11060 2000-02-21  Catherine Moore  <clm@cygnus.com>
11061
11062         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
11063         * invoke.texi (-mfix7000): Document.
11064
11065 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
11066
11067         * diagnostic.c (init_output_buffer): Make it possible to output at
11068         least 32 characters if we're given a too long prefix.
11069
11070 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
11071
11072         * varasm.c (initializer_constant_valid_p): Call
11073         lang_expand_constant to simplify the constant.
11074
11075 2000-02-20  Bruce Korb  <bkorb@gnu.org>
11076
11077         * fixinc/inclhack.def(stdio_va_list):
11078         typedef needs to be disabled.
11079         * fixinc/inclhack.sh: regen
11080         * fixinc/fixincl.x: regen
11081
11082 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
11083
11084         * print-rtl.c (print_rtx): Don't print addresses when
11085         flag_dump_unnumbered.
11086
11087 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11088
11089         * sparc.c (sparc_output_scratch_registers): Mark parameter with
11090         ATTRIBUTE_UNUSED.
11091         (sparc_va_arg, sparc_flat_output_function_prologue,
11092         sparc_flat_output_function_epilogue): Cast value to unsigned in
11093         comparison.
11094         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
11095
11096         * sparc.md: Add default case in switch.
11097
11098 2000-02-19  Richard Henderson  <rth@cygnus.com>
11099
11100         * c-typeck.c (add_pending_init): Don't abort for multiple
11101         fields at the same offset.
11102         (pending_init_member): Test the correct member.
11103
11104 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11105
11106         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
11107         instead of SImode.
11108         (start_catch_handler) : Same.
11109
11110 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
11111
11112         * Makefile.in: Have flow.o depend on $(EXPR_H)
11113
11114 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11115
11116         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
11117         * c-decl.c (duplicate_decls, finish_enum): Likewise.
11118         (finish_decl): Remove -Wlarger-than code from here.
11119         * flags.h (id_clash_len): Now int.
11120         (larger_than_size): Now HOST_WIDE_INT.
11121         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
11122         Clean up checking to see if in table.
11123         (make_bit_field_ref): Remove extra parm to bitsize_int.
11124         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
11125         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
11126         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
11127         and for computing size of decl.
11128         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
11129         Move -Wlarger-than code to here.
11130         (layout_record): Remove extra arg to bitsize_int.
11131         Set TYPE_BINFO_SIZE_UNIT.
11132         (layout_union): Remove extra arg to bitsize_int.
11133         Use proper type for size of QUAL_UNION.
11134         (layout_type): Remove extra arg to bitsize_int.
11135         * toplev.c (id_clash_len): Now int.
11136         (larger_than_size): Now HOST_WIDE_INT.
11137         (decode_W_option): Clean up id-clash and larger-than- cases.
11138         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
11139         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
11140         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
11141         (struct tree_decl): New field size_unit.
11142         (size_int_wide): No HIGH operand; NUMBER is now signed.
11143         (size_int_2): Deleted.
11144         (size_int, bitsize_int): Don't use it and rework args.
11145         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
11146
11147 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
11148
11149         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
11150
11151 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11152
11153         * invoke.texi (Warning Options): Add an explanation of why
11154         you might want the -Wfloat-equal flag.
11155
11156 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11157
11158         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
11159         * cppinit.c (new_pending_define): Add cast to avoid warning.
11160         * expmed.c (extract_bit_field): Likewise.
11161         * flow.c (enum reorder_skip_type): New type.
11162         (skip_insns_between_blcok): New it.
11163         Rework to avoid warning about possibly undefined variable.
11164         * function.c (assign_parms): Make thisparm_boundary unsigned.
11165         * genrecog.c (write_switch): Cast XWINT result to int.
11166         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
11167         * mips-tfile.c (init_file): Make two versions of FDR intializer:
11168         one for MIPS and one for Alpha.
11169         (get_tag, copy_object): Add casts to avoid warnings.
11170         * optabs.c (init_one_libfunc): Cast NAME to (char *).
11171         * reload.c (find_reloads): Make TYPE enum reload_type.
11172         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
11173         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
11174         * varasm.c (compare_constant_1): Add cast to avoid warning.
11175         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
11176         to (char *).
11177         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
11178         Cast switch operand of size to int.
11179         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
11180         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
11181         in unhandled case.
11182
11183 2000-02-18  Nick Clifton  <nickc@cygnus.com>
11184
11185         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
11186         anything for an alignment of zero.
11187
11188         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
11189         anything for an alignment of zero.
11190
11191 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
11192
11193         * gcc.texi (Bug Reporting): Refer to bugs.html.
11194         (Bug Lists): Likewise.
11195         * system.h (GCCBUGURL): New preprocessor define.
11196         * rtl.c (fancy_abort): Use it.
11197         * gcc.c (main): Likewise.
11198
11199 2000-02-18  Richard Henderson  <rth@cygnus.com>
11200
11201         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
11202         (life_analysis_1): Subsume into ...
11203         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
11204         Use update_life_info for the relaxation.
11205         (update_life_info): Update REG_BASIC_BLOCK for registers live on
11206         entry and regs_live_at_setjmp.
11207         (set_noop_p): Simplify.
11208         (notice_stack_pointer_modification_1): Renamed from s/_1//.
11209         (record_volatile_insns): Split into ...
11210         (delete_noop_moves): ... here,
11211         (notice_stack_pointer_modification): ... here,
11212         (insn_dead_p): ... and here.
11213         (propagate_block): Don't query INSN_VOLATILE.
11214         (mark_used_regs): Mind !PROP_REG_INFO.
11215         * toplev.c (rest_of_compilation): Call mark_constant_function here,
11216         not in life_analysis.
11217
11218 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
11219
11220         * loop.c (canonicalize_condition): New function,
11221         broken out of get_condition.
11222         (get_condition): Use it.
11223         * expr.h (canonicalize_condition): Prototype it.
11224
11225         * tree.h (tree_int_cst_msb): Declare.
11226         * tree.c (tree_int_cst_msb): New function.
11227
11228 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
11229
11230         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
11231         isn't set.
11232
11233         * invoke.texi (-fmessage-length=n): Document.
11234
11235 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
11236
11237         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
11238
11239 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
11240
11241         * function.c (thread_prologue_and_epilogue_insns): Put a line note
11242         after the prologue.
11243
11244 2000-02-17  Nick Clifton  <nickc@cygnus.com>
11245
11246         * config/arm/thumb.c: Replace includes of system headers with
11247         #include "system.h".
11248
11249 2000-02-16  Richard Henderson  <rth@cygnus.com>
11250
11251         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
11252         Add crtbeginS.o and crtendS.o.
11253         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
11254         (ENDFILE_SPEC): Use crtendS.o.
11255         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
11256
11257         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
11258         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
11259         shared and present.
11260         (__dso_handle): New variable.
11261         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
11262         bias to __CTOR_END__.
11263
11264 2000-02-16  Richard Henderson  <rth@cygnus.com>
11265
11266         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
11267
11268 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11269
11270         * longlong.h (__clz_tab): Declare as static to match definition.
11271
11272 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
11273
11274         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
11275         (XREF_FILE_NAME): Define.
11276
11277         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
11278         (EH_FRAME_SECTION_ASM_OP): Define.
11279         (IDENT_ASM_OP): Define.
11280         (TEXT_SECTION_ASM_OP): Define.
11281         (CPP_SPEC): Define.
11282         (CTORS_SECTION_ASM_OP): Define.
11283         (CTOR_SECTION_FUNCTION): Use it.
11284         (DTORS_SECTION_ASM_OP): Define.
11285         (DTOR_SECTION_FUNCTION): Use it.
11286
11287 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
11288
11289         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
11290         NOTE_BASIC_BLOCK.
11291
11292         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
11293         debug_bb_n): New functions.
11294         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
11295         * basic-block.h: Prototype new functions.
11296
11297 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
11298
11299         * configure.in: Add support for avr target.
11300         * configure: Rebuilt.
11301
11302         * invoke.texi: Add AVR invocation docs.
11303         * install.texi: Add information about AVR.
11304         * md.texi: Add AVR constraint letters description.
11305         * extend.texi: Add description for AVR specific attributes.
11306
11307 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
11308
11309         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
11310
11311 2000-02-16  Nick Clifton  <nickc@cygnus.com>
11312
11313         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
11314         (make_insn_raw): Move RTL check here.
11315
11316 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11317
11318         * version.c: Include gansidecl.h and version.h.
11319
11320         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
11321
11322         * configure.in (gcc_version): When setting, narrow search to
11323         lines containing `version_string'.
11324
11325         * Makefile.in (mainversion): Likewise.
11326         (GCC_H): New variable.
11327         (gcc.h): Delete target.
11328         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
11329         (version.o): Depend on version.h.
11330         (dbxout.o): Don't depend on gcc.h.
11331
11332 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11333                           Michael Meissner  <meissner@cygnus.com>
11334
11335         * md.texi (Simple Constraints): Add item about whitespace.
11336         * genoutput.c (strip_whitespace): New.
11337         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
11338         strip_whitespace for constraints.
11339         Test pointer using NULL, not 0.
11340
11341 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11342
11343         * cpplib.c (do_line): Pedwarn for #line > 32767.
11344
11345         * c-lex.c (readescape): Warn about '\x', but do not reject it.
11346
11347 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
11348
11349         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
11350         to default cpp spec.
11351         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
11352         * cpp.texi: Document __GNUC_PATCHLEVEL__.
11353         * cpp.1: Likewise.
11354
11355         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
11356         default spec.
11357
11358 2000-02-15  Denis Chertykov  <denisc@overta.ru>
11359
11360         * configure.in: Add support for avr target.
11361
11362 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11363
11364         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
11365         (sh_addr_diff_vec_mode): Don't declare.
11366         * sh.c (sh_addr_diff_vec_mode): Delete.
11367
11368 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11369
11370         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
11371
11372 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11373
11374         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
11375         (smulsi3_highpart_i): Name.
11376         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
11377         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
11378         (smulsi3_highpart, umulsi3_highpart): Likewise.
11379
11380         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
11381         correctly independent of endianness.
11382         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
11383         confuse the optimizers.
11384         (mulsidi3+1, umulsidi3+1): New define_split.
11385
11386 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
11387
11388         * config/sh/sh.md: Guard insn splits against illegal registers.
11389         * config/sh/sh.h: Correct comment about macros.
11390
11391 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11392                           Andrew MacLeod  <amacleod@cygnus.com>
11393
11394         * Makefile.in (lcm.o): Depend on insn-attr.h.
11395         * basic-block.h (optimize_mode_switching): Declare.
11396         * lcm.c (tm_p.h, insn-attr.h): #include.
11397         (seginfo, bb_info): New structs.
11398         (antic, transp, comp, delete, insert) : New file-scope static variables.
11399         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
11400         (reg_becomes_live, optimize_mode_switching): Likewise.
11401         * tm.texi: Add description of mode switching macros.
11402         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
11403
11404         * sh-protos.h (remove_dead_before_cse): Remove prototype.
11405         (fldi_ok, fpscr_set_from_mem): New prototypes.
11406         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
11407         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
11408         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
11409         (sh_flag_remove_dead_before_cse): Remove declaration.
11410         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
11411         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
11412         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
11413         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
11414         (barrier_align): Allow for JUMP_INSNS containing a parallel.
11415         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
11416         (fldi_ok): New function.
11417         (get_fpscr_rtx): Add fpscr_rtx as GC root.
11418         (emit_sf_insn): Only generate fpu switches when optimize < 1.
11419         (emit_df_insn): Likewise.
11420         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
11421         (sh_flag_remove_dead_before_cse): Delete.
11422         (get_free_reg, fpscr_set_from_mem): New functions.
11423         * sh.md (movdf, movsf): Remove no_new_pseudos code.
11424         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
11425
11426 2000-02-15  Loren Rittle  <ljrittle@acm.org>
11427
11428         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
11429
11430 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11431
11432         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
11433         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
11434
11435         * cccp.c: Include version.h and/or don't declare `version_string'.
11436         * collect2.c: Likewise.
11437         * alpha.c: Likewise.
11438         * arm/aof.h: Likewise.
11439         * arm/coff.h: Likewise.
11440         * arm/elf.h: Likewise.
11441         * arm/pe.h: Likewise.
11442         * arm/tcoff.h: Likewise.
11443         * arm/telf.h: Likewise.
11444         * arm/tpe.h: Likewise.
11445         * arm/vxarm.h: Likewise.
11446         * convex/convex.c: Likewise.
11447         * i386/dgux.c: Likewise.
11448         * i386/sun386.h: Likewise.
11449         * m88k/m88k.c: Likewise.
11450         * mcore/mcore-pe.h: Likewise.
11451         * mips/mips.h: Likewise.
11452         * romp/romp.h: Likewise.
11453         * sh/sh.c: Likewise.
11454         * cpphash.c: Likewise.
11455         * cppinit.c: Likewise.
11456         * dwarf2out.c: Likewise.
11457         * dwarfout.c: Likewise.
11458         * gcc.c: Likewise.
11459         * gcc.h: Likewise.
11460         * mips-tfile.c: Likewise.
11461         * protoize.c: Likewise.
11462         * toplev.c: Likewise.
11463         * tree.h: Likewise.
11464
11465         * version.c (version_string): Constify a char*.
11466
11467         * version.h: New file.
11468
11469 2000-02-14  Nick Clifton  <nickc@cygnus.com>
11470
11471         * configure.in: Add mcore-elf and mcore-pe targets.
11472         * configure: Regenerate.
11473
11474         * NEWS: Add note that MCore port has been contributed.
11475
11476         * invoke.texi: Document command line switches for MCore port.
11477         * install.texi: Add MCore to list of supported targets.
11478
11479 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
11480
11481         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
11482         then we will need to import the frame handling functions.
11483         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
11484         to import the frames themselves.
11485
11486 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
11487                           Jason Eckhardt  <jle@cygnus.com>
11488
11489         * basic_block.h: Added prototype for reorder_basic_blocks.
11490         * toplev.c: Changes to add -freorder-blocks and graph dump after
11491         block reordering is done.
11492         * flow.c (reorder_block_def): New structure for use during block
11493         reordering.
11494         (REORDER_BLOCK_*): New macros to access members of above structure.
11495         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
11496         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
11497         functions for block reordering.
11498
11499 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11500
11501         * gcc.texi (Passes): Fix typo.
11502         * md.texi (Standard Names): Ditto.
11503         * tm.texi (Storage Layout): Ditto.
11504
11505 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
11506
11507         * cpplib.c (do_define): Only free the old definition if it
11508         actually had one.
11509
11510 2000-02-13   Neil Booth  <NeilB@earthling.net>
11511
11512         * cppfiles.c (read_and_prescan): When emitting deferred
11513         newlines, test speccase[] again instead of checking each
11514         possible whitespace character in turn.  When we encounter \r,
11515         look behind for \n first, then ahead.
11516
11517 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
11518
11519         * cse.c (cse_altered): New internal flag.
11520         (cse_insn): Set it if we changed an insn.
11521         (cse_main): Clear cse_altered before each basic block.
11522         Only garbage collect if cse_altered is true afterward.
11523
11524 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11525
11526         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
11527
11528 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
11529
11530         * combine.c (simplify_comparison): Fix typo.
11531
11532 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
11533
11534         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
11535         consistently.
11536
11537 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11538
11539         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
11540         previously inserted node instead of root node.  Caller changed.
11541
11542 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11543
11544         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
11545
11546 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11547
11548         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
11549         __dereg_frame_dtor): Add prototype argument.
11550
11551         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
11552
11553         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
11554
11555         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
11556
11557         * gthr-vxworks.h (__gthread_once): Likewise.
11558
11559         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
11560
11561 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
11562
11563         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
11564         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
11565         stack pointer in functions w/o saved registers, output LEAVE more often
11566         on TARGET_USE_LEAVE machines.
11567
11568 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
11569
11570         * config/arm/arm.c (arm_init_cumulative_args); New function:
11571         Initlaise the CUMULATIE_ARGS strcuture for a function
11572         defintion.
11573         (arm_function_arg): New function: Determine where to place a
11574         function's argument.  Also handles deciding the function's
11575         call cookie.
11576         (current_file_function_operand): New function: Return true if
11577         the symbol is a function which has already been compiled.
11578         (arm_is_long_call_p): New function: Return true if the
11579         indicated function should be called via a long call.
11580         (arm_valid_type_attribute_p): New function: Return true if the
11581         attribute is a valid, arm specific, attribute.
11582         (arm_comp_type_attribute): New function: Return true if the
11583         two types have compatable, arm specific, attributes.
11584
11585         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
11586         structure.
11587         (FUNCTION_ARG): Redefine to call arm_function_arg.
11588         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
11589         structure field.
11590         (INIT_CUMULATIVE_ARGS): Redefine to call
11591         arm_init_cumulative_args.
11592         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
11593         field.
11594         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
11595         field.
11596         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
11597         functions.
11598         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
11599         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
11600         (COMP_TYPE_ATTRIBUTES): Define.
11601
11602         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
11603         if a long call is needed.
11604         (call_value): Call arm_is_long_call_p to decide if a long call
11605         is needed.
11606         (call_symbol): Call arm_is_long_call_p to decide if a long call
11607         is needed.
11608
11609         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
11610
11611 2000-02-11  Denis Chertykov  <denisc@overta.ru>
11612
11613         * README.AVR: New file with information about the avr ports.
11614         * config/avr: New directory with avr port files.
11615
11616 2000-02-11  Andreas Jaeger  <aj@suse.de>
11617
11618         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
11619
11620 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
11621
11622         * cpphash.c: Fix formatting, update commentary.
11623         (dump_definition): Take three separate arguments instead of a
11624         MACRODEF structure argument.
11625         * cpphash.h: Update prototype of dump_definition.
11626         * cppinit.c (cpp_finish): Update call of dump_definition.
11627
11628         * cpplib.c (do_define): Always create new hash entry with
11629         T_MACRO type.  Remove redundant check for redefinition of
11630         poisoned identifier.  Update call of dump_definition.
11631         (do_undef): Don't call check_macro_name.  Rename sym_length to
11632         len.
11633         (do_error, do_warning): Don't use copy_rest_of_line or
11634         SKIP_WHITE_SPACE.
11635         (do_warning): Don't use pedwarn for the actual warning,
11636         only the notice about its not being in the standard.  (Fixes
11637         bug with #warning in system headers.)
11638         (do_ident): Stricter argument checking - accept only a single
11639         string after #ident.  Also, macro-expand the line.
11640         (do_xifdef): Use cpp_defined.  De-obfuscate.
11641
11642         (do_pragma): Split out specific pragma handling to separate
11643         functions.  Use get_directive_token.  Update commentary.  Do
11644         not pass on #pragma once or #pragma poison to the front end.
11645         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
11646         do_pragma_default): New.
11647
11648 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
11649
11650         * jump.c (jump_optimize_1): The first operand in a relational
11651         can be a CONST_INT.
11652         * optabs.c (emit_conditional_move): Handle relationals which
11653         have a known true/false result.
11654
11655 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11656
11657         * function.c (thread_prologue_and_epilogue_insns): Don't insert
11658         a RETURN insn into a block which already ends with a jump.
11659
11660 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11661
11662         * haifa-sched.c (BUF_LEN): Increase a lot.
11663
11664 2000-02-11  Nick Clifton  <nickc@cygnus.com>
11665
11666         * configure.in: Add tm_p_file specification for thumb targets.
11667         * configure: Regenerate.
11668
11669         * config/arm/thumb-protos.h: New file: Prototypes for exported
11670         functions defined in thumb.c.
11671
11672 2000-02-11  Robert Lipe  <robertl@sco.com>
11673
11674         * Makefile.in (bootstrap-lean): Remove additional files.
11675         (bootstrap2-lean): Likewise.
11676         (VOL_FILES): List of files for above.
11677
11678 2000-02-11  Nathan Sidwell  <nathan@acm.org>
11679
11680         * cpphash.c (special_symbol): Remove spurious argument to
11681         cpp_lookup.
11682
11683 2000-02-11  Joel Sherrill (joel@OARcorp.com>
11684
11685         * configure.in: (i*86-*-rtems*): Swapped elf and coff
11686         stanzas.
11687         * configure: Rebuilt.
11688
11689 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
11690
11691         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
11692
11693 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
11694
11695         * pa.c, pa.h: Remove trigraph sequences within comments.
11696
11697 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
11698
11699         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
11700
11701 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
11702
11703         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
11704
11705 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11706
11707         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
11708
11709 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11710
11711         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
11712         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
11713         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11714         (ASM_FILE_END): Use c4x_file_end.
11715         * config/c4x/c4x.c (c4x_global_label): New function.
11716         (c4x_external_ref, c4x_file_end): Likewise.
11717
11718         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
11719         (c4x_external_ref, c4x_end_file): Likewise.
11720
11721 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
11722
11723         * cppexp.c: Don't include cpphash.h.
11724         (parse_charconst, cpp_lex): Use cpp_defined.
11725         (cpp_lex): Use get_directive_token throughout.  Remove
11726         unnecessary cases from switch.  Move assertion-handling code
11727         down to OTHER case.
11728         (cpp_parse_expr): If we see '+' or '-', check the context to
11729         determine if they are unary or binary operators.  Streamline
11730         the jumps a bit.  Do not call skip_rest_of_line.
11731
11732         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
11733         static.  Export get_directive_token.  Update commentary.
11734         (cpp_defined): New function.
11735         (do_define): Remove reference to T_PCSTRING.  Call
11736         free_definition to release memory for old definition, when
11737         redefining a macro.
11738         (eval_if_expression): Set only_seen_white to 0 before calling
11739         cpp_parse_expr.  Call skip_rest_of_line after it returns.
11740         (cpp_read_check_assertion): Don't preserve a pointer into the
11741         token buffer across a call to cpp_get_token.
11742
11743         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
11744         * cppfiles.c (redundant_include_p): Use cpp_defined.
11745         * cpphash.c (free_definition): New function.
11746         (delete_macro): Use it.  Update commentary.
11747         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
11748         free_definition.
11749         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
11750         from enum node_type.  Prototype cpp_defined and get_directive_token.
11751         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
11752
11753         * fix-header.c (check_macro_names): Use cpp_defined.
11754         (read_scan_file): Set inhibit_warnings and inhibit_errors in
11755         the options structure.
11756
11757 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11758
11759         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
11760
11761 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
11762
11763         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
11764         rather than die->die_tag.
11765
11766 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11767
11768         * combine.c (make_extraction, force_to_mode): Avoid warning on
11769         mixed-signedness conditionals.
11770         (make_field_assignment, nonzero_bits): Likewise.
11771         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
11772         (store_split_bit_field, extract_split_bit_field): Likewise.
11773         (extract_fixed_bit_field, store_bit_field,
11774         * expr.c: Change alignment to be unsigned everywhere.
11775         (move_by_pieces, store_constructor_field, store_constructor):
11776         Alignment parm is unsigned.
11777         (emit_block_move, emit_group_load, emit_group_store): Likewise.
11778         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11779         (do_compare_rtx_and_jump): Likewise.
11780         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
11781         Compare align with GET_MODE_ALIGNMENT.
11782         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
11783         (get_inner_reference): Likewise.
11784         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
11785         (expand_assignment): Local vars for alignment now unsigned.
11786         (store_constructor, store_field, expand_expr, do_jump): Likewise.
11787         (do_compare_and_jump): Likewise.
11788         (store_field): Call new function expr_align.
11789         * expr.h (emit_block_move, emit_group_load, emit_group_store):
11790         Alignment arg now unsigned.
11791         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11792         (do_compare_rtx_and_jump, store_bit_field): Likewise.
11793         (extract_bit_field): Likewise.
11794         * fold-const.c (add_double): Add cast to eliminate signedness warning.
11795         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
11796         (get_best_mode): Alignment arg is unsigned.
11797         * rtl.h (move_by_pieces): Likewise.
11798         * store-layout.c (maximum_field_alignment, set_alignment):
11799         Now unsigned.
11800         (layout_decl): Alignment arg is now unsigned.
11801         Remove unneeded casts.
11802         (layout_record, layout_union, layout_type): Remove unneeded casts.
11803         Local alignment variables now unsigned.
11804         (get_best_mode): Alignment arg now unsigned.
11805         * tree.c (expr_align): New function.
11806         * tree.h (expr_align): Likewise.
11807         (maximum_field_alignment, set_alignment): Now unsigned.
11808         (get_inner_reference): Alignment argument is now pointer to unsigned.
11809         * varasm.c (assemble_variable): Add cast to eliminate warning.
11810
11811 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
11812
11813         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
11814         then store directly into op0.
11815
11816         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
11817         the CALL_INSN, and emit the note immediately after it.
11818
11819 2000-02-10  Nick Clifton  <nickc@cygnus.com>
11820
11821         * config/arm/thumb.md (epilogue): Include a (return) in the
11822         generated insn, and emit it using emit_jump_insn not
11823         emit_insn.
11824
11825 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
11826
11827         * function.c (assign_temp): Change zero-sized arrays to size 1.
11828         * integrate.c (expand_inline_function): Do not update
11829         stack_alignment_needed
11830         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
11831         add some sanity checking, remove optimization for function with
11832         zero frame size.
11833
11834 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11835
11836         * flow.c (mark_regs_live_at_end): Delete unused variables.
11837
11838         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
11839
11840         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
11841         in macro FRAME_GROWS_DOWNWARD.
11842
11843         * stmt.c (expand_end_bindings): Delete unused variable.
11844
11845         * unroll.c (iteration_info): Mark parameter `loop' with
11846         ATTRIBUTE_UNUSED.
11847
11848 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11849
11850         * fixinc/server.c (load_data): Return NULL if the marker line is
11851         not found.
11852         (run_shell): If load_data returns NULL, retry the command once, in
11853         a new shell.
11854
11855         * configure: Rebuilt.
11856
11857 2000-02-09  Bruce Korb  <bkorb@gnu.org>
11858
11859         * gcc/fixincludes:  ** DELETED **
11860         * gcc/fixcpp:  ** DELETED **
11861         * gcc/fixinc-nt.sed:  ** DELETED **
11862         * gcc/just-fixinc:  ** DELETED **
11863         * gcc/Makefile.in:  Removed out-dated commentary
11864         * gcc/configure.in: Removed fast-fixincludes disablement.
11865         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
11866
11867 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11868         * function.c (thread_prologue_and_epilogue_insns): Uncomment
11869         last change.
11870
11871 2000-02-09  Richard Henderson  <rth@cygnus.com>
11872
11873         * jump.c (delete_insn): Don't delete user labels at -O0.
11874
11875 2000-02-09  Robert Lipe  <robertl@sco.com>
11876
11877         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
11878         Don't link with HOST_LIBS.
11879
11880 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11881
11882         * configure.in: Correct --help text for --with-dwarf2.
11883         Put tm-dwarf2.h after other tm files, if it's requested.
11884         * configure: Regenerate.
11885         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
11886         defining it.
11887
11888 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11889
11890         * cpplib.h: Provide HASHNODE typedef and forward decl of
11891         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
11892         DEFINITION, struct hashnode, struct macrodef, struct
11893         definition, scan_decls prototype, default defn of
11894         INCLUDE_LEN_FUDGE moved elsewhere.
11895
11896         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
11897         definition, and struct hashnode moved here. Remove the unused
11898         'predefined' field from struct definition.  Replace the 'args'
11899         union with its sole member.  All users updated (cpphash.c).
11900         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
11901         multiple include guard.
11902
11903         * cpphash.c (hashf): Make static; use better algorithm; drop
11904         HASHSIZE parameter; return an unsigned int.
11905         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
11906         used. Calculate HASHSIZE modulus here.
11907         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
11908         here.
11909         (create_definition): Drop PREDEFINITION parameter.
11910         * cpplib.c (do_define): Don't calculate a hash value here.
11911         Don't pass (keyword == NULL) to create_definition.
11912
11913         * scan.h: Prototype scan_decls here.
11914         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
11915         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
11916         callers of cpp_lookup and cpp_install updated.
11917
11918         * cpphash.c (macarg): Hoist all the flag diddling out of the
11919         function...
11920         (macroexpand): ... and out of the loop that calls macarg.
11921         Skip over the initial paren before macro arguments with
11922         cpp_get_non_space_token; point may be some distance before
11923         that paren.  Abort if it's not there.
11924
11925         * cpplib.c (parse_clear_mark): Delete function.
11926         (parse_set_mark, parse_goto_mark): Make static.
11927         (ACTIVE_MARK_P): New macro.
11928         (skip_block_comment, skip_line_comment): Do not bump the line
11929         if ACTIVE_MARK_P is true.
11930         (cpp_pop_buffer): The buffer to be popped may not have an
11931         active mark.
11932         (cpp_get_token): When looking for the initial paren before
11933         macro arguments, only set a mark in a file buffer, Always
11934         return to that mark before proceeding to call macroexpand or
11935         return a NAME token.
11936
11937         * cpplib.h: Remove prototypes of parse_set_mark,
11938         parse_clear_mark, parse_goto_mark.
11939         (struct cpp_options): Rename 'put_out_comments' to
11940         'discard_comments' and invert its sense.
11941         * cppinit.c, cpphash.c, cpplib.c: All users of
11942         put_out_comments changed to use discard_comments, with
11943         opposite sense.
11944
11945 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11946
11947         * function.c (thread_prologue_and_epilogue_insns): Don't delete
11948         the edge from a block that both jumps and falls through to the
11949         fallthru block.
11950
11951 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
11952
11953         * config/arm/arm.md (movsi): In PIC mode, make sure that a
11954         constant source address is legitimate.
11955
11956 2000-02-09  Philip Blundell  <pb@futuretv.com>
11957
11958         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
11959         correctly.
11960
11961         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
11962         generating PIC.
11963         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
11964
11965 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11966
11967         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
11968         ends with a newline and a NUL.  Don't be so clever manipulating
11969         strings.
11970
11971 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
11972
11973         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
11974         not to BIGGEST_ALIGNMENT.
11975
11976 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
11977
11978         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
11979         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
11980         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
11981         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
11982         * frame.c (execute_cfa_insn): Handle
11983         DW_CFA_GNU_negative_offset_extended.
11984
11985 2000-02-08  Richard Henderson  <rth@cygnus.com>
11986
11987         * flow.c (tidy_fallthru_edges): Split out from ...
11988         (delete_unreachable_blocks): ... here.
11989         (find_basic_blocks): Use it.
11990
11991 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11992
11993         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
11994
11995 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
11996
11997         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
11998         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
11999         (fix-header.o): Don't depend on cpphash.h.
12000
12001         * scan.c (hashstr): New function.
12002         * scan.h: Prototype it.
12003         * fix-header.c: Don't include cpphash.h.  Use hashstr.
12004         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
12005         hashstr.  Report hash table statistics.  Add private
12006         definition of xrealloc.
12007
12008 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12009
12010         * i386.h (TARGET_SWITCHES): Fix typo in option name.
12011
12012 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
12013
12014         * function.c (thread_prologue_and_epilogue_insns): Don't replace
12015         jumps with returns unless they are jumps to the fallthru block.
12016
12017 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
12018
12019         * i386.md (addqi3_cc): Fix contraints.
12020
12021 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12022
12023         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
12024
12025 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
12026
12027         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
12028         carriage return after a macro name.
12029
12030 2000-02-07  Fred Fish  <fnf@be.com>
12031
12032         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
12033         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
12034
12035 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
12036
12037         * cppfiles.c (deps_output): Count spacers in deps_column.
12038
12039 2000-02-07  Neil Booth  <NeilB@earthling.net>
12040
12041         * cppinit.c (initialize_dependency_output): If there is no
12042         suffix, don't try to look for known suffixes.  Use strrchr.
12043         (cpp_start_read): Remove duplicate initialization.
12044
12045 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
12046
12047         * calls.c (compute_argument_block_size): New argument
12048         preferred_stack_boundary.
12049         (expand_call): update cfun->preferred_stack_boundary, update call of
12050         compute_argument_block_size
12051         (emit_library_call): Increate cfun->preferred_stack_boundary
12052         to PREFERRED_STACK_BOUNDARY
12053         (emit_library_call_value): Likewise.
12054         * explow.c (allocate_dynamic_stack_spave): Likewise.
12055         * function.c (prepare_function_start): Set
12056         cfun->preferred_stack_boundary
12057         * function.h (struct function): Add preferred_stack_boundary field.
12058         * integrate.c (expand_inline_function): Update
12059         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
12060         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
12061         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
12062
12063 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
12064
12065         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
12066         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
12067         cpp_pedwarn, cpp_pedwarn_with_line,
12068         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
12069         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
12070         v_cpp_error_with_line, v_cpp_warning_with_line,
12071         cpp_message_from_errno, cpp_perror_with_name): Delete.
12072
12073         * cpperror.c (cpp_print_containing_files): Take starting
12074         buffer as argument.
12075         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
12076         (v_cpp_message): Now called directly by all entry points.
12077         Remove -1 case.
12078         (cpp_pfatal_with_name, cpp_message): Delete.
12079         (cpp_notice_from_errno, cpp_ice): New functions.
12080         (cpp_notice): Is now for reporting error conditions, just
12081         without an associated file.
12082         (cpp_error, cpp_error_with_line): Don't do anything if
12083         opts->inhibit_errors is on.
12084         (cpp_pedwarn_with_file_and_line): Take column argument also.
12085
12086         * cpplib.h: Update prototypes of exported functions.
12087         (struct cpp_options): Add inhibit_errors.
12088
12089         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
12090         non-error messages.  Include intl.h.
12091
12092         * cppinit.c, cppmain.c: Likewise.  Also, use
12093         cpp_notice_from_errno instead of cpp_perror_with_name or
12094         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
12095
12096         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
12097         report internal errors.
12098
12099         * cpplib.c (do_define): Switch bcopy to memcpy.
12100         Give cpp_pedwarn_with_file_and_line a dummy column argument.
12101
12102         * cpplib.c (copy_rest_of_line): Revert previous change: don't
12103         bail out early if we hit a line comment.
12104
12105 2000-02-06  Richard Henderson  <rth@cygnus.com>
12106
12107         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
12108         * basic-block.h: Declare them.
12109         * emit-rtl.h (active_insn_p): New.
12110         (next_active_insn, prev_active_insn): Use it.
12111         * rtl.h: Declare it.
12112         * function.c (emit_return_into_block): New.
12113         (thread_prologue_and_epilogue_insns): Insert return insns instead
12114         of epilogues when possible.
12115         * jump.c (jump_optimize_1): Remove code to insert a return insn
12116         on the fallthru to the exit block.
12117
12118         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
12119         and for non-empty stack frames.
12120         * i386.md (return): Expand to return-pop as needed.
12121
12122 2000-02-06  Richard Henderson  <rth@cygnus.com>
12123
12124         * simplify-rtx.c (simplify_relational_operation): Canonicalize
12125         constant to op1 for testing.
12126
12127 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12128
12129         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
12130         (fixuns_truncqfqi2): Use it.
12131
12132 2000-02-06  Richard Henderson  <rth@cygnus.com>
12133
12134         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
12135         as a TYPE_LEA insn.
12136
12137         * i386.md (widening and peepholes): Mask the constant instead of
12138         using gen_lowpart.
12139
12140 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
12141
12142         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
12143         input pointer before possibly branching off to the backslash
12144         code.
12145         * cpphash.c (macroexpand): Correctly delete \r escapes when
12146         stringifying parameters.
12147         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
12148         if we can; bail out early if we hit a line comment.
12149         (handle_directive): Treat '# 123' in an .S file just like
12150         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
12151         Return 1 for '# not_a_directive'.
12152         (get_directive_token): Pop macro buffers here, so that
12153         cpp_get_token can't sneakily move past a newline.
12154         Add sanity checks.
12155         (cpp_get_token): goto randomchar if handle_directive returns 0.
12156
12157         * cppalloc.c: Update copyright.
12158         * cpplib.c: Merge all the static function prototypes into one
12159         block.
12160         * cpplib.h: Remove #if 0 block.
12161
12162         * cpperror.c: Remove #ifdef EMACS block.
12163         * cppmain.c: Likewise.
12164         * cpphash.c: Remove #if 0 blocks.
12165         * cppinit.c: Remove #if 0 blocks, and the -lint option.
12166         * cpplib.c: Remove #if 0 blocks and code referencing
12167         pcp_inside_if or for_lint.  Remove duplicate error message.
12168         Fix error messages for #else after #else or #elif.  Reformat.
12169         Remove archaic TODO list.
12170         * cpplib.h: Remove pcp_inside_if and for_lint flags.
12171
12172 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
12173
12174         * i386/osf1elf.h: Add missing backslash to multiline string.
12175
12176 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12177
12178         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
12179
12180 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12181
12182         * Makefile.in (c-common.o): Depend on $(EXPR_H).
12183
12184         * c-common.c: Include expr.h.
12185
12186         * c-pragma.c (mark_align_stack): Add prototype.
12187
12188         * caller-save.c (add_stored_regs): Likewise.
12189
12190         * combine.c (record_promoted_value): Likewise.
12191
12192         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
12193         Likewise.
12194
12195         * cppinit.c (new_pending_define): Likewise.
12196
12197         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
12198
12199         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
12200         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
12201         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
12202         class_scope_p): Likewise.
12203
12204         * dwarf2out.h (dwarf2out_set_demangle_name_func,
12205         dwarf2out_add_library_unit_info): Likewise.
12206
12207         * ggc.h (ggc_page_print_statistics): Likewise.
12208
12209         * haifa-sched.c (propagate_deps): Likewise.
12210
12211         * reg-stack.c (next_flags_user, record_label_references): Likewise.
12212
12213         * rtl.h (set_stack_check_libfunc): Likewise.
12214
12215         * toplev.h (set_fatal_function): Likewise.
12216
12217         * toplev.c (set_fatal_function): Delete prototype.
12218
12219         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
12220
12221 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
12222
12223         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
12224         (FUNC_END): Likewise.
12225
12226 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12227
12228         * caller-save.c: Include tm_p.h.
12229
12230 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12231
12232         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
12233
12234 2000-02-04  Neil Booth  <NeilB@earthling.net>
12235
12236         * cccp.c (main): Check 'dir' for a NULL pointer before passing
12237         it to strcmp.
12238
12239 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
12240
12241         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
12242         * genflags.c: Use the max_operand_1 logic from genemit.c to
12243         calculate how many arguments gen_insn prototypes have.  Remove
12244         NO_MD_PROTOTYPES ifdefs from the generated file.
12245         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
12246         file.  Cast gen_insn initializers to insn_gen_fn.
12247         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
12248         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
12249
12250 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12251
12252         * fixinc/Makefile.in (HDR): Add machname.h.
12253         (clean): Likewise.
12254
12255 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12256
12257         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
12258         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
12259         (c4x_cpu_version): Ditto.
12260         * config/c4x/c4x-protos.h: ... here.
12261
12262 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
12263
12264         * dwarf2out.c (add_abstract_origin_attribute): Don't call
12265         gen_abstract_function on our context if we're a nested function.
12266
12267 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12268
12269         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
12270         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
12271
12272 2000-02-04  Bruce Korb  <bkorb@gnu.org>
12273
12274         * fixinc/genfixes(machname.h):
12275         Move the functionality from gen-machine.h into this file.
12276         UNdef MN_NAME_PAT if there are no names to change.
12277         Also, be a little kinder when AutoGen is not present.
12278
12279         * fixinc/Makefile.in(machname.h):
12280         Change the generation rule to use genfixes.
12281
12282         * fixinc/fixfixes.c(machine_name):
12283         machine_name_fix's functionality now dependent upon whether
12284         MN_NAME_PAT is defined.
12285
12286         * fixinc/fixtests.c(machine_name):
12287         ditto.
12288
12289         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
12290         of MN_NAME_PAT.
12291
12292         * fixinc/fixlib.h(mn_get_regexps):
12293         ditto
12294
12295         * fixinc/gen-machine.h: DELETED
12296
12297 2000-02-04  Jan Hubicka  <jh@suse.cz>
12298             Richard Henderson  <rth@cygnus.com>
12299
12300         * i386.c (SAVE_REGS_FIRST): Remove.
12301         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
12302         (ix86_compute_frame_size): Likewise.
12303         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
12304         (ix86_emit_restore_regs): Remove.
12305         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
12306         when a frame pointer is in use.
12307         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
12308         instead of pop to restore a register when profitable; emit leave
12309         when profitable.
12310         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
12311         as a TYPE_LEA insn.
12312         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
12313         * i386.md (prologue_allocate_stack): Remove.
12314         (epilogue_deallocate_stack): Remove.
12315         (pro_epilogue_adjust_stack): New.
12316
12317 2000-02-04  Richard Henderson  <rth@cygnus.com>
12318
12319         * function.c (diddle_return_value): Rework to use a callback function.
12320         Use current_function_return_rtx if it's been set up.
12321         (do_clobber_return_reg, clobber_return_register): New.
12322         (do_use_return_reg, use_return_register): New.
12323         (expand_function_end): Use them.
12324         * stmt.c (expand_null_return): Likewise.
12325         * function.h: Declare them.
12326         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
12327         (mark_reg): Change arguments as appropriate for callback.
12328         * integrate.c (expand_inline_function): Revert 19 Jan change.
12329
12330 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12331
12332         * tm.texi (Values in Registers): Fix typo: "fo" "for".
12333         (Misc): Say the scheduler, not the Haifa scheduler.
12334
12335 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
12336
12337         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
12338         when in_mem is set.  Update all callers.
12339
12340 2000-02-04  Richard Henderson  <rth@cygnus.com>
12341
12342         * i386/openbsd.h (INT_ASM_OP): Define.
12343
12344 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12345
12346         * tm.texi: Fix various typos.
12347
12348 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
12349
12350         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
12351         (MD_STARTFILE_PREFIX_1): New macro.
12352
12353 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
12354
12355         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
12356         destination when needed.
12357         (strmovsi, strsetsi): New expander.
12358         (strmovsi_1, strsetsi_1): New pattern.
12359         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
12360         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
12361         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
12362         * invoke.texi (align-stringops, inline-all-stringops): Document.
12363
12364 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
12365
12366         * i386/netbsd.h (INT_ASM_OP): Define.
12367
12368 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
12369
12370         * cpplib.h (cpp_reader): Add new flag, no_directives.
12371         * cpphash.c (macarg): Set it.
12372         * cpplib.c (handle_directive): If no_directives is on and we
12373         find a directive, issue an error and discard the line.
12374
12375 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
12376
12377         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
12378         FP constants.  Add ! TARGET_FPU check for FP constants.
12379
12380 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
12381
12382         * flow.c (find_basic_blocks): Don't kill label_value_list
12383         here.
12384         (cleanup_cfg): Kill it here.
12385
12386 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12387
12388         * expr.c (store_field): Ensure ALIGN is no stricter than the
12389         alignment of EXP.
12390
12391 2000-02-02  Richard Henderson  <rth@cygnus.com>
12392
12393         * jump.c (delete_insn): Partially revert 19 Jan change;
12394         don't convert unused code labels to notes at -O0.
12395
12396 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12397
12398         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
12399         split_all_insns to recreate REG_LABEL notes for flow2 pass.
12400
12401 2000-02-01  Richard Henderson  <rth@cygnus.com>
12402
12403         * i386.c (general_no_elim_operand): New.
12404         (nonmemory_no_elim_operand): New.
12405         (ix86_expand_move): Copy eliminable operands before a push.
12406         * i386-protos.h: Declare new functions.
12407         * i386.h (CAN_ELIMINATE): Simplify.
12408         (PREDICATE_CODES): Update.
12409         * i386.md (push insns): Don't allow eliminable register operands.
12410
12411 2000-02-01  Richard Henderson  <rth@cygnus.com>
12412
12413         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
12414         replace BLKmode with DECL_RTL's mode.
12415
12416 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
12417
12418         * frame.c (find_fde): Convert for loop to do-while so compiler
12419         sees it's always executed at least once.
12420         * libgcc2.c (BBINBUFSIZE): Kill.
12421         (__bb_init_prg): Use fgets.
12422         (__bb_exit_trace_func): Don't paste strings.
12423         * unroll.c (unroll_loop): Initialize unroll_type, not
12424         unroll_number, and tweak logic to match.
12425
12426         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
12427         all failure paths.
12428         (ix86_flags_dependant): Likewise.  Disentangle control flow.
12429         (ix86_sched_reorder): Break guts out to
12430         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
12431         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
12432         any possible use.
12433
12434         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
12435         use string concatenation.  Don't save and restore esi.
12436
12437         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
12438         (machname.h): Remove script to separate file.  Use two-step
12439         sequence so target is not created if script fails.
12440         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
12441         identifiers are defined.
12442         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
12443         an empty string, machine_name doesn't need to do anything at
12444         all.
12445         (is_cxx_header): Add more cases to regexp.
12446         * fixinc/fixlib.h: Update prototype.
12447         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
12448         mn_get_regexps.
12449         * fixinc/fixincl.c: Define NO_BOGOSITY.
12450
12451         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
12452         (hp_sysfile): Add missing comma.
12453         (math_exception): Put the wrapper ifdefs at the beginning and
12454         the end of the file.
12455         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
12456
12457 2000-02-01  Richard Henderson  <rth@cygnus.com>
12458
12459         * sparc.c (fp_zero_operand): Turn into a normal predicate.
12460         Use CONST0_RTX.  Update all callers.
12461         * sparc.h, sparc-protos.h: Update accordingly.
12462         * sparc.md (fp mov insns): Use fp_zero_operand directly
12463         where applicable.
12464
12465 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12466
12467         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
12468         example.
12469
12470 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12471
12472         * Makefile.in (specs.ready): New target.
12473         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
12474
12475 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12476
12477         * fixinc.irix: Use unique filenames for writing into /tmp,
12478         * fixinc.ptx: Likewise.
12479         * fixinc.sco: Likewise.
12480         * fixinc.svr4: Likewise.
12481         * fixinc.winnt: Likewise.
12482
12483 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12484
12485         * tsystem.h: New file.
12486
12487         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
12488         s-crtS): Depend on tsystem.h.
12489
12490         * crtstuff.c: Include tsystem.h.
12491         * frame.c: Likewise.
12492         * libgcc2.c: Likewise.
12493
12494 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
12495
12496         * builtins.c (expand_builtin_memset): Expand for variable sized
12497         lengths too.
12498
12499 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
12500
12501         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
12502         on ABI.
12503
12504 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12505
12506         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
12507
12508         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
12509
12510 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
12511
12512         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
12513         case 3->2 combining (combining with splitting) in which 2 is CC0
12514         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
12515         checked at the begining of the function with the aid of calling
12516         function 'can_combine_p'.
12517
12518 2000-01-31  Dave Brolley  <brolley@redhat.com>
12519
12520         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
12521
12522 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
12523
12524         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
12525         new label.
12526
12527 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12528
12529         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
12530
12531         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
12532         PROTO -> PARAMS.
12533
12534 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12535
12536         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
12537         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
12538         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
12539         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
12540         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
12541         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
12542         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
12543         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
12544         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
12545         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
12546
12547         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
12548         Add %(cpp_cpu) to CPP_SPEC.
12549
12550         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
12551         Add %(cc1_cpu) to CC1_SPEC.
12552
12553 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12554
12555         * c-decl.c (c_decode_option): Accept optional numeric argument to
12556         -Wformat and set warn_format.
12557         * c-common.c: Don't emit warning about non-constant printf format
12558         string unless warn_format > 1.
12559
12560 2000-01-30  Richard Henderson  <rth@cygnus.com>
12561
12562         * alpha.md (return_internal): Allow after reload only.
12563
12564 2000-01-30  Richard Henderson  <rth@cygnus.com>
12565
12566         * i386.c (ix86_compute_frame_size): Omit padding1 if the
12567         local frame size is zero.
12568
12569 2000-01-30  Richard Henderson  <rth@cygnus.com>
12570
12571         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
12572         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
12573         * alpha.md (return): Turn into an expander.
12574         (return_internal): Don't use $26.
12575         (epilogue): Emit the return insn.
12576
12577 2000-01-30  Richard Henderson  <rth@cygnus.com>
12578
12579         * alpha.md (negtf2, abstf2): Fix word order thinko.
12580         (extendsftf2): New.
12581         (trunctfsf2): Avoid intermediate rounding errors.
12582
12583 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12584
12585         * cppfiles.c (find_position): Drop 'colp' argument, return the
12586         new line base.
12587         (read_and_prescan): Adjust to match.  Don't ever manipulate
12588         line or line_base except via find_position.
12589
12590 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12591
12592         * c-parse.in: Apply Ulrich's changes from c-parse.y.
12593         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
12594         Regenerate.
12595
12596 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12597
12598         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
12599         just print "<command line>".  If 'filename' is null or an
12600         empty string, print "<stdin>" for the filename.
12601         * cpplib.c (do_define): Don't print the 'location of the
12602         previous definition' message if we're still parsing the
12603         command line.
12604         (cpp_pedwarn_with_file_and_line): Always call
12605         cpp_file_line_for_message.
12606
12607 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
12608
12609         * flow.c (mark_regs_live_at_end): Fix typo.
12610
12611 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12612
12613         * c-common.c: Adjust variable names, comments, help strings to c99.
12614         * c-lex.c: Likewise.
12615         * c-parse.y: Likewise.
12616         * c-tree.h: Likewise.
12617         * cccp.c: Likewise.
12618         * cpplib.h: Likewise.
12619         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
12620         * cppinit.c: Likewise.
12621
12622 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12623
12624         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
12625         * c4x.c: Define the optab rtx values.
12626         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
12627         (c4x_emit_libcall): Use new optab rtx values.
12628         (c4x_emit_libcall3): Likewise.
12629         (c4x_emit_libcall_mulhi): Likewise.
12630         * c4x-protos.h: Add prototypes for optab rtx values and change
12631         prototypes for above c4x_emit_libcall functions.
12632
12633 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12634
12635         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
12636         syntax is used.
12637         (c4x_function_prologue): Use regnames intead of float_reg_names when
12638         TI syntax is used.
12639         (c4x_function_epilogue): Likewise.
12640         (c4x_print_operand): Likewise.
12641         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
12642         * c4x.md (set_high): Disable for TARGET_TI.
12643
12644 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12645
12646         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
12647         of framepointer + constant to ADDR_REGS class.
12648         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
12649         * c4x.c (std_or_reg_operand): New function.
12650         * c4x-protos.h (std_or_reg_operand): Prototype it.
12651
12652 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12653
12654         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
12655                 object names as libgcc2.c.
12656         * libgcc.S: Use newly defined names.
12657
12658 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
12659         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
12660         function.
12661         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
12662         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
12663         (FLOW_LOOP_LAST_BLOCK): Likewise.
12664
12665 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12666
12667         * basic-block.h (struct loop): New fields 'first' and 'last'.
12668         * flow.c (flow_loops_find): Compute loop->first and loop->last.
12669         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
12670         and loop->last to check for NOTE_INSN_LOOP_END.
12671
12672 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
12673
12674         * predict.c (estimate_probability): Use the new FIRST and LAST fields
12675         of the loop descriptor rather than HEADER and LATCH. Also added
12676         missing break statements as well making some coding style modifications
12677         as suggested by Michael Hayes.
12678
12679 2000-01-28  Richard Henderson  <rth@cygnus.com>
12680
12681         * flow.c (find_basic_blocks): Remove do_cleanup argument.
12682         Break out that code ...
12683         (cleanup_cfg): ... here.
12684         (commit_one_edge_insertion): Detect a return instruction being
12685         emitted to an edge.  Emit a barrier following; clear fallthru.
12686         (commit_edge_insertions): Verify CFG consistency.
12687         * function.c (expand_function_start): Kill unused variable.
12688         (expand_function_end): Likewise.
12689         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
12690         to insert the epilogue.
12691
12692         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
12693         (delete_null_pointer_checks): Likewise.
12694         * output.h: Likewise.
12695         * reg-stack.c (reg_to_stack): Likewise.
12696         * toplev.c (rest_of_compilation): Likewise.  Run
12697         thread_prologue_and_epilogue_insns after rebuilding the CFG.
12698
12699 2000-01-28  Richard Henderson  <rth@cygnus.com>
12700
12701         * Makefile.in (flow.o): Revert 24 Jan change.
12702         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
12703         FUNCTION_VALUE result to DECL_RESULT's mode.
12704
12705         * haifa-sched.c (schedule_insns): Don't recompute reg info
12706         after reload.
12707
12708 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
12709
12710         * configure.in: Make --enable-cpplib the default.
12711         * configure: Regenerate.
12712         * gcc.dg/990119-1.c: No longer expected to fail.
12713
12714 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
12715
12716         * jump.c (jump_optimize_1): Delete an optimization that is also done
12717         by merge_blocks in flow.
12718
12719 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12720
12721         * diagnostic.c (build_message_string, output_printf,
12722         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
12723         (build_location_prefix): Fix non-literal format string.
12724
12725 2000-01-27  Richard Henderson  <rth@cygnus.com>
12726
12727         * alpha.md (trunctfsf2): New.
12728
12729 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
12730
12731         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
12732
12733 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12734
12735         * cppinit.c (cpp_handle_option): Recognize C++ comments under
12736         -std=gnu89.
12737         * cpplib.c (skip_block_comment, skip_line_comment): Split code
12738         out of...
12739         (skip_comment) ... here.  Permit C++ comments in system
12740         headers always.  Warn about C++ comments in user code under
12741         -std=gnu89 -pedantic.
12742         (copy_comment): Use skip_comment.
12743         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
12744         return EOF.
12745         (consider_directive_while_skipping, do_else, do_endif): Call
12746         validate_else unconditionally.
12747         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
12748         text after the conditional in a system header.
12749         * cpplib.h (struct cpp_buffer): Add flag
12750         warned_cplusplus_comments.
12751
12752 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12753
12754         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
12755         Use unshare_all_rtl_1.
12756         (unshare_all_rtl_again): New function.
12757         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
12758
12759         * function.c (purge_addressof_1): Use unshare_all_rtl_again
12760         rather than resetting the 'used' flags ourself.
12761
12762         * toplev.c (rest_of_compilation): Add current_function_decl
12763         to the unshare_all_rtl call.
12764         * tree.h: Prototype unshare_all_rtl.
12765         * rtl.h: Prototype unshare_all_rtl_again here.
12766
12767 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12768
12769         * genoutput.c (output_prologue): Include ggc.h in generated
12770         files.
12771         * Makefile.in (insn-output.o): Depends on ggc.h.
12772
12773 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
12774             Hans-Peter Nilsson  <hp@bitrange.com>
12775
12776         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
12777         Remove redundant include of xm-ns32k.h.
12778         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
12779         Remove redundant include of xm-ns32k.h.
12780         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
12781         Remove redundant include of xm-ns32k.h.
12782         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
12783
12784         * ns32k/ns32k.h: Update comment on multiply-add instructions.
12785         (TARGET_SWITCHES): Add documentation strings.
12786         (DWARF_FRAME_REGNUM): Override default definition.
12787         (REG_CLASS_CONTENTS): Add comments.
12788         (SUBSET_P): Format to reduce line length.
12789         (SMALL_REGISTER_CLASSES): Make a run time option.
12790         (GO_IF_NONINDEXED_ADDRESS): Reformat.
12791         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
12792         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
12793         (regclass_map): fix typo in comment.
12794         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
12795         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
12796         (trace, reg_or_mem_operand): Delete, unused function.
12797         (calc_address_cost): Small offsets are cheaper than large ones.
12798         (expand_block_move): Generate more efficient code when bytes is a
12799         known at compile time.
12800         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
12801         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
12802         instead of reg_or_mem_operand.
12803
12804         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
12805         not general_operand.  Similarly use "=rm" or stricter, not "=g".
12806         For input operands, use stricter constraints than "g" if not
12807         general_operand.  Similarly use stricter predicate than
12808         "general_operand" when stricter constraints than "g" are present,
12809         except for matching constraints.
12810         (movstrsi): Use "memory_operand" for operands 0 and 1.
12811         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
12812         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
12813         not reg_or_mem_operand.
12814         (udivmoddisi4): Ditto.
12815         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
12816         Use nonimmediate_operand for operand 3, not register_operand.
12817         (udivmoddiqi4_internal): Use register_operand for operand 1, not
12818         reg_or_mem_operand.
12819
12820 2000-01-27  Fred Fish  <fnf@be.com>
12821
12822         * gthr-posix.h: Fix typo; compatibily -> compatibility.
12823         * gthr-single.h: Likewise.
12824         * gthr-solaris.h: Likewise.
12825         * gthr-vxworks.h: Likewise.
12826         * gthr-win32.h: Likewise.
12827         * gthr.h: Likewise.
12828
12829 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12830
12831         * cppinit.c: Add " (cpplib)" to end of string printed by
12832         -v / --version.
12833
12834 2000-01-27  Richard Henderson  <rth@cygnus.com>
12835
12836         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
12837         testing for a signed comparison.
12838         (alpha_emit_floatuns): New.
12839         * alpha-protos.h: Declare it.
12840         * alpha.md (floatunsdisf2, floatunsdidf2): New.
12841         (extendsfdf2): Tidy.
12842
12843 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
12844
12845         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
12846         no -g option specifying debugging format, default to -gstabs+.
12847
12848 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
12849
12850         * calls.c (special_function_p): New argument fork_or_exec.
12851         (expand_call): When profile_arc_flag is set and the function
12852         is in the fork_or_exec group, call __bb_fork_func first.
12853         * libgcc2.c, _bb module (__bb_fork_func): New function.
12854         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
12855         output file.
12856         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
12857         * tree.h (special_function_p): Update prototype.
12858
12859 2000-01-26  Richard Henderson  <rth@cygnus.com>
12860
12861         * alpha.c (alpha_split_tfmode_pair): New.
12862         * alpha-protos.h: Declare it.
12863         * alpha.md (abstf2, negtf2): New.
12864         (movtf insn): Add input G constraint.
12865         (movtf splitter): Use alpha_split_tfmode_pair.
12866
12867 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12868
12869         * i386/cygwin.h: PROTO -> PARAMS.
12870
12871 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
12872
12873         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
12874         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
12875         using _Qp_cmp/_Q_cmp and testing the return value.
12876         (print_operand): Call reverse_condition_maybe_unordered if
12877         we are handling CCFPmode or CCFPEmode.
12878         Handle ORDERED, UN* and LTGT comparisons.
12879         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
12880         if not TARGET_HARD_QUAD.
12881         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
12882         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
12883         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
12884         Adjust gen_b* calls so that they reflect return comparison of
12885         sparc_emit_float_lib_cmp.
12886
12887 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12888
12889         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
12890         incoming operands array is large enough for one more operand.
12891         (alpha_emit_xfloating_arith): Likewise.
12892
12893 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12894
12895         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
12896         file with one line and no trailing newline.
12897         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
12898         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
12899         checking if the match is on the line.
12900         * fixinc/gnu-regex.c: Provide regerror not __regerror.
12901
12902 2000-01-25  Richard Henderson  <rth@cygnus.com>
12903
12904         * sparc.c (output_cbranch): Fix accidental squashing of the
12905         fp branch pre-delay nop.
12906
12907 2000-01-25  Richard Henderson  <rth@cygnus.com>
12908
12909         * tree.def (UNNE_EXPR): Remove.
12910         * c-typeck.c (build_binary_op): Don't handle it.
12911         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
12912
12913         * rtl.def (UNNE): Remove.
12914         (LTGT): Add.
12915         * jump.c (reverse_condition): Update accordingly.
12916         (swap_condition): Likewise.
12917         (comparison_dominates_p): Handle unordered comparisons.
12918         (reverse_condition_maybe_unordered): New.
12919         * rtl.h (reverse_condition_maybe_unordered): Declare.
12920
12921         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
12922         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
12923         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
12924         * sparc.md (bltgt): New.
12925
12926 2000-01-25  Nick Clifton  <nickc@redhat.com>
12927
12928         * emit-rtl.c (emit_insn): Only check machine class insns for
12929         improper emission of a RETURN.
12930
12931 2000-01-25  Richard Henderson  <rth@cygnus.com>
12932
12933         * Makefile.in (flow.o): Depend on $(EXPR_H).
12934         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
12935         duplicate the structure of diddle_return_value for keeping regs live.
12936
12937 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12938
12939         * loop.c (current_loop_info): Delete.
12940         (consec_sets_invariant_p): Add loop argument, update callers.
12941         (get_condition_for_loop): Likewise.
12942         (count_nonfixed_reads, update_giv_derive): Likewise.
12943         (simplify_giv_expr, general_induction_var): Likewise.
12944         (consec_sets_giv, recombine_givs): Likewise.
12945         (move_movables): Delete loop_start and loop_end arguments,
12946         add loop argument, and update callers.
12947         (find_mem_givs, check_final_value): Likewise.
12948         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
12949         (loop_invariant_p): Rename from invariant_p, add loop argument, and
12950         update callers.
12951         (basic_induction_var): Add loop argument, delete loop_level argument,
12952         and update callers.
12953         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
12954         add loop argument, and update callers.
12955         (find_splittable_regs, find_splittable_givs): Likewise.
12956         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
12957         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
12958         (biv_total_increment): Delete loop_start and loop_end arguments;
12959         update callers.
12960         (precondition_loop_p): Delete loop_start and loop_info arguments;
12961         update callers.
12962         * loop.h (get_condition_for_loop): Add loop argument.
12963         (biv_total_increment): Delete loop_start and loop_end arguments.
12964         (precondition_loop_p): Delete loop_start and loop_info arguments;
12965         add loop argument.
12966         (final_biv_value): Delete loop_start and loop_end arguments;
12967         add loop argument.
12968         (final_giv_value, back_branch_in_range_p): Likewise.
12969
12970 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12971
12972         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
12973
12974 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12975
12976         * Makefile.in (c-gperf.h) : Change the "See" pointer to
12977         point to the new "generated_files" doc.
12978
12979 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12980
12981         * config/fp-bit.c (_unord_f2): Fix typo.
12982
12983 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12984
12985         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
12986         c-typeck.c, objc/objc-act.c: Remove all references to obstack
12987         functions obsoleted by GC, such as push_obstacks_nochange,
12988         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
12989         and code which existed only to decide whether or not to call
12990         them.  Remove now-unused NESTED argument from start_function;
12991         all callers changed.  Do not change behavior based on ggc_p.
12992         The use of the ixp_obstack in c-iterate.c and the util_obstack
12993         in objc/objc-act.c remain; these are not obsoleted by garbage
12994         collection.
12995         * c-tree.h: Update prototype for start_function.
12996
12997         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
12998
12999 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
13000
13001         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
13002         mips16.
13003
13004 2000-01-25  Richard Henderson  <rth@cygnus.com>
13005
13006         * sparc-protos.h (select_cc_mode): Declare.
13007         * sparc.c (select_cc_mode): New.  Handle unordered compares.
13008         (output_cbranch): Always reverse via code change.  Handle
13009         unordered compares.  Factor tests and string updates.
13010         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
13011         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
13012         * sparc.md (bunordered, bordered): New.
13013         (bungt, bunlt, buneq, bunge, bunle): New.
13014
13015 2000-01-25  Richard Henderson  <rth@cygnus.com>
13016
13017         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
13018         * ggc-common.c (ggc_add_rtx_varray_root): New.
13019         (ggc_mark_rtx_varray): New.
13020         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
13021         functions down below ggc_mark_foo.
13022         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
13023
13024 2000-01-25  Richard Henderson  <rth@cygnus.com>
13025
13026         * alpha.c (secondary_reload_class): Don't allocate a secondary
13027         for integral mode memories into FLOAT_REGS.  Rearrange the more
13028         complicated memory expression inward.
13029
13030 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
13031
13032         * inclhack.def: Fixes to play nicer with FreeBSD, and
13033         corrections to comments.
13034         (cxx_unready): Add select expression.
13035         (irix_sockaddr): Add bypass expression.
13036         (machine_ansi_h_va_list): New fix.
13037         (stdio_va_list): No need to edit _BSD_VA_LIST_.
13038         Split out addition of "#include <stdarg.h>" to...
13039         (stdio_stdarg_h): ... here.
13040         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
13041         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
13042         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
13043         size_t.
13044         (ultrix_ifdef): Tighten up select expression.
13045
13046         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
13047         re_ct and max_mach to avoid use of shell.  Make printed names
13048         match names in inclhack.def.  Use static copyright date.
13049         Don't count c_test and test expressions as requiring regex_t
13050         slots.  Add some commentary.
13051         * inclhack.tpl: Do not include the 'This script contains N
13052         fixup scripts' line if PROGRAM is defined.  Use static
13053         copyright date.
13054
13055 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
13056
13057         * dwarf2out.c: include "varray.h", not dyn-string.h.
13058         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
13059         (addr_const_to_string, addr_to_string): Lose.
13060         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
13061         (struct dw_val_struct): val_addr is now an rtx.
13062         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
13063         (used_rtx_varray): New varray.
13064         (dwarf2out_init): Initialize it.
13065         (save_rtx): New fn.
13066         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
13067         addr_to_string.
13068         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
13069         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
13070         * Makefile.in (dwarf2out.o): Update dependencies.
13071
13072 2000-01-24  Richard Henderson  <rth@cygnus.com>
13073
13074         * i386.c (i386_dwarf_output_addr_const): New.
13075         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
13076
13077         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
13078         if defined.
13079         * dwarfout.c (output_mem_loc_descriptor): Likewise.
13080         * i386.c (i386_simplify_dwarf_addr): New.
13081         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
13082
13083 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
13084
13085         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
13086         TYPE_STUB_DECL is NULL.
13087
13088 2000-01-24  Richard Henderson  <rth@cygnus.com>
13089
13090         * builtins.c (expand_tree_builtin): Move ...
13091         * c-common.c (expand_tree_builtin): ... here.
13092
13093 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13094
13095         * loop.h (LOOP_INFO): New accessor macro.
13096         * basic-block.h (struct loop): Rename field `info' to `aux'.
13097         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
13098         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
13099         * unroll.c (loop_iterations, unroll_loop): Likewise.
13100
13101 2000-01-24  Christopher Faylor <cgf@cygnus.com>
13102
13103         * config/i386/t-cygwin: Accomodate new winsup directory layout
13104         when searching for include files.
13105
13106 2000-01-24  Richard Henderson  <rth@cygnus.com>
13107
13108         * rtl.def: Add unordered fp comparisions.
13109         * tree.def: Likewise.
13110         * tree.h: Add ISO C 9x unordered fp comparision builtins.
13111
13112         * builtins.c (expand_tree_builtin): New function.
13113         * c-typeck.c (build_function_call): Use it.
13114         (build_binary_op): Support unordered compares.
13115         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
13116
13117         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
13118         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
13119         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
13120         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
13121         * jump.c (reverse_condition): Don't abort for UNLE etc, but
13122         return UNKNOWN.
13123         (swap_condition): Handle unordered compares.
13124         (thread_jumps): Check can_reverse before reversing.
13125         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
13126         reversed for FP.
13127
13128         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
13129         setcc is present before acking for cmp_optab.  Update all callers.
13130         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
13131         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
13132         * expr.c (expand_expr): Likewise.  Support unordered compares.
13133         (do_jump, do_store_flag): Likewise.
13134         * expr.h (enum libfunc_index): Add unordered compares.
13135
13136         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
13137         (DPBIT_FUNCS): Add _unord_df.
13138         * config/fp-bit.c (_unord_f2): New.
13139         * fp-test.c (main): Try unordered compare builtins.
13140
13141         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
13142         * alpha.c (alpha_comparison_operator): Check mode properly.
13143         (alpha_swapped_comparison_operator): Likewise.
13144         (signed_comparison_operator): Likewise.
13145         (alpha_fp_comparison_operator): New.
13146         (alpha_emit_conditional_branch): Handle unordered compares.
13147         * alpha.h (PREDICATE_CODES): Update.
13148         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
13149         (bunordered, bordered): New.
13150
13151 2000-01-24  Richard Henderson  <rth@cygnus.com>
13152
13153         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
13154         * alpha.md (movtf): New expander, insn, and splitter.
13155
13156 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
13157
13158         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
13159         dead registers.
13160
13161 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13162
13163         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
13164         (FIXED_REGISTERS, CALL_USED_REGISTERS,
13165          REG_ALLOC_ORDER): Add frame pointer
13166         (FRAME_POINTER_REGNUM): Set to 20
13167         (HARD_FRAME_POINTER_REGNUM): New macro.
13168         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
13169         to HARD_FRAME_POINTER.
13170         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
13171         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
13172         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13173         (HI_REGISTER_NAMES): Add "frame".
13174         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
13175         (debug_reg): Handle FRAME_POINTER_REGNUM.
13176         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
13177         GENERAL_REGS and INDEX_REGS.
13178         * i386.c (SAVED_REGS_FIRST): new macro.
13179         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
13180         (ix86_decompose_address, memory_address_length): Likewise.
13181         (regclass_map): Add frame pointer.
13182         (call_insn_operand): Handle frame_pointer_rtx.
13183         (reg_no_sp_operand): Likewise.
13184         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
13185         (print_operand, legitimize_pic_address): Fix formating.
13186         (ix86_compute_frame_size): Make static, update prototype, new
13187         parameters padding1, padding2, use ix86_nsaved_regs, use
13188         stack_alignment_needed.
13189         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
13190         to HARD_FRAME_POINTER_REGNUM conversions.
13191         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
13192         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
13193         (print_reg): Abort on FRAME_POINTER_REGNUM
13194
13195 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
13196
13197         * i386.h (PREDICATE_CODES): Add aligned_operand.
13198         * i386.c (aligned_operand): New function.
13199         (ix86_aligned_p): Kill.
13200         * i386.md (movhi_1): Emit mov for aligned operands.
13201         (promoting peep2s): Use aligned_operand.
13202
13203 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
13204
13205         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
13206         expression to allow underscores in macro names.
13207         (fix_char_macro_defines): Increment scanning pointer.
13208
13209 2000-01-23  Richard Henderson  <rth@cygnus.com>
13210
13211         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
13212         * alpha/osf5.h: New file.
13213         * configure.in (alpha-*-osf5): Add it to tm_file.
13214
13215         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
13216
13217         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
13218         (alpha_emit_xfloating_cvt, function_arg): Declare.
13219         * alpha.c (alpha_emit_conditional_branch): Call
13220         alpha_emit_xfloating_compare for TFmode compares.
13221         (alpha_lookup_xfloating_lib_func): New.
13222         (alpha_compute_xfloating_mode_arg): New.
13223         (alpha_emit_xfloating_libcall): New.
13224         (alpha_emit_xfloating_arith): New.
13225         (alpha_emit_xfloating_compare): New.
13226         (alpha_emit_xfloating_cvt): New.
13227         (print_operand): Add default abort case.
13228         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
13229         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
13230         (BIGGEST_ALIGNMENT): Increase to 128 bits.
13231         (RETURN_IN_MEMORY): True for TF/TCmode.
13232         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
13233         (FUNCTION_ARG): Move to function_arg.
13234         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
13235         (ASM_OUTPUT_LONG_DOUBLE): New.
13236         (ASM_OUTPUT_DOUBLE): Always output bits.
13237         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
13238         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
13239         (extenddftf2, trunctfdf2): New.
13240
13241 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13242
13243         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
13244         * config/sparc/sol2.h: ... here.
13245
13246 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13247
13248         * basic-block.h (struct loops): New field `levels'.
13249         * flow.c (flow_loops_level_compute): Traverse all outer loops.
13250         (flow_loop_level_compute): Initialise level to 1.
13251         (flow_loops_find): Set loops->levels.
13252         (flow_loops_dump): Print loops->levels.
13253
13254 2000-01-23  Richard Henderson  <rth@cygnus.com>
13255
13256         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
13257         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
13258
13259 2000-01-23  Richard Henderson  <rth@cygnus.com>
13260
13261         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
13262         * i386.h (DBX_REGISTER_NUMBER): Use them.
13263         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
13264         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
13265         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
13266         * i386/sequent.h: Kill incorrect comment.
13267
13268 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
13269
13270         * ggc-page.c (struct page_entry): Make `context_depth' an
13271         `unsigned short'.
13272         (struct globals): Likewise.
13273
13274 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
13275
13276         * loop.c (check_dbra_loop): When checking a loop for
13277         reversability, check the source of any stores to ensure
13278         they don't depend on an initial value.
13279
13280 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13281
13282         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
13283
13284 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
13285
13286         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
13287         'pz_scan' into scope of entire function.  Only affects
13288         compiles with -DDEBUG.
13289
13290 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
13291
13292         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
13293         section naming to that prior to 2000-01-07 patch.
13294         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
13295         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
13296         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
13297         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
13298         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
13299
13300 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
13301
13302         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
13303         constant.
13304
13305 2000-01-21  Jim Wilson  <wilson@cygnus.com>
13306
13307         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
13308         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
13309
13310 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
13311
13312         * cpphash.c (change_newlines): Delete function.
13313         (struct argdata): Delete 'newlines' and 'use_count' fields.
13314         (macroexpand): Remove code referencing those fields.
13315
13316 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13317
13318         * loop.c (loops_info): New variable.
13319         (loop_optimize): Allocate loops->array and free it on exit.
13320         Allocate memory for loops_info and assign to each loop,
13321         replacing alloca.
13322         (find_and_verify_loops): Do not allocate loops->array.
13323
13324 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
13325
13326         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
13327
13328 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
13329
13330         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
13331         pseudos if expanded after first flow.
13332         (movdi_pic_label_ref): Likewise.
13333
13334 2000-01-20  Richard Henderson  <rth@cygnus.com>
13335
13336         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
13337
13338 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
13339
13340         * Makefile.in (fixinc.sh): Depend on specs.
13341         * fixinc/Makefile.in: Add rule to create machname.h.
13342         (fixlib.o): Depend on machname.h.
13343         * fixinc/fixtests.c (machine_name): New test.
13344         * fixinc/fixfixes.c (machine_name): New fix.
13345         * fixinc/fixlib.c (mn_get_regexps): New helper function for
13346         the machine_name test and fix.
13347         * fixinc/fixlib.h: Prototype it.
13348         * fixinc/inclhack.def (machine_name): Use the C test and fix.
13349         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
13350
13351         * gcc.c (do_spec_1) [case P]: Take care not to create
13352         identifiers with three leading or trailing underscores.
13353
13354         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
13355         (fixincl): Don't specify libraries twice on link line.
13356         (gnu-regex.o): Remove special rule.
13357         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
13358         defined by config.h.  Do not define _REGEX_RE_COMP.
13359         (regcomp): Allocate and initialize a fastmap.
13360         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
13361
13362 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
13363
13364         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
13365
13366 2000-01-19  Richard Henderson  <rth@cygnus.com>
13367
13368         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
13369         arguments with BB.  Update all callers.  Tidy line wrapping.
13370
13371 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
13372
13373         * emit-rtl.c (try_split): Return last_insn if we split the
13374         last_insn.
13375
13376 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
13377
13378         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
13379         (ix86_initial_elimination_offset): Declare.
13380         * i386.c (ix86_nsaved_regs): Break out from ...
13381         (ix86_can_use_return_insn_p): ... here.
13382         (ix86_emit_save_regs): Break out from ...
13383         (ix86_expand_prologue): ... here.
13384         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
13385         out from ...
13386         (ix86_expand_epilogue): ... here.
13387         (ix86_compute_frame_size): Make static, add prototype.
13388         (ix86_initial_elimination_offset): Break out from ...
13389         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
13390
13391 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13392
13393         * recog.h (OUT_FCN): Delete.
13394
13395         * vax.md: Call `get_insn_template' instead of OUT_FCN.
13396
13397 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13398
13399         * cppalloc.c: PROTO -> PARAMS.
13400         * cpperror.c: Likewise.
13401         * cppfiles.c: Likewise.
13402         * cpplib.c: Likewise.
13403         * cpplib.h: Likewise.
13404
13405         * config/arm/arm-protos.h: PROTO -> PARAMS.
13406         * config/arm/arm.c: Likewise.
13407         * config/c4x/c4x.c: Likewise.
13408         * config/fr30/fr30-protos.h: Likewise.
13409         * config/nextstep.c: Likewise.
13410         * config/pa/pa.c: Likewise.
13411         * config/pj/pj.c: Likewise.
13412         * config/rs6000/rs6000.c: Likewise.
13413         * config/v850/v850-protos.h: Likewise.
13414         * config/v850/v850.c: Likewise.
13415
13416 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13417
13418         * i370-protos.h: New file.
13419
13420         * i370.c: Include tm_p.h.  Fix compile time warnings.
13421
13422         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
13423         warnings.
13424
13425         * i370.md: Likewise.
13426
13427 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13428
13429         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
13430         (target_isinf, target_isnan, eisnan): Mark parameter with
13431         ATTRIBUTE_UNUSED.
13432         (eiisinf): Wrap in INFINITY.
13433         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
13434         (ibmtoe): Remove unused variable `rndsav'.
13435
13436 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13437
13438         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
13439         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
13440
13441 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
13442
13443         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
13444         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
13445         (fix_char_macro_defines, fix_char_macro_uses): New functions.
13446
13447         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
13448         Recognize Emacs mode markers also.
13449         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
13450         C++ comments in C++ headers.  Call is_cxx_header only if
13451         necessary.
13452
13453         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
13454         bypass for ncurses.
13455         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
13456         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
13457         ... these, which use the new C fixes.
13458         (math_exception): Escape literal '+' in bypass expression.
13459
13460         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
13461         Regenerate.
13462
13463 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
13464
13465         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
13466         inside the MEM.
13467
13468 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13469
13470         * loop.c (loop_optimize): Allocate loop_info structure for each loop
13471         prior to calling scan_loop.
13472
13473 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13474
13475         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
13476         (split_branches, calc_live_regs): Likewise.
13477
13478 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13479
13480         * sh.md (fpu_single, fp_mode): New attributes.
13481
13482 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13483
13484         * loop.c (current_loop_info): Renamed from loop_info_data
13485         and changed to a pointer.
13486         (loop_optimize): Allocate loop_info structure for each loop
13487         and initialise to zero.
13488         (scan_loop): Set current_loop_info.
13489
13490         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
13491         on iteration_var.
13492
13493 2000-01-19  Richard Henderson  <rth@cygnus.com>
13494
13495         * stupid.c: Die die die.
13496         * Makefile.in (OBJS): Remove stupid.o.
13497         (stupid.o): Likewise.
13498
13499         * except.c (emit_eh_context): Don't emit USEs for stupid.
13500         * explow.c (probe_stack_range): Likewise.
13501         * flags.h (obey_regdecls): Remove.
13502         * flow.c (find_basic_blocks): Don't run try_merge_blocks
13503         when not optimizing.
13504         (life_analysis): Limit data collection when not optimizing.
13505         (mark_regs_live_at_end): Always mark the return value registers.
13506         (mark_used_regs): Remove dummy RETURN case.
13507         (print_rtl_with_bb): Don't consult obey_regdecls.
13508         * function.c (use_variable, use_variable_after): Remove.
13509         (assign_parms): Consult optimize not obey_regdecls.
13510         (expand_function_start): Don't emit USEs for stupid.
13511         (expand_function_end): Likewise.
13512         * global.c (build_insn_chain): Export.
13513         * integrate.c (expand_inline_function): Kill return-value USE
13514         handling code.
13515         * jump.c (jump_optimize_1): Do simple jump optimizations and
13516         dead code elimination.
13517         (calculate_can_reach_end): Remove check_deleted argument.
13518         (delete_insn): Patch out insns even when not optimizing.
13519         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
13520         * rtl.h (use_variable, use_variable_after): Remove declarations.
13521         (build_insn_chain): Declare.
13522         * stmt.c (expand_value_return): Don't emit USEs for stupid.
13523         (expand_end_bindings): Likewise.
13524         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
13525         * toplev.c (obey_regdecls): Remove.
13526         (rest_of_compilation): Don't set it.  Kill stupid in favour of
13527         flow1, local-alloc, and reload.
13528         (main): Don't set obey_regdecls.
13529
13530         * config/nextstep.c (handle_pragma): Likewise.
13531
13532         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
13533
13534         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
13535
13536 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13537
13538         * alpha-protos.h: PROTO -> PARAMS.
13539         * alpha.c: Likewise.
13540         * elf.h: Likewise.
13541         * h8300.c: Likewise.
13542         * i386-protos.h: Likewise.
13543         * i386.c: Likewise.
13544         * m32r-protos.h: Likewise.
13545         * m32r.c: Likewise.
13546         * mips.c: Likewise.
13547         * mips.md: Likewise.
13548         * gmon-sol2.c: Likewise.
13549         * sparc.c: Likewise.
13550
13551 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13552
13553         * ns32k-protos.h: New file.
13554
13555         * ns32k.c: Fix compile time warnings.
13556
13557         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
13558         warnings.
13559
13560         * ns32k.md: Likewise.
13561
13562 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13563
13564         * vax-protos.h: New file.
13565
13566         * vax.c: Fix compile time warnings.
13567
13568         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
13569         warnings.
13570
13571         * vax.md: Likewise.
13572
13573         * vaxv.md: Likewise.
13574
13575 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13576
13577         * romp-protos.h: New file.
13578
13579         * romp.c: Fix compile time warnings.
13580
13581         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
13582         warnings.
13583
13584         * romp.md: Likewise.
13585
13586 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13587
13588         * we32k-protos.h: New file.
13589
13590         * we32k.c: Fix compile time warnings.
13591
13592         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
13593         warnings.
13594
13595 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13596
13597         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
13598
13599         * except.c (eh_regs): Likewise.
13600
13601         * final.c (output_operand): Likewise.
13602
13603         * fold-const.c (target_isinf, target_isnan): Likewise.
13604
13605 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13606
13607         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
13608         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
13609
13610         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
13611         when optimize_size.
13612         (clrstrsi): Rewrite.
13613         (strsethi, strsetqi): New expanders.
13614         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
13615         (cmpstrsi): Emit compare insn before cmpstrsi_1
13616         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
13617         (strlensi_1): Likewise.
13618         (cmpstrsi_1): Likewise; do not output compare.
13619         (strlen expander): Do not unroll when optimizing for size.
13620         (*subsi3_carry): Rename to subsi3_carry
13621         (addqi3_cc): New pattern.
13622         * i386.h (processor_costs): Add move_ratio field.
13623         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
13624         * i386.c (*_cost): Set move_ratio.
13625         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
13626         (x86_expand_strlensi_1): Rewrite the main loop.
13627
13628 2000-01-17  Richard Henderson  <rth@cygnus.com>
13629
13630         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
13631         * cse.c (find_comparison_args, fold_rtx): Likewise.
13632         * integrate.c (subst_constants): Likewise.
13633         * loop.c (get_condition): Likewise.
13634
13635         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
13636
13637         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
13638
13639 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13640
13641         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
13642         (RESTORE_WARN_FLAGS): Unpack it.
13643         Change semantic type of extension to ttype.
13644         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
13645         * c-parse.y, c-parse.c, objc/objc-parse.y,
13646         objc/objc-parse.c: Regenerate.
13647
13648 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
13649
13650         * fixinc/fixlib.c: Add copyright notice.
13651         (compile_re): New function.
13652         * fixinc/fixlib.h: Prototype compile_re.
13653
13654         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
13655         Use compile_re to compile regular expressions.
13656
13657         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
13658         where the pattern matched.
13659
13660         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
13661         use 'replace'.
13662         (ultrix_ansi_compat): Likewise.
13663         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
13664         add egrep test.
13665         (interactv_add2, interactv_add3): Delete.
13666         (x11_sprintf): Don't use filename glob.
13667         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
13668         Regenerate.
13669
13670 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13671
13672         * print-rtl.c: PROTO -> PARAMS.
13673         * real.c: Likewise.
13674         * reg-stack.c: Likewise.
13675         * resource.c: Likewise.
13676         * sdbout.h: Likewise.
13677         * simplify-rtx.c: Likewise.
13678         * stor-layout.c: Likewise.
13679         * stupid.c: Likewise.
13680         * xcoffout.c: Likewise.
13681         * xcoffout.h: Likewise.
13682
13683 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13684
13685         * toplev.c: PROTO -> PARAMS.
13686         * toplev.h: Likewise.
13687         * tree.c: Likewise.
13688         * tree.h: Likewise.
13689         * unroll.c: Likewise.
13690         * varasm.c: Likewise.
13691         * varray.c: Likewise.
13692         * varray.h: Likewise.
13693
13694 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13695
13696         * reload.c: PROTO -> PARAMS.
13697         * reload.h: Likewise.
13698         * reload1.c: Likewise.
13699         * reorg.c: Likewise.
13700         * resource.h: Likewise.
13701         * rtl.c: Likewise.
13702         * rtl.h: Likewise.
13703         * rtlanal.c: Likewise.
13704         * sbitmap.h: Likewise.
13705         * sdbout.c: Likewise.
13706         * stack.h: Likewise.
13707         * stmt.c: Likewise.
13708         * system.h: Likewise.
13709
13710 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13711
13712         * machmode.h: PROTO -> PARAMS.
13713         * mbchar.h: Likewise.
13714         * mips-tdump.c: Likewise.
13715         * mips-tfile.c: Likewise.
13716         * optabs.c: Likewise.
13717         * output.h: Likewise.
13718         * prefix.c: Likewise.
13719         * profile.c: Likewise.
13720         * protoize.c: Likewise.
13721         * real.h: Likewise.
13722         * recog.c: Likewise.
13723         * recog.h: Likewise.
13724         * regclass.c: Likewise.
13725         * regmove.c: Likewise.
13726         * regs.h: Likewise.
13727
13728 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13729
13730         * ggc-common.c: PROTO -> PARAMS.
13731         * ggc-page.c: Likewise.
13732         * ggc-simple.c: Likewise.
13733         * ggc.h: Likewise.
13734         * global.c: Likewise.
13735         * graph.c: Likewise.
13736         * gthr-win32.h: Likewise.
13737         * haifa-sched.c: Likewise.
13738         * halfpic.h: Likewise.
13739         * integrate.c: Likewise.
13740         * integrate.h: Likewise.
13741         * jump.c: Likewise.
13742         * lcm.c: Likewise.
13743         * local-alloc.c: Likewise.
13744         * loop.c: Likewise.
13745         * loop.h: Likewise.
13746
13747 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13748
13749         * genattr.c: PROTO -> PARAMS.
13750         * genattrtab.c: Likewise.
13751         * gencheck.c: Likewise.
13752         * gencodes.c: Likewise.
13753         * genconfig.c: Likewise.
13754         * genemit.c: Likewise.
13755         * genextract.c: Likewise.
13756         * genflags.c: Likewise.
13757         * gengenrtl.c: Likewise.
13758         * genopinit.c: Likewise.
13759         * genoutput.c: Likewise.
13760         * genpeep.c: Likewise.
13761         * genrecog.c: Likewise.
13762
13763 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
13764
13765         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
13766
13767 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13768
13769         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
13770         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
13771         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
13772         * configure, config.in: Rebuilt.
13773
13774 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
13775
13776         * config/i386/i386.md: Add peephole to merge successive stack
13777         adjusts.
13778
13779 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
13780
13781         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
13782         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
13783         when walking backwards to find all the parameter loads when
13784         the basic block ends in a call.
13785
13786 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13787
13788         * loop.c (this_loop_info): Delete.
13789         (uid_loop): Add in place of uid_loop_num.  All uses updated.
13790         (loop_number_exit_count): Delete and replace with entry in loop
13791         structure.  All uses updated.
13792         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13793         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13794         (loop_outer_loop): Likewise.
13795         (loop_invalid, loop_number_exit_labels): Likewise.
13796         (loop_used_count_register): Delete and replace with entry in
13797         loop_info structure.
13798         (find_and_verify_loops): Add loops argument.
13799         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
13800         loop_end, etc. arguments with loop structure pointer.  All callers
13801         changed.
13802         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
13803         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
13804         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
13805         (insert_bct): Likewise.
13806         (basic_induction_var): New argument level.
13807         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
13808         vtop, and cont.  Add used_count_register.
13809         (uid_loop): Delete declaration.
13810         (loop_number_exit_count): Likewise.
13811         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13812         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13813         (loop_outer_loop, loop_used_count_register): Likewise.
13814         (loop_invalid, loop_number_exit_labels): Likewise.
13815         (unroll_loop): Replace loop_start and loop_end arguments
13816         with loop structure pointer.
13817         (loop_precondition_p, loop_iterations): Likewise.
13818         Include basic-block.h.
13819         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
13820         with loop structure pointer.
13821         (loop_precondition_p, loop_iterations): Likewise.
13822         * basic-block.h (struct loop): New entries vtop, cont,
13823         cont_dominator, start, end, top, scan_start, exit_labels,
13824         exit_count.
13825         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
13826
13827 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13828
13829         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
13830
13831 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
13832
13833         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
13834
13835 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13836
13837         * pdp11-protos.h: New file.
13838
13839         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
13840         time warnings.
13841
13842         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
13843         warnings.
13844
13845         * pdp11.md: Likewise.
13846
13847         * 2bsd.h: Likewise.
13848
13849 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13850
13851         * mn10300-protos.h: New file.
13852
13853         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13854         time warnings.
13855
13856         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
13857         warnings.
13858
13859         * mn10300.md: Likewise.
13860
13861 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13862
13863         * mn10200-protos.h: New file.
13864
13865         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
13866         time warnings.
13867
13868         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
13869         warnings.
13870
13871         * mn10200.md: Likewise.
13872
13873 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13874
13875         * h8300-protos.h: New file.
13876
13877         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13878         time warnings.
13879
13880         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
13881         warnings.
13882
13883         * h8300.md: Likewise.
13884
13885 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13886
13887         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
13888         (asm_emit_uninitialised): Likewise.
13889
13890 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
13891
13892         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
13893         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
13894
13895 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13896
13897         * config/mips/mips.c (override_options): Don't turn on extra
13898         alignment for mips16.
13899
13900 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13901
13902         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
13903         eabi, and make sure queued POSTINCREMENT rtl is emitted at
13904         the right point.
13905
13906 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13907
13908         * builtins.c (PAD_VARARGS_DOWN): Define.
13909         (std_expand_builtin_va_arg): Use the above macro.
13910         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
13911         * tm.texi (Register Arguments): Document the above macro.
13912
13913 2000-01-14  Nick Clifton  <nickc@cygnus.com>
13914
13915         * emit-rtl.c (emit_insn): If checking is enabled, make sure
13916         that this function has not been used to emit a jump
13917         instruction.
13918
13919         * jump.c (return_jump_1): Cope with being passed a null rtx.
13920
13921 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13922
13923         * eh-common.h: PROTO -> PARAMS.
13924         * emit-rtl.c: Likewise.
13925         * errors.c: Likewise.
13926         * errors.h: Likewise.
13927         * except.c: Likewise.
13928         * except.h: Likewise.
13929         * explow.c: Likewise.
13930         * expmed.c: Likewise.
13931         * expr.c: Likewise.
13932         * expr.h: Likewise.
13933         * final.c: Likewise.
13934         * fix-header.c: Likewise.
13935         * flow.c: Likewise.
13936         * fold-const.c: Likewise.
13937         * function.c: Likewise.
13938         * function.h: Likewise.
13939         * gcc.c: Likewise.
13940         * gcov-io.h: Likewise.
13941         * gcov.c: Likewise.
13942         * gcse.c: Likewise.
13943
13944 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13945
13946         * sh-protos.h: New file.
13947
13948         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
13949         Add static prototypes.  Fix compile time warnings.
13950
13951         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
13952         * sh.md: Likewise.
13953         * elf.h: Likewise.
13954
13955 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13956
13957         * arc-protos.h: New file.
13958
13959         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
13960         time warnings.
13961
13962         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
13963         warnings.
13964
13965         * arc.md: Likewise.
13966
13967 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13968
13969         * dsp16xx-protos.h: New file.
13970
13971         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
13972         time warnings.
13973
13974         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
13975         warnings.
13976
13977         * dsp16xx.md: Likewise.
13978
13979 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13980
13981         * convex-protos.h: New file.
13982
13983         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
13984         time warnings.
13985
13986         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
13987         warnings.
13988
13989 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13990
13991         * elxsi-protos.h: New file.
13992
13993         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
13994         time warnings.
13995
13996         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
13997         warnings.
13998
13999         * elxsi.md: Likewise.
14000
14001 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
14002
14003         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
14004         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
14005         match the comment for MIPS16.
14006
14007 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
14008
14009         * flow.c (split_edge): Do not call set_block_for_insn if we
14010         do not have a basic_block_for_insn structure.
14011
14012         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
14013         and destination functions are 32bit aligned within the trampoline.
14014         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
14015         (TRAMPOLINE_ALIGNMENT): Define.
14016
14017         * cse.c (cse_insn): When changing (set (pc) (reg)) to
14018         (set (pc) (label_ref)), verify the change creates a valid insn.
14019
14020         * fr30.c (call_operand): Tighten and rework to match rules for
14021         call RTL expressions.
14022         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
14023         * fr30.md (call patterns): Improve constraints.
14024
14025 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
14026
14027         * fr30.c (fr30_expand_epilogue): Revert last change.
14028         Use emit_jump_insn for the return insn.
14029
14030 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
14031                           Stan Cox  <scox@cygnus.com>
14032
14033         * predict.c: New file. Preliminary infrastructure work for static
14034         branch prediction and basic block reordering.
14035         * basic-block.h: Add prototype for estimate_probability.
14036         * Makefile.in: Add rules for predict.o.
14037
14038 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
14039
14040         * fixincludes (va_list): Use __not_va_list__ for the dummy.
14041         * fixinc/*: Likewise.
14042
14043 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14044
14045         * cccp.c: PROTO -> PARAMS.
14046         * cexp.y: Likewise.
14047         * collect2.c: Likewise.
14048         * combine.c: Likewise.
14049         * convert.h: Likewise.
14050         * cse.c: Likewise.
14051         * dbxout.c: Likewise.
14052         * dbxout.h: Likewise.
14053         * diagnostic.c: Likewise.
14054         * doprint.c: Likewise.
14055         * dwarf2out.c: Likewise.
14056         * dwarf2out.h: Likewise.
14057         * dwarfout.c: Likewise.
14058         * dwarfout.h: Likewise.
14059         * dyn-string.h: Likewise.
14060
14061 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14062
14063         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
14064         macro conditionals guarding use.
14065
14066         * dwarf2out.c: Include "tm_p.h".
14067
14068         * function.c (locate_and_pad_parm): Mark parameter with
14069         ATTRIBUTE_UNUSED.
14070         (expand_function_end): Likewise for variable `context'.
14071
14072         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
14073
14074 2000-01-13  Nick Clifton  <nickc@cygnus.com>
14075
14076         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
14077         register to prevent compile time warnings.
14078
14079 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
14080
14081         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
14082         to avoid -Wtraditional warning.
14083
14084 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14085
14086         * 1750a-protos.h: New file.
14087
14088         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
14089         time warnings.
14090
14091         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
14092         warnings.
14093
14094         * 1750a.md: Likewise.
14095
14096 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14097
14098         * a29k-protos.h: New file.
14099
14100         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14101         time warnings.
14102
14103         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
14104         warnings.
14105
14106 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14107
14108         * clipper-protos.h: New file.
14109
14110         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
14111         time warnings.
14112
14113         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
14114         warnings.
14115
14116 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14117
14118         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
14119
14120 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
14121
14122         * configure.in (--enable-new-gxx-abi): New option.
14123         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
14124         * Makefile.in (GXX_ABI_FLAG): New variable.
14125         * configure: Regenerate.
14126
14127 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14128
14129         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
14130         * tm.texi (FORCE_STRUCT_BLK): Document.
14131         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
14132
14133 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
14134
14135         * config/ns32k/ns32k.md: Revert Jan 9 change.
14136
14137         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
14138         to a mode-test, if the predicate is address_operand.
14139
14140 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
14141
14142         * combine.c (if_then_else_cond): Be careful about what kinds
14143         of RTL expressions are passed to operand_subword.
14144
14145         * flow.c (split_edge): If we have to insert a new jump, make
14146         sure to associate it with a basic block.
14147
14148         * flow.c (commit_one_edge_insertion): A block with one successor
14149         can end in a JUMP_INSN that is not a simplejump.
14150
14151 2000-01-12  Robert Lipe  <robertl@sco.com>
14152
14153         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
14154         (BUILD_VA_LIST_TYPE): Define.
14155         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
14156         with crtstuff.c.
14157
14158 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
14159
14160         * cccp.c (do_pragma): Add cast to (char *).
14161
14162 2000-01-12  Richard Henderson  <rth@cygnus.com>
14163             Fred Fish  <fnf@be.com>
14164             Jason Merrill  <jason@cygnus.com>
14165
14166         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
14167         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
14168         * i386/beos-elf.h, i386/beos-pe.h: New files.
14169
14170         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
14171         * cross-make (SYSTEM_HEADER_DIR): Define using
14172         CROSS_SYSTEM_HEADER_DIR.
14173
14174         * gcc.c (LIBRARY_PATH_ENV): Provide default.
14175         (process_command): Use it.
14176         (main): Likewise.  Kill trailing = from env vars.
14177         (build_search_list): Put it back.
14178         * collect2.c (main): Use LIBRARY_PATH_ENV.
14179
14180         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
14181         * toplev.c: Use NEED_DECLARATION_ENVIRON.
14182
14183         * tm.texi (Frame Layout): Document SMALL_STACK.
14184         * c-common.c (c_common_nodes_and_builtins): Check it.
14185
14186         * system.h: Undef alloca after including glibc's <stdlib.h>,
14187         if USE_C_ALLOCA is defined.
14188
14189         * gcc.c (set_input): New fn.
14190         (main): After all input files are compiled, reset the input file
14191         info to the first.
14192
14193         * aclocal.m4 (rindex, index): If already defined, don't attempt
14194         to redefine.
14195
14196         * ginclude/varargs.h: (__va_list__): Define ifndef.
14197         * ginclude/stdarg.h: Likewise.
14198
14199         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
14200         instead of unsigned char.
14201
14202         * hash.h (true, false, boolean): Undef before enum.
14203
14204         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
14205         proper type of "HOST_WIDE_INT *", rather than their natural type of
14206         "unsigned HOST_WIDE_INT *".
14207
14208 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14209
14210         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
14211
14212         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
14213
14214         * regclass.c (choose_hard_reg_mode): Likewise.
14215
14216         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
14217
14218         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
14219
14220 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14221
14222         * c-common.c: PROTO -> PARAMS.
14223         * c-common.h: Likewise.
14224         * c-decl.c: Likewise.
14225         * c-iterate.c: Likewise.
14226         * c-lang.c: Likewise.
14227         * c-lex.c: Likewise.
14228         * c-lex.h: Likewise.
14229         * c-parse.in: Likewise.
14230         * c-pragma.c: Likewise.
14231         * c-pragma.h: Likewise.
14232         * c-tree.h: Likewise.
14233         * c-typeck.c: Likewise.
14234         * objc/objc-act.c: Likewise.
14235         * objc/objc-act.h: Likewise.
14236
14237 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14238
14239         * m88k-protos.h: New file.
14240
14241         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14242         time warnings.
14243
14244         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
14245
14246         * m88k.md: Likewise.
14247
14248         * tekXD88.h: Likewise.
14249
14250 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14251
14252         * m68k-protos.h: New file.
14253
14254         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14255         time warnings.
14256
14257         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
14258
14259         * mot3300.h: Likewise.
14260
14261 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
14262
14263         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
14264         extract_bitlst.
14265         (extract_bitlist): Declare bitlen.
14266
14267 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
14268
14269         * cccp.c: Accept and ignore -lang-fortran.
14270
14271         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
14272         qualifiers don't match at any level of pointerness.
14273
14274 2000-01-12  Robert Lipe  <robertl@sco.com>
14275
14276         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
14277
14278 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
14279
14280         * reload1.c (reload_reg_unavailable): New static variable.
14281         (reload_reg_free_p): Test it.
14282         (reload_reg_free_for_value_p): Test it instead of
14283         reload_reg_used.
14284         (choose_reload_regs_init): Compute it.
14285
14286 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
14287
14288         * reorg.c (fill_slots_from_thread): Check modified_in_p
14289         before replacing.
14290
14291 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
14292
14293         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
14294         these nodes even if INTERNALS is not set.
14295
14296 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
14297
14298         * gcse.c (delete_null_pointer_checks_1): Cope when
14299         get_condition cannot determine the condition.
14300
14301 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
14302
14303         * toplev.h (set_message_length): Declare.
14304
14305         * diagnostic.c (obstack_chunk_alloc): Define macro.
14306         (obstack_chunk_free): Likewise.
14307         (struct output_buffer): New data structure.
14308         (vmessage): Remove.
14309         (output_maximum_width): New variable.
14310         (doing_line_wrapping, set_message_length, init_output_buffer,
14311         get_output_prefix, output_space_left, emit_output_prefix,
14312         output_newline, output_append, output_puts, dump_output,
14313         vbuild_message_string, build_message_string, build_location_prefix,
14314         voutput_notice, output_printf, line_wrapper_printf,
14315         vline_wrapper_message_with_location):  New functions. Implement
14316         automatic line wrapping.
14317         (v_message_with_decl): Make it handle automatic line wrapping.
14318         (v_error_with_file_and_line): Likewise.
14319         (v_warning_with_file_and_line): Likewise.
14320         (announce_function): Likewise.
14321         (default_print_error_function): Likewise.
14322
14323 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
14324
14325         * cpplib.h (struct cpp_options): Change lang_asm to char.
14326         Add lang_fortran.
14327         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
14328         done in cpp_handle_option now.
14329         (initialize_builtins): Take out special case code used only by
14330         __STDC_VERSION__.
14331         (cpp_handle_option): Turn off trigraphs and trigraph warnings
14332         if -traditional.  Recognize -lang-fortran and set
14333         lang_fortran, also turn off cplusplus_comments.
14334         (print_help): Document -lang-fortran.
14335         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
14336         lang_asm. Ignore all directives other than `# 123 "file"' if
14337         CPP_PREPROCESSED.
14338         (cpp_get_token): If -traditional, don't recognize directives
14339         unless the # is in column 1.
14340         (parse_string): If lang_fortran or lang_asm, silently
14341         terminate strings ('' or "") at end of line.
14342         Remove unnecessary braces.
14343
14344 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14345             Richard Henderson  <rth@cygnus.com>
14346
14347         * resource.c (mark_referenced_resources): Mark a set strict_low_part
14348         as used.
14349         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
14350         strict_low_part when possible.
14351
14352 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14353
14354         * alias.c: PROTO -> PARAMS.
14355         * basic-block.h: Likewise.
14356         * bitmap.c: Likewise.
14357         * bitmap.h: Likewise.
14358         * builtins.c: Likewise.
14359         * c-aux-info.c: Likewise.
14360         * caller-save.c: Likewise.
14361         * calls.c: Likewise.
14362
14363 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14364
14365         * Makefile.in (toplev.o): Depend on regs.h.
14366
14367         * output.h (tdesc_section): Prototype.
14368
14369         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
14370
14371         * sdbout.c: Include "tm_p.h".
14372
14373         * toplev.c: Include "regs.h".
14374
14375 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
14376
14377         * unroll.c (unroll_loop): Add EH support.
14378
14379 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14380
14381         * pa-protos.h: New file.
14382
14383         * pa.c: Include recog.h and tm_p.h.
14384         (compute_zdepwi_operands, compute_movstrsi_length,
14385         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
14386         find_addr_reg, import_milli): Add static prototypes.
14387         (pa_cpu_string, pa_arch_string): Constify a char*.
14388         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
14389         (read_only_operand): Add argument `mode'.
14390         (singlemove_string, output_move_double, output_fp_move_double,
14391         output_block_move, output_and, output_ior, output_ascii,
14392         remove_useless_addtr_insns, milli_names, output_mul_insn,
14393         output_div_insn, output_mod_insn, output_arg_descriptor,
14394         output_cbranch, output_bb, output_bvb, output_dbra, ,
14395         output_millicode_call, output_call, hppa_encode_label,
14396         output_parallel_movb, output_parallel_addb): Constify a char*.
14397         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
14398         (output_parallel_addb): Remove extra arg to `constrain_operands'
14399
14400         * pa.h:  Move all prototypes to pa-protos.h.
14401         (pa_cpu_string, pa_arch_string): Constify a char*.
14402         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
14403
14404         * pa.md: Call `function_label_operand' with mode argument.
14405         Likewise for `read_only_operand'.
14406         Fix nesting of parens in call to `symbolic_operand'.
14407
14408 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14409
14410         * i860-protos.h: New file.
14411
14412         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
14413         time warnings.
14414
14415         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
14416
14417         * i860.md: Likewise.
14418
14419 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
14420
14421         * i386.md (movstrsi expander): Rewrite.
14422         (movstrsi_1 insn): Deleted.
14423         (strmovhi, strmovqi expander): New expanders.
14424         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
14425         * i386.c (x86_single_stringop): New global variable.
14426         * i386.h (x86_single_stringop): Declare.
14427         (TARGET_SINGLE_STRINGOP): New macro.
14428
14429 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
14430
14431         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
14432         integer vararg POSTINCREMENT before the destination of the jump
14433         for the hard fp case.
14434         (function_arg_pass_by_reference): Pass a copy of CUM to
14435         FUNCTION_ARG.
14436
14437         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
14438         for CONSTANT_ADDRESS_P above while loop for subreg.
14439
14440 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
14441
14442         * flow.c (propagate_block): When a prologue/epilogue insn
14443         is marked dead, unconditionally clear libcall_is_dead and
14444         insn_is_dead, and only dump rtl if warnings aren't being
14445         suppressed.
14446
14447 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
14448
14449         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
14450         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
14451         (FIXED_REGISTERS): Set dirflag as fixed.
14452         (CALL_USED_REGISTERS): Set dirflag as used.
14453         (REG_ALLOC_ORDER): Set dirflag as last one.
14454         (DIRFLAG_REG): New macro.
14455         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
14456         (HI_REGISTER_NAMES): Add dirflag.
14457         (DEBUF_PRINT_REG): Handle dirflag.
14458         * i386.md (type attribute): New cld and str types.
14459         (length_opcode attribute): Set cld and str to 1.
14460         (memory attribute): Set str to unknown - it is not clear from the
14461         patterns.
14462         (pent_np function unit): Prefixed string operations takes 12 cycles
14463         minimally; cld takes 2 cycles.
14464         (ppro_uops attribute): Str is "many" and cld is "few".
14465         (ppro_p0 unit): Handle cld here.
14466         (k6_alux unit): Handle cld and str types.
14467         (k6_load unit): It is ocupied by str opcodes.
14468         (k6_store unit): It is ocupied by str opcodes.
14469         (athlon_decode): Str is vector decoded.
14470         (athlon_ieu): Handle str and cld.
14471         (cld pattern): New.
14472         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
14473         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
14474         cmpstrsi_nz_1 insn): Do not output cld instruction
14475
14476 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
14477
14478         * gcc.texi (G++ and GCC): Add Java and Chill.
14479         (Bug Critera): Don't list languages.
14480
14481         * gcc.texi (Incompatibilities): No longer claim most C compilers
14482         are K&R.
14483
14484         * gcc.texi (G++ and GCC): Update other front-ends list.
14485
14486 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
14487
14488         * i386.c (ix86_expand_setcc): Fix typo.
14489         (ix86_expand_movcc): Similarly.
14490
14491         * Band-aid until haifa's bitset implementation is nuked.
14492         * haifa-sched.c (extract_bitlst): New parameter for size of the
14493         bitset in bits.  All callers changed.  Avoid looking at undefined
14494         bits in the bitset.
14495         (edgeset_bitsize): New variable.
14496         (schedule_region): Initialize edgeset_bitsize.
14497
14498 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14499
14500         * Makefile.in (optabs.o): Depend on real.h
14501         (resource.o): Depend on insn-attr.h
14502
14503         * builtins.c (result_vector): Wrap prototype in macro conditions
14504         governing definition and use.
14505
14506         * c-common.c: Include tm_p.h.
14507
14508         * c-lex.c: Likewise.
14509
14510         * elfos.h: Constify a char*.
14511
14512         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
14513         (get_attr_length, shorten_branches, profile_after_prologue): Mark
14514         parameter with ATTRIBUTE_UNUSED.
14515
14516         * fold-const.c (exact_real_inverse): Wrap variable `i' in
14517         CHECK_FLOAT_VALUE.
14518
14519         * haifa-sched.c (schedule_insns): Mark parameter with
14520         ATTRIBUTE_UNUSED.
14521
14522         * optabs.c: Include real.h.
14523
14524         * real.h (ereal_atof): Add prototype arguments.
14525
14526         * resource.c: Include insn-attr.h.
14527
14528         * sdbout.c (sdbout_queue_anonymous_type,
14529         sdbout_dequeue_anonymous_types): Wrap in macro
14530         SDB_ALLOW_FORWARD_REFERENCES.
14531         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
14532         ATTRIBUTE_UNUSED.
14533
14534         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
14535
14536         * stupid.c: Include tm_p.h.
14537
14538         * tree.c (real_value_from_int_cst): Mark parameter with
14539         ATTRIBUTE_UNUSED.
14540
14541 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14542
14543         * i960-protos.h: New file.
14544
14545         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
14546         time warnings.
14547
14548         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
14549
14550 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14551
14552         * combine.c (expand_field_assignment): Do not discard SUBREGs
14553         while computing nonzero_bits.
14554
14555 2000-01-09  Nick Clifton  <nickc@cygnus.com>
14556
14557         * config/arm/arm.c: Fix compile time warnings about signed vs
14558         unsigned constants.
14559         * config/arm/arm.h: Fix compile time warnings about signed vs
14560         unsigned constants.
14561
14562 2000-01-09  Philip Blundell  <philb@gnu.org>
14563
14564         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
14565         than `ldm' with only one register.
14566         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
14567         only one register.
14568
14569         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
14570         clobbered.
14571
14572 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
14573
14574         * config/ns32k/ns32k.md (load or push effective address): Operand 1
14575         must have SImode.
14576
14577 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14578
14579         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
14580         assignment used as truth value.
14581
14582         * function.c (assign_temp): Mark parameter `dont_promote' with
14583         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
14584         PROMOTE_FOR_CALL_ONLY.
14585
14586         * genrecog.c (write_subroutine): Mark variable `operands' with
14587         ATTRIBUTE_UNUSED.
14588
14589         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
14590         ATTRIBUTE_UNUSED.
14591
14592         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
14593         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
14594
14595         * toplev.c (note_deferral_of_defined_inline_function): Likewise
14596         for `decl'.
14597
14598 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14599
14600         * config/c4x.h: Tidy up comments.
14601         * config/c4x.c: Likewise.
14602
14603 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
14604
14605         * fold-const.c (lshift_double, rshift_double): Handle
14606         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
14607
14608 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14609
14610         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
14611         in prepare_function_start().
14612
14613 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
14614
14615         * config/v850/v850.c (expand_epilogue): Interrupt functions no
14616         longer allocate extra stack for function calls.
14617
14618 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14619
14620         * config/c4x/c4x.md (*subqf3_set): Fix typo.
14621
14622 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14623
14624         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
14625
14626 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
14627
14628         * rs6000.c (processor_target_table): Add power3 as alias for 630.
14629         * aix43.h: Revert Aug 2 change.
14630         (HAS_INIT_SECTION): Define, not visible yet.
14631         (LD_INIT_SWITCH): Define, not visible yet.
14632         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
14633
14634         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
14635
14636         * collect2.c (main): Expand ld2 size further.
14637         (export_object_lst): Cast assignment to avoid warning.
14638         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
14639         (scan_prog_file, COFF): Do not collect initialization or
14640         finalization functions generated for entire shared object if
14641         init/fini support present.
14642
14643 2000-01-07  Nick Clifton  <nickc@cygnus.com>
14644
14645         * config/elfos.h: Tidy up formatting of marcos.  Make sure
14646         that .section directives are always prefixed by a tab.
14647
14648         * config/svr4.h: Add #include "elfos.h" and remove duplicate
14649         definitions.
14650
14651 2000-01-07  Matt Austern  <austern@sgi.com>
14652
14653         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
14654         expon.
14655
14656 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
14657
14658         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
14659         crtstuff.c.
14660         (crtbegin.o, s-crtS): Likewise.
14661
14662 2000-01-06  Richard Henderson  <rth@cygnus.com>
14663
14664         * alpha.md (adddi_2+1): Limit offset such that it will be
14665         loadable with a single ldah+lda pair.
14666         (adddi_2+2): Explicitly fail split if we can't make it work.
14667
14668 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
14669
14670         * protoize.c: Conditionally include unistd.h.
14671         (IS_SAME_PATH_CHAR): New macro.
14672         (IS_SAME_PATH): New macro.
14673         (CPLUS_FILE_SUFFIX): New macro.
14674         (cplus_suffix): New static variable.
14675         (is_abspath): New static function.
14676         (in_system_include_dir): Handle DOS style pathnames.
14677         (file_could_be_converted): Likewise.
14678         (file_normally_convertible): Likewise.
14679         (directory_specified_p): Likewise.
14680         (file_excluded_p): Likewise.
14681         (abspath): Likewise.
14682         (shortpath): Likewise.
14683         (referenced_file_is_newer): Likewise.
14684         (save_def_or_dec): Likewise.
14685         (do_processing): Likewise.
14686         (main): Likewise.
14687         (edit_file): Likewise. Use rename instead of link.
14688         (rename_c_file): Likewise. Don't rename syscalls file.
14689         (munge_compile_params): Define null device for DOS based systems.
14690         (process_aux_info_file): Use binary mode if appliable.
14691         (edit_file): Likewise.
14692         * invoke.texi (Running Protoize): Document C++ suffixes used.
14693
14694         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
14695         IS_DIR_SEPARATOR macros.
14696         * collect2.c: Likewise.
14697         * cppinit.c: Likewise.
14698         * dwarf2out.c: Likewise.
14699         * gcc.c: Likewise.
14700         * gcov.c: Likewise.
14701         * prefix.c: Likewise.
14702         * rtl.c: Likewise.
14703         * toplev.c: Likewise.
14704         * system.h: And move to here.
14705
14706         * prefix.c (update_path): Fix typo in variable name.
14707
14708 2000-01-06  Richard Henderson  <rth@cygnus.com>
14709
14710         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
14711         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
14712         (count_reg_sets_1, count_reg_references): Likewise.
14713         (flow_loops_level_compute): Start counting actual loop depth at 1.
14714         (flow_loops_find): Likewise.
14715         * local-alloc.c (update_equiv_regs): Likewise.
14716         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
14717
14718 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
14719
14720         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
14721         FIRST_PSEUDO_REGISTER
14722         * dwarf2out.c: Don't include frame.h
14723         * dwarfout.c: Likewise
14724         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
14725         frame.h
14726
14727 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
14728
14729         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
14730         dead registers.
14731
14732         * i386.c (movsf splitter): Fix typo in my last checkin.
14733
14734 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14735
14736         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
14737         own definition of this macro.
14738         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
14739         flag_data_sections or UNIQUE_SECTION_P are true.
14740
14741         * tm.texi (UNIQUE_SECTION): Document that it can be called for
14742         unitialised data decls.
14743
14744         * config/i386/winnt.c (i386_pe_unique_section): Cope with
14745         being called for uninitialised data.
14746
14747         * config/i386/interix.c (i386_pe_unique_section): Cope with
14748         being called for uninitialised data.
14749
14750         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
14751         for uninitialised data.
14752
14753         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
14754         for uninitialised data.
14755
14756         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
14757         for uninitialised data.
14758
14759         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
14760         (UNIQUE_SECTION_P): Always generate a unique section if
14761         flag_data_sections is true.
14762         (UNIQUE_SECTION): Also generate unique sections for
14763         uninitialised data.
14764         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
14765         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
14766         named_section().
14767
14768 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14769
14770         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
14771         SI, or DI.
14772
14773 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14774
14775         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
14776         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
14777         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
14778         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
14779         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
14780
14781         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
14782
14783 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
14784
14785         * c-decl.c (finish_enum): Simplify code to determine minimum and
14786         maximum values of the enum, and calculate the type.  Remove check
14787         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
14788         the DECL_INITIAL of each enumeration constant with a copy converted
14789         to the enumeration type.  When updating variant types, don't bother
14790         updating the type itself.
14791
14792         * c-typeck.c (build_binary_op): Simplify conditional expressions
14793         when weeding out spurious signed-unsigned warnings.  Add new
14794         spurious warning category: if the unsigned quantity is an enum
14795         and its maximum value fits in signed_type(result_type).  Update
14796         commentary.
14797         (build_conditional_expr): Warn here if one alternative is signed
14798         and the other is unsigned.
14799
14800 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14801
14802         * config/fr30/fr30.h: Remove extraneous comments.
14803
14804 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
14805
14806         * reload1.c (choose_reload_regs): When disabling a reload, also
14807         set reload_spill_index to -1.
14808
14809 2000-01-04  Joel Sherrill (joel@OARcorp.com>
14810
14811         * configure.in (m68*-*-rtemscoff*): New target, formal name for
14812         old m68*-*-rtems*.
14813         (m68*-*-rtemself*): New target.
14814         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
14815         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
14816         (sparc*-*-rtemself*): New target.
14817         (sparc*-*-rtems*): Now elf not a.out.
14818         * config/i386/rtems.h: Include config/rtems.h.
14819         * config/i386/rtemself.h: Include config/rtems.h.
14820         * config/i960/rtems.h: Include config/rtems.h.
14821         * config/m68k/rtems.h: Include config/rtems.h.
14822         * config/m68k/rtemself.h: Include config/rtems.h.
14823         * config/mips/rtems64.h: Include config/rtems.h.
14824         * config/pa/rtems.h: Include config/rtems.h.
14825         * config/rs6000/rtems.h: Include config/rtems.h.
14826         * config/sh/rtems.h: Include config/rtems.h.
14827         * config/sh/rtemself.h: Include config/rtems.h.
14828         * config/sparc/rtems.h: Include config/rtems.h.
14829         * config/sparc/rtemself.h: Include config/rtems.h
14830
14831 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
14832
14833         * final.c (shorten_branches): Correctly compute length of
14834         asms without operands.
14835
14836 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
14837
14838         * configure.in: Add pj target.
14839         * configure: Regenerate.
14840         * config/pj: New directory.
14841         * config/pj/lib1funcs.S: New file.
14842         * config/pj/linux.h: New file.
14843         * config/pj/pj.c: New file.
14844         * config/pj/pj.md: New file.
14845         * config/pj/pjl.h: New file.
14846         * config/pj/t-pj: New file.
14847         * config/pj/xm-pj.h: New file
14848
14849 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
14850
14851         * toplev.c (rest_of_compilation): Run shorten-branches before
14852         reg-stack for now.
14853
14854 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14855
14856         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
14857         macros so that they're consistent with their names.
14858         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14859         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14860
14861 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14862
14863         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
14864         modified inadvertently.
14865
14866 2000-01-04  Joel Sherrill <joel@OARcorp.com>
14867
14868         * configure.in (v850*-*-rtems*): New target.
14869         * configure: Regenerate.
14870         * config/v850/rtems.h: New file.
14871
14872 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
14873
14874         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
14875         (__gthread_key_create): Likewise.
14876         (__gthread_key_dtor):  Likewise.
14877         (__gthread_once): Fix logic.
14878         (__gthread_key_delete): Cast away constness.
14879
14880         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
14881         * invoke.texi: Document.
14882         * i386/mingw32.h (CPP_SPEC): Use.
14883         (LIBGCC_SPEC): Likewise.
14884         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
14885
14886 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14887
14888         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
14889         (HANDLE_PRAGMA_PACK): Undefine.
14890         (SLOW_UNALIGNED_ACCESS): Define.
14891
14892 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14893
14894         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14895         to default definition.
14896         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
14897         (store_fixed_bit_field): Call macro with word_mode and alignment.
14898         (extract_bit_field): Call macro with relevant mode and alignment.
14899         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14900         to default definition.
14901         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
14902         and alignment.
14903         (move_by_pieces_ninsns): Likewise.
14904         (clear_by_pieces): Likewise.
14905         (emit_push_insn): Likewise.
14906         (store_field): Call macro with relevant mode and alignment.
14907         (expand_expr): Likewise.
14908         (expand_expr_unaligned): Likewise.
14909
14910         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
14911         (SLOW_UNALIGNED_ACCESS): Define.
14912         (CASE_VECTOR_MODE): Always use 32-bit offsets.
14913         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
14914         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
14915         (toc_section): Likewise and .toc pseudo-op.
14916         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
14917         64-bit mode.
14918         (TEXT_SECTION_ASM_OP): Likewise.
14919         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
14920         32-bit offsets.
14921
14922         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
14923         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
14924         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
14925         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
14926         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
14927
14928 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
14929
14930         * regclass.c: Revert my Jan 4 change to loop cost computation.
14931
14932 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14933
14934         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
14935         compilation.
14936
14937 2000-01-04  Stan Cox  <scox@cygnus.com>
14938
14939         * haifa-sched.c (build_control_flow): Change unreachable simple
14940         loop test to check if current block has only one predecessor.
14941         (find_rgns): Initialize degree.  Use dest as degree index, not src.
14942
14943 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14944
14945         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
14946
14947         * calls.c (expand_call): Likewise for
14948         `old_stack_arg_under_construction'.
14949
14950         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
14951
14952         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
14953         `save_constant'.
14954
14955         * gcc.c (execute): Likewise for `ut' and `st'.
14956
14957         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
14958
14959         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
14960
14961         * jump.c (jump_optimize_1): Likewise for `temp2'.
14962
14963         * local-alloc.c (block_alloc): Likewise for `r1'.
14964
14965         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
14966
14967         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
14968         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
14969
14970         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
14971         and `set2'.
14972
14973         * reload.c (find_reloads): Likewise for `goal_alternative_number'
14974         and `goal_earlyclobber'.
14975
14976         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
14977
14978         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
14979
14980         * stupid.c (stupid_life_analysis): Likewise for `chain'.
14981
14982         * unroll.c (copy_loop_body): Likewise for `copy'.
14983
14984         * varasm.c (output_constructor): Likewise for `byte'.
14985
14986 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14987
14988         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
14989         all FP constants for constant->reg moves.
14990         (ix86_split_to_parts): Try to convert memory address into immediate
14991         when available in the constant pool.
14992         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
14993         moves.
14994         (LEGITIMATE_CONSTANT_P): Return 1.
14995         * i386.md (pushsf): New splitter to convert constant pool memory
14996         reference to immediate.
14997         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
14998         reload.
14999
15000 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
15001
15002         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
15003         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
15004         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
15005         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
15006         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
15007
15008 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
15009
15010         * ginclude/stdbool.h:  Support compilation as C++.
15011
15012 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
15013
15014         * fold-const.c (make_range): Don't try to reverse an unbounded range.
15015
15016 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
15017
15018         * regclass.c (regclass): Properly compute loop_cost.  Adjust
15019         comments.
15020
15021         * regclass.c: Fix minor whitespace problems.
15022
15023 2000-01-03  Anthony Green  <green@cygnus.com>
15024
15025         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
15026         Restore the pic register if required.
15027
15028 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
15029
15030         * c-common.c (format_char_info): Update comment.
15031         (check_format_info): Recognize 'z' modifier in the same way 'Z'
15032         was recognized.  Emit warning for formats new in ISO C99 only
15033         if flag_isoc9x is not set.
15034
15035 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
15036
15037         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
15038
15039 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
15040
15041         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
15042         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
15043         (make_compound_operation): Choose cheaper alternative between
15044         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
15045
15046         * regclass.c (op_costs): Remove global variable.
15047         (record_reg_classes): New parameter "op_costs" and "reg_pref".
15048         (record_operand_costs): Break out from ...
15049         (scan_one_insn): ... here.
15050         (dump_regclass): Make dumps nicer.
15051         (regclass): Dump preferrences choosed and changes done during passes.
15052
15053 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
15054
15055         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
15056
15057 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
15058
15059         * config/sparc/sparc.c (gen_df_reg): New function.
15060         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
15061         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
15062         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
15063         movtf_cc_reg_sp64+1): Use it.
15064
15065 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
15066
15067         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
15068         copied LABEL_DECLs.
15069
15070 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15071
15072         * config/i386/i386.c (ix86_expand_unary_operator): Function
15073         definition made void.
15074         (ix86_expand_binary_operator): Update outdated preceding comment.
15075         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
15076         prototype.
15077
15078         * config/i386/i386.c (override_options): Fix option-name typo.
15079
15080 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
15081
15082         * system.h (CEIL): Define.
15083         * builtins.c (CEIL): Remove.
15084         * expmed.c (CEIL): Likewise.
15085         * expr.c (CEIL): Likewise.
15086         * stor-layout.c (CEIL): Likewise.
15087
15088 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
15089
15090         * expr.c (store_constructor_field): Fix typo introduced with last
15091         gcc2 merge.
15092
15093 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
15094
15095         * tree.h (BINFO_N_BASETYPES): New macro.
15096
15097 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
15098
15099         * expmed.c (emit_store_flag): Prevent losing a pending stack
15100         adjust the same way we prevent losing queued increments.
15101
15102 See ChangeLog.2 for earlier changes.