OSDN Git Service

rework "make check" for fixincl
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-31  Bruce Korb  <bkorb@gnu.org>
2
3         * check.tpl: rework to use test result tree
4         * check.diff: No longer needed
5         * fixincl.x: regenerate
6         * inclhack.def:  add new tests
7         * tests/base/arch/i960/archI960.h:  New test result
8         * tests/base/curses.h: modified test result
9
10 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
11
12         * except.c (clear_function_eh_region): Do not free NULL.
13
14 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15
16         * flow.c (propagate_block): If block has no successors, stores to
17         frame are dead if not used.
18
19 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
20
21         * stmt (expand_end_case): Reorder conversion sequence for jump
22         table to avoid extra truncations.
23
24 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
25
26         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
27         in the block is more than just a simple conditional branch.
28         (noce_process_if_block): Similarly.
29
30 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
31
32         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
33         queue.
34
35 2000-05-30  Michael Meissner  <meissner@redhat.com>
36
37         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
38         instructions.  Treat LO_SUM operations as loading the full integer
39         constant.
40
41 2000-05-30  Richard Henderson  <rth@cygnus.com>
42
43         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
44
45 2000-05-30  Richard Henderson  <rth@cygnus.com>
46
47         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
48
49 2000-05-30  Bruce Korb  <bkorb@gnu.org>
50
51         * fixinc/tests/*:  Added expected result files for fixinc's make check
52         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
53
54 2000-05-30  Richard Henderson  <rth@cygnus.com>
55
56         * config/alpha/alpha.md (*setne_internal): Use match_operator
57         instead of working down from insn.
58
59 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
60
61         * invoke.texi (-Wtraditional): Update WRT function macros.
62
63 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
64
65         * except.c (free_exception_table): Do not free NULL.
66
67 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
68
69         * cpplib.c (do_if): Don't save and restore only_seen_white here.
70         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
71         and skipping here.
72
73 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
74
75         * flow.c (mark_used_reg): If a register is unconditionally live, 
76         remove any conditional death information.
77
78 2000-05-29  Richard Henderson  <rth@cygnus.com>
79
80         * final.c (current_output_insn): New.
81         (final_scan_insn): Set it.
82         * output.h: Declare it.
83
84 2000-05-29  Richard Henderson  <rth@cygnus.com>
85
86         * stor-layout.c (finalize_record_size): Fix typo.
87
88         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
89         if nlabel is null.
90
91 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
92
93         * cpplib.h (cpp_reader): Remove if_stack.  Change
94         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
95         * cpphash.h (struct ihash): Change control_macro to a
96         cpp_hashnode * and shorten name to cmacro.
97         Add NEVER_REINCLUDE constant.
98
99         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
100         Examine the cmacro node directly, no need to call cpp_defined.
101         (_cpp_execute_include, read_include_file): Set cmacro to
102         NEVER_REINCLUDE, not U"".
103         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
104         (cpp_get_token): If pfile->skipping is true, discard text and
105         keep scanning until we hit a directive; don't expand macros.
106
107         * cpplib.c (struct if_stack): Remove if_succeeded, add
108         was_skipping. Change control_macro to a cpp_hashnode * and
109         shorten name to cmacro.  Remove typedef IF_STACK.
110         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
111         (conditional_skip, skip_if_group,
112         consider_directive_while_skipping): Delete.
113         (push_conditional): New.
114         (_cpp_handle_directive): Don't process directives other than
115         conditionals if we are skipping.
116
117         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
118         Update to new scheme.
119         (validate_else): Skip rest of line here, unconditionally.
120         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
121         pfile->skipping off.
122
123         (all): Remove `scare quotes' from error messages.
124
125 2000-05-29  Richard Henderson  <rth@cygnus.com>
126
127         * function.c (emit_return_into_block): New line_note arg; emit it.
128         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
129         for the close brace to accompany HAVE_return.  Move all line notes
130         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
131
132 2000-05-29  Richard Henderson  <rth@cygnus.com>
133
134         * longlong.h [__alpha] (count_leading_zeros): New.
135         (count_trailing_zeros): New.
136         (COUNT_LEADING_ZEROS_0): New.
137
138         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
139         (alpha_split_conditional_move): New.
140         * config/alpha/alpha-protos.h: Prototype them.
141         * config/alpha/alpha.h (PREDICATE_CODES): Update.
142         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
143         * config/alpha/alpha.md: Update ffs cix commentary.
144         (*ze_and_ne): New.
145         (*nabssf2, *nabsdf2): New.
146         (*mov[qhsd]icc_internal): Use add_operand.
147         (if_then_else constant splitters): New.
148         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
149         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
150
151 2000-05-29  Richard Henderson  <rth@cygnus.com>
152
153         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
154         a constant to NEG or NOT when conditions allow.
155
156         * combine.c (combine_simplify_rtx): Don't create an if_then_else
157         unless both args are general_operand.  Don't canonicalize plus
158         to ior unless it helps.
159
160         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
161         instead track register_life_up_to_date.  Toggle no_new_pseudos
162         around if_convert.  
163
164 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
165
166         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
167         so output_operand doesn't see them.
168
169 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
170
171         * lcm.c (make_preds_opaque): Fix comment.
172         (optimize_mode_switching): Use NORMAL_MODE instead of 
173         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
174         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
175         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
176         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
177         (MODE_USES_IN_EXIT_BLOCK): Delete.
178         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
179         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
180         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
181         (MODE_NEEDED): Don't look for USE.
182         (EPILOGUE_USES): Define.
183
184 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
185
186         * mklibgcc.in (all): Variable initialised to `libgcc'.
187
188 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
189
190         * toplev.h (skip_leading_substring): New macro.
191         * toplev.c (decode_f_option): Use skip_leading_substring instead
192         of strncmp.
193         (decode_W_option): Likewise.
194
195 2000-05-28  Nick Clifton  <nickc@cygnus.com>
196
197         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
198         modify reg_names.
199
200 2000-05-28  Richard Henderson  <rth@cygnus.com>
201
202         * regclass.c (record_operand_costs): Protect reg_changes_size
203         with CLASS_CANNOT_CHANGE_SIZE.
204
205         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
206
207 2000-05-28  Richard Henderson  <rth@cygnus.com>
208
209         * function.c (diddle_return_value): A pcc-style struct return
210         returns a pointer.
211
212 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
213
214         * cppfiles.c: Read files in, using mmap if possible, then
215         prescan them separately.
216         (read_file, read_with_read): New functions.
217         * cpplex.c: Don't define UCHAR_MAX.
218         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
219         the file here.
220
221         * cppinit.c (handle_option): Automatically define __cplusplus,
222         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
223         the respective -lang switch.
224
225         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
226         prototype): Move to...
227         * cpplib.h: ... here.  Rename struct hashnode to struct
228         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
229         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
230
231 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
232
233         * config/rs6000/rs6000.md (movsi): Constify 'name'.
234
235         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
236         (class_can_change_size): New variable.
237         (reg_changes_size): New variable.
238         (init_reg_sets_1): Initialise class_can_change_size.
239         (record_operand_costs): Remove subreg_changes_size.
240         Don't pass it around.  Instead update reg_changes_size.
241         (regclass): Initialise and free reg_changes_size.  If a register
242         changes size, don't preference it to a class that contains
243         registers that can't change size.
244         (record_reg_classes): Don't look at subreg_changes_size.
245
246 2000-05-27  Richard Henderson  <rth@cygnus.com>
247
248         * print-rtl.c (reg_names): Remove const.
249         * regclass.c (reg_names): Likewise.
250         * regs.h (reg_names): Likewise.
251         * hard-reg-set.h (reg_names): Likewise.
252
253 2000-05-27  Richard Henderson  <rth@cygnus.com>
254
255         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
256
257 2000-05-27  Richard Henderson  <rth@cygnus.com>
258
259         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
260         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
261         (alpha_expand_prologue): Emit prologue_mcount if needed.
262         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
263         * config/alpha/alpha.md (prologue_mcount): New.
264         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
265         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
266         * config/alpha/netbsd.h: Likewise.
267
268 2000-05-27  Richard Henderson  <rth@cygnus.com>
269
270         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
271         change to config/elfos.h.
272
273 2000-05-27  Richard Henderson  <rth@cygnus.com>
274
275         * Makefile.in (resource.o): Depend on except.h.
276         * except.h (output_exception_table_data): Prototype.
277         * genconfig.c (gen_peephole2): Prototype.
278         * genemit.c (main): Include ggc.h.
279         * genoutput.c: Revert parts of last change: include errors.h
280         (main): Set progname.
281         * recog.c: Include hard-reg-set.h before recog.h.
282         * resource.c: Include except.h.
283
284         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
285         with RTX_CODE.
286         (alpha_write_linkage): Protect with BUFSIZ.
287         (alpha_need_linkage): Update prototype.
288         * config/alpha/alpha.c (function_arg): Move VMS code here.
289         (alpha_links_base): Remove.
290         (alpha_links): New.
291         (mark_alpha_links_node, mark_alpha_links): New.
292         (alpha_write_one_linkage): New.
293         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
294         (alpha_write_linkage): Use splay_tree_foreach.
295         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
296         to get the linkage symbol.
297         (call_value_vms): Likewise.
298         * config/alpha/elf.h (output_file_directive): Remove decl.
299         (ctors_section, dtors_section): Prototype.
300         (sbss_section, sdata_section): Prototype.
301         * config/alpha/vms.h (FUNCTION_ARG): Remove.
302         (readonly_section, link_section, literals_section): Prototype.
303         (ctors_section, dtors_section): Prototype.
304         (vms_valid_decl_attribute_p): Remove decl.
305         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
306
307 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
308
309         * reload.c (get_secondary_mem): Don't widen floating-point modes.
310
311         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
312         substituting the REG in a (subreg:X (reg:Y ...)).
313
314 2000-05-28  Neil Booth  <NeilB@earthling.net>
315
316         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
317         first token of a line BOL.  Update EOF code for this.
318         Remove illegal directive check - it appears in the (not
319         yet committed) caller.
320         * cpplib.h (BOL): New flag.
321
322 2000-05-28  Neil Booth  <NeilB@earthling.net>
323
324         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
325         (_cpp_free_toklist): No comment space to free.
326         (expand_comment_space): Remove.
327         (save_comment_space): Place the comment in the current token and
328         not in a separate comment space.
329         (_cpp_lex_line): Save comments during plain code and #define
330         directives only.
331         * cpplib.h (struct _cpp_toklist): Remove comment space.
332
333 2000-05-28  Neil Booth  <NeilB@earthling.net>
334
335         * cppexp.c (parse_assertion): Supply extra argument to
336         _cpp_init_toklist.
337         * cpplib.c (do_assert, do_unassert): Similarly.
338         * cpphash.h (_cpp_init_toklist) Update.
339         (_cpp_expand_token_space): New.
340         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
341         * cpplex.c (_cpp_init_toklist): New argument.
342         (parse_string2): New argument multiline_ok.
343         (spell_token): Take a const cpp_token *.
344         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
345         (SPELL_ macros): Replace with enum.
346         (expand_token_space): Replace with _cpp_expand_token_space.
347         Take COUNT argument.
348         (IS_DIRECTIVE): Update.
349         (_cpp_lex_line): Update token structure before parsing number.
350         Don't assume start at beginning of token list.
351         (save_comment): Use INIT_TOKEN_NAME.
352
353 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
354
355         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
356         -Wmissing-prototypes.
357         * configure: Regenerate.
358         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
359
360         * builtins.c, calls.c: Change all instances of gen_call_* or
361         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
362         * calls.c (struct_value_size_rtx): Separate definition from
363         initialization to avoid unused variable warning.
364
365         * genflags.c (gen_macro): New function.
366         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
367         (gen_nonproto): Delete.
368         (gen_insn): Put all insns on the same obstack.
369         (main): Generate prototypes for everything unconditionally.
370
371         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented 
372         out check for wchar_t.
373         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
374         * system.h: Add infrastructure for defining missing   
375         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback  
376         definitions of UCHAR_MAX and SSIZE_MAX.
377         * configure: Regenerate.
378         * config.in: Regenerate.
379
380         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
381         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
382         headers.
383         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
384         libgcc2.a, or libgcc1.null.
385
386 2000-05-27  Richard Henderson  <rth@cygnus.com>
387
388         * Makefile.in (recog.o): Don't depend on resource.h.
389         * recog.c: Don't include resource.h.
390         (recog_last_allowed_insn): Remove.
391         (recog_next_insn): Remove.
392         (struct peep2_insn_data): New.
393         (peep2_insn_data, peep2_current): New.
394         (peep2_next_insn): New.
395         (peep2_regno_dead_p, peep2_reg_dead_p): New.
396         (peep2_find_free_register): New.
397         (peephole2_optimize): Track life information by insn as we go.
398         * recog.h: Update declarations.
399         * resource.c (find_free_register, reg_dead_p): Remove.
400         * resource.h: Remove their declarations.
401         * toplev.c: Include hard-reg-set.h before recog.h.
402
403         * genconfig.c (max_insns_per_peep2): New.
404         (gen_peephole2): New.
405         (main): Call it.
406         * genemit.c (output_peephole2_scratches): Generate calls to
407         peep2_find_free_register; adjust surrounding code.
408         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
409         * genrecog.c (change_state): Don't track last_insn.
410         (write_action): Write into *_pmatch_len before accepting.
411         (write_tree): Adjust peephole2_insns and subroutines to match.
412
413         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
414
415         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
416         (hard_int_register_operand): New.
417         * config/alpha/alpha-protos.h: Declare it.
418         * config/alpha/alpha.h (PREDICATE_CODES): Update.
419         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
420         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
421
422 2000-05-27  Richard Henderson  <rth@cygnus.com>
423
424         * function.c (thread_prologue_epilogue_insns): Don't move the
425         line note at the head of the chain.  Only force a lineno note
426         before the end of block 0.
427
428 2000-05-27  Richard Henderson  <rth@cygnus.com>
429
430         * gensupport.c (collect_insn_data): Record the maximum number
431         of alternatives, not the last seen.
432
433         * genoutput.c: Don't include errors.h.
434         (struct data): Add lineno member.
435         (have_error): New.
436         (scan_operands): Use message_with_line instead of error.
437         (validate_insn_alternatives): Likewise.
438         (gen_insn): Accept and store the pattern's line number.
439         (gen_peephole, gen_expand, gen_split): Likewise.
440         (main): Don't set progname.  Pass line_no to gen_foo.
441
442 2000-05-27  Richard Henderson  <rth@cygnus.com>
443
444         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
445         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
446         * config/d30v/d30v.md (attr predicable): New.
447         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
448         (andsi3*): Unify into one pattern.
449         (iorsi3*, xorsi3*): Likewise.
450         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
451         conditional return.
452         (old cond_exec patterns): Remove.
453         (define_cond_exec): New.
454
455 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
456
457         * tree.h (TREE_CODE_LENGTH): New macro.
458         * c-common.c (c_find_base_decl): Use it.
459         * expr.c (safe_from_p): Likewise.
460         * print-tree.c (print_node): Likewise.
461         * tree.c (make_node, copy_node, get_identifier): Likewie.
462         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
463         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
464         * fold-const.c (make_range): Likewise.
465         (fold): Likewise; also use first_rtl_op.
466         * c-iterate.c (collect_iterators): Use first_rtl_op.
467         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
468         Use IS_EXPR_CODE_CLASS.
469         (preexpand_calls): Likewise.
470         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
471         and TREE_CODE_LENGTH.
472         * stmt.c (warn_if_unused_value): If no operands, no unused value.
473
474 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
475
476         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
477         than '%1(%*)'.
478         (movdi_internal64): Likewise.
479
480         * config/rs6000/rs6000.md: Correct order of operands for DImode
481         boolean patterns.
482
483         * config/rs6000/rs6000.c (boolean_or_operator): New function.
484         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
485         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
486         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
487         boolean_operator for the boolean patterns without NOTs.
488
489         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
490         from reg_or_u_cint_operand.  Change comment and behaviour.
491         (logical_operand): Clean up, add assertion.
492         (non_logical_cint_operand): Also check for
493         reg_or_logical_cint_operand.
494         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
495         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
496         in the expander.
497         (xorsi3): Likewise.
498         (iordi3): Likewise.
499         (xordi3): Likewise.
500
501 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
502
503         * tree.h (struct record_layout_info): Rename to (struct
504         record_layout_info_s).
505         * stor-layout.c (start_record_layout): Replace
506         `record_layout_info' with `record_layout_info_s'.
507
508 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
509
510         * flow.c (find_label_refs): New function.
511         (find_basic_blocks_1): Call it for each alternative of a call 
512         placeholder.
513
514 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
515
516         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
517         of get_pc.
518
519 2000-05-25  Richard Henderson  <rth@cygnus.com>
520
521         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
522         so strict about DImode.
523         (alpha_swapped_comparison_operator): Likewise.
524         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
525         any integer output mode.
526         (*setcc_internal): Likewise.
527         (*setcc_swapped_internal): Likewise.
528         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
529         (*mov[qhs]icc_internal): New.
530         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
531
532 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
533
534         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
535
536 2000-05-25  Richard Henderson  <rth@cygnus.com>
537
538         * bb-reorder.c (reorder_block_def): Reorder elements for size.
539         Remove add_jump; add next; replace flags with visited.
540         (rbd_init): Remove.
541         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
542         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
543         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
544         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
545         (RBI): New.
546         (reorder_index, reorder_last_visited): Remove.
547         (skip_insns_after_block): Rewrite to use a switch.
548         (get_common_dest): Remove.
549         (chain_reorder_blocks): Remove.
550         (record_effective_endpoints): Split out from reorder_basic_blocks.
551         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
552         (make_reorder_chain_1): Renamed from old make_reorder_chain.
553         Only construct the reorder chain, do not move insns.  Try harder
554         to tail recurse.
555         (label_for_bb, emit_jump_to_block_after): New.
556         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
557         and adjust the jump insns appropriately.  Fixup basic_block_info.
558         (verify_insn_chain): Always define.
559         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
560         in allocation size.
561         (make_new_scope): Don't write zeros to calloc'd space.
562         (build_scope_forest): Rely on xrealloc to DTRT.
563         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
564         profile_arc_flag.  Streamline EH test.
565
566         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
567         * basic-block.h: Declare them.
568
569 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
570
571         * emit-rtl.c (reset_used_decls): New function.
572         (unshare_all_rtl_again): Call it.
573
574 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
575
576         * cpplex.c (maybe_macroexpand): Warn about function-like
577         macros used in non-function context, if -Wtraditional.
578
579 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
580
581         * recog.c (peephole2_optimize): Use INSN_P.
582
583 2000-05-25  Richard Henderson  <rth@cygnus.com>
584
585         * ifcvt.c (seq_contains_jump): New.
586         (noce_try_store_flag_constants): Use it to fail conversion.
587         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
588
589 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
590
591         * except.h (can_throw): Declare it.
592         * except.c (can_throw): Give it external linkage.
593         * resource.c (find_dead_or_set_registers): Use can_throw.
594         
595 2000-05-25  Richard Henderson  <rth@cygnus.com>
596
597         * flow.c (mark_set_1): Don't record conditionally dead memory.
598
599 2000-05-25  Jan Hubicka  <jh@suse.cz>
600
601         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
602         and pc_set at the place of simplejump_p and condjump_p.
603         * cse.c (record_jump_equiv): Likewise.
604         * emit-rtl.c (emit): Likewise.
605         * explow.c (find_next_ref): Likewise.
606         * flow.c (tidy_fallthru_edge): Likewise.
607         (init_propagate_block_info): Likewise.
608         * gcse.c (delete_null_pointer_checks): Likewise.
609         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
610         dead_or_predicable): Likewise.
611         * integrate.c (copy_insn_list): Likewise.
612         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
613         for_each_insn_in_loop, check_dbra_loop, get_condition,
614         insert_bct, load_mems): Likewise.
615         * resource.c (find_dead_or_set_registers): Likewise.
616         * sibcalls.c (simplejump_p): Likewise.
617         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
618
619 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
620
621         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
622         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
623         when unaligned.
624         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
625         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
626         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
627         * rs6000.md: Name various internal patterns.
628
629 2000-05-25  Jan Hubicka  <jh@suse.cz>
630
631         * jump.c (invert_exp_1): Remove first argument, use pc_set
632         to get the expression.
633         (redirect_exp): Make static; redirect only the pc_set expression,
634         remove first argument.
635         (invert_exp): Remove first argument, make static.
636         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
637         any_onlyjump at most places where we originaly did condjump_p
638         and simplejump_p.
639         (jump_back_p, follow_jumps, thread_jumps): Likewise.
640         (delete_barrier_succesors): Use pc_set.
641         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
642         calls of invert_exp and redirect_exp.
643         * rtl.h (redirect_exp, invert_exp): Remove.
644         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
645
646 2000-05-25  Richard Henderson  <rth@cygnus.com>
647
648         * stmt.c (expand_end_bindings): Fix thinko last change.
649
650 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
651             Andrew Haley  <aph@cygnus.com>
652
653         * except.c  (func_eh_entry): Add emitted field.
654         (new_eh_region_entry): Set emitted field to 0;
655         (output_exception_table_entry): Only emit previously un-emitted data,
656         and send it to the eh_data section.
657         (output_exception_table): Break out common parts. Output
658         exception table for entire compilation unit to eh_data section.
659         (output_exception_table_data): Common parts of output_exception_table.
660         Send output to eh_data section.
661         (output_function_exception_table): Output exception table data for
662         a single function to eh_data section.
663         (free_exception_table): New external to free the table.
664         * except.h (free_exception_table): Add prototype.
665         (output_function_exception_table): Add prototype.
666         * final.c (final_end_function): Output function exception table
667         for IA64_UNWIND_INFO.
668         (final_scan_insn): Emit any unwind directives for an insn.
669
670         * frame-dwarf2.c: New file containing all DWARF 2 specific code
671         from frame.c.
672         * frame.c: Remove all DWARF 2 specific code.
673         * config/ia64/frame-ia64.c: New file.
674         (gthread_stuff): Make all gthread available with 
675         IA64_UNWIND_INFO.
676         (dwarf_fde): Define an IA64 struct for dwarf_fde.
677         (__register_frame_info, __register_frame): Move to common area of file.
678         (__register_frame_info_table, __register_frame_table): Move to common i
679         area.
680         (__deregister_frame_info, __deregister_frame): Move to common area.
681         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
682         (read_uleb128): New version for ia64.
683         (get_unwind_record): Read the next IA-64 unwind record.
684         (read_R_record): Read a region header record.
685         (process_a_b_reg_code): X record helper.
686         (read_X_record): Read an X format record.
687         (read_B_record): Read a B format record.
688         (P3_record_types): List of record types matching the P3 format.
689         (P7_record_types): List of record types matching the P7 format.
690         (P8_record_types): List of record types matching the P8 format.
691         (read_P_record): Read a P format record.
692         (init_ia64_reg_loc): Set default fields for a register.
693         (init_ia64_unwind_frame): Set defaults for all register records.
694         (execute_one_ia64_descriptor): Execute one descriptor record.
695         (rse_address_add): Calculate the position of a local reg in memory.
696         (normalize_reg_loc): Turn a location descriptor into a memory address.
697         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls 
698         within a specified PC offset range.
699         (get_real_reg_value): Given a register location, retrieve its value.
700         (set_real_reg_value): Change the value of a register location.
701         (copy_reg_value): Copy reg values, if needed.
702         (copy_saved_reg_state): Copy all registers that need to be copied.
703         (process_state_between): Normalize all frame register records that
704         fall within the specified PC range.
705         (frame_translate): Take a processed frame description, and turn 
706         everything into addresses.
707         (build_ia64_frame_state ): Find and create frame state record for a PC.
708         (get_personality): Get the personality routine for a given frame.
709         (get_except_table): Get the exception table for a given frame.
710         (record_name): Unwind record names for debugging.
711         (print_record): Print and unwind record.
712         (print_all_records): Print an entire unwind image.
713         (__ia64_backtrace): Print a backtrace.
714         (ia64_backtrace_helper): New function.
715         (__register_frame_info_aux): New function.
716         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
717
718         * frame.h (enum unw_record_type): New unwind record types.
719         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
720         (struct unw_r_record, unwind_record): New unwind record structs.
721         (struct unwind_info_ptr): Unwind information layout.
722         (IA64_UNW_LOC_TYPE_*): Macros for different types for location 
723         descriptors.
724         (struct ia64_reg_loc): Register location description.
725         (struct ia64_frame_state): Location of all registers in a frame.
726         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
727         * libgcc2.c (__ia64_personality_v1): Personality routine.
728         (__calc_caller_bsp): Calculate the bsp register for the caller's
729         frame.
730         (ia64_throw_helper): Figure out who to return to and set up the 
731         registers.
732         (__throw): Throw routine.
733
734         * output.h (assemble_eh_align, assemble_eh_label): New functions
735         to generate EH info where we want it.   
736         (assemble_eh_integer): New function.
737         * toplev.c (compile_file): Output module level exception table for
738         non-ia64 targets.
739         (main): Set exceptions_via_longjump and flag_new_exceptions based 
740         on IA64_UNWIND_INFO too.
741
742         * varasm.c (assemble_eh_label): Generate a label via
743         ASM_OUTPUT_EH_LABEL if it has been specified.
744         (assemble_eh_align): Generate an alignment directive via 
745         ASM_OUTPUT_EH_ALIGN if it has been specified.
746         (assemble_eh_label): Generate an integer value via
747         ASM_OUTPUT_EH_type if they have been specified.
748         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
749         (ia64_init_builtins): Add __builtin_ia64_bsp
750         and __builtin_ia64_flushrs.     
751         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
752         IA64_BUILTIN_FLUSHRS.
753         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
754         IA64_BUILTIN_FLUSHRS.
755
756         * config/ia64/ia64.md (flushrs): New insn to flush the register
757         stack.  Add to unspec list.
758
759         * config/ia64/crtbegin.asm (frame_object): Change size.
760         (__do_frame_setup_aux): New function.
761         * config/ia64/crtend.asm: call __do_frame_setup_aux.
762         * config/ia64/t-ia64 (LIB2ADDEH): Add.
763         * Makefile.in (LIB2ADDEH): Add.
764         (LIB2ADD): Use LIB2ADDEH.
765         
766 2000-05-24  Richard Henderson  <rth@cygnus.com>
767
768         * recog.c (offsettable_address_p): If mode size is zero, assume
769         BIGGEST_ALIGNMENT.
770
771 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
772
773         * configure.in: Check for -Wno-long-long option support and improve
774         handling of warning CFLAGS for stages 1 and 2.
775         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
776         * configure: Regenerate.
777
778 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
779
780         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
781         * contrib.texi: New file.
782
783 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
784
785         * loop.c (basic_induction_var): Avoid double recording of an increment.
786
787 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
788
789         * Back out this patch:
790         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
791           * loop.h (struct induction): Add multi_insn_incr.
792           * loop.c (basic_induction_var): New multi_insn_incr argument.
793           Set it if we search back through previous insns for the biv.
794           (record_biv): New multi_insn_incr argument; fill in struct induction.
795           (strength_reduce): Discard an iv with multiple bivs, any of
796           which require multiple insns to increment.
797
798         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
799
800 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
801
802         * rtl.h (loc_mentioned_in_p): Declare.
803         * reload.c (loc_mentioned_in_p): Moved from here...
804         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
805         Fix loop increment for 'E' handling.
806         * loop.c (strength_reduce): When doing biv->giv conversion,
807         take multi-insn biv increments into account.
808
809 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
810
811         * stmt.c (expand_end_bindings): Look through NOTEs to find a
812         BARRIER.
813
814 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
815
816         * calls.c (expand_call): Handle cleanups in tail-recursion
817         arguments analagously to cleanups in sibling calls.
818
819 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
820
821         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
822         All callers changed.
823
824 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
825
826         * expr.c (expand_assignment, store_expr, expand_expr,
827         expand_expr_unaligned): Set in_check_memory_usage while emitting
828         chkr_check_addr libcall.
829
830 2000-05-24  Nick Clifton  <nickc@cygnus.com>
831
832         * fold-const.c (extract_muldiv): When constructing a
833         multiplier/divisor, do not expect const_binop to correctly
834         determine if overflow has occured, so check explicitly.
835
836 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
837
838         * c-decl.c (build_enumerator): Don't modify the value's type,
839         convert it.
840
841 2000-05-24  Andreas Jaeger  <aj@suse.de>
842
843         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
844
845 2000-05-24  Eric Christopher <echristo@cygnus.com>
846
847         * configure.in: Redefine inhibit_libc conditions.
848         * libgcc2.c: Remove inhibit_libc conditional define.
849         * configure: Regenerate.
850
851 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
852
853         * configure.in:  For --enable-languages=LIST, check for empty LIST.
854         * configure:  Regenerate.
855
856 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
857
858         * pdp11.h (STACK_BOUNDARY): Define.
859
860 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
861
862         * ifcvt.c (if_convert): Update life info globally.
863
864 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
865
866         * emit-rtl.c (unshare_all_decls): New function.
867         (unshare_all_rtl): Call it.
868
869 2000-05-23  Nick Clifton  <nickc@cygnus.com>
870
871         * configure.in: Treat 'strongarm' as if it were 'arm' when
872         determining cpu type.
873
874         * configure: Regenerate.
875
876         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
877         where constant strings are involved.
878
879         * config/arm/arm.h (arm_condition_codes): Change type to 'const
880         char *'.
881
882         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
883         cases where constant strings are involved.
884
885 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
886
887         * config/sh/sh.c (gen_far_branch, split_branches): Update
888         to reflect new prototypes for redirect_jump and invert_jump.
889         (sh_insn_length_adjustment): Get rid of const warnings.
890
891 2000-05-23  Kazu Hirata  <kazu@hxi.com>
892
893         * invoke.texi (Options for Debugging Your Program or GCC): Update
894         the names of dump files.
895
896 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
897
898         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
899         * configure: Regenerated.
900
901 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
902
903         * simplify-rtx.c (SIGN_EXTEND): New macro.
904         (simplify_unary_operation, simplify_binary_operation, 
905         simplify_relational_operation): Use SIGN_EXTEND.  Make low
906         halves of (low, high) pairs unsigned if they weren't already.       
907         (simplify_ternary_operation): Cast INTVAL to unsigned before
908         comparing to a MODE_BITSIZE.
909
910 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
911
912         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
913         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
914         
915         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
916         gcc_AC_NEED_DECLARATIONS.
917
918         * dwarfout.c: Don't prototype time().
919
920         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
921
922         * system.h: Likewise.
923
924         * toplev.c: Likewise.
925
926 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
927
928         * c-decl.c (pushdecl): Invert sense of test for non-global types.
929
930 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
931
932         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
933
934 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
935
936         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
937
938 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
939
940         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
941         (alpha_start_function): Never write ..ng label if VMS or NT.
942         (alpha_align_insns): Remove GP_IN_USE arg.
943         Alignment now unsigned.
944         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
945         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
946         and two define_insn's.
947
948 2000-05-22  Richard Henderson  <rth@cygnus.com>
949
950         * combine.c (simplify_comparison): Use trunc_int_for_mode.
951
952 2000-05-22  Richard Henderson  <rth@cygnus.com>
953
954         * stor-layout.c (place_field): Change rli->size to rli->offset.
955
956 2000-05-22  Richard Henderson  <rth@cygnus.com>
957
958         * function.c (thread_prologue_and_epilogue_insns): Make sure 
959         existing line number notes appear after the prologue.
960
961 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
962
963         * config/alpha/alpha.c (alpha_fnname): New static variable.
964         (print_operand, case '~'): New case.
965         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
966         (alpha_start_function): Set alpha_fnname.
967         Write "ng" label if no ldgp; don't write ldgp insn.
968         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
969         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
970
971 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
972
973         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
974         on deleted labels.
975
976 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
977
978         * varasm.c (eh_frame_section): Revert change to argument list.
979
980 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
981
982         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
983         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
984         
985         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
986         dangling "else" that causes "break" to be conditional.
987         Also remove unneeded code at start.
988
989 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
990
991         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
992         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
993         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
994
995 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
996
997         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
998         just one argument.
999
1000 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1001
1002         * alias.c (record_component_aliases): New function.
1003         * tree.h: Clean up some declarations and comments.
1004         (record_component_aliases): New declaration.
1005         * tree.c (get_alias_set): If type and has alias set, use it.
1006
1007 2000-05-22  Richard Henderson  <rth@cygnus.com>
1008
1009         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
1010         IF_THEN_ELSE to a setcc form.
1011         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
1012
1013 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1014
1015         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
1016         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
1017
1018 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1019
1020         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
1021         not a PARALLEL.
1022
1023 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
1024
1025         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
1026         * config/mn10300/mn10300.c (print_operand): Likewise.
1027
1028         * final.c (split_double): Right shift of negative values is not
1029         portable.
1030
1031         * ifcvt.c (if_convert): Scan and kill dead code.
1032
1033         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
1034
1035 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
1036
1037         * diagnostic.c: Eliminate implicit int.
1038         * except.c, gcc.c: Add static prototypes.
1039         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
1040         * gensupport.c (process_rtx): Use XVEC to initialize vector
1041         slot of 'split'.
1042
1043         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static 
1044         debug_reg_names instead of static reg_names.  If not, define
1045         global reg_names.
1046         * regclass.c: Don't define global reg_names unless
1047         DEBUG_REGISTER_NAMES is defined.
1048
1049         * reload1.c (order_regs_for_reload): Remove unused variable.
1050         * varasm.c: Include output.h after defaults.h.  Define
1051         eh_frame_section as function of no args, not of unspecified args.
1052
1053         * gcc.c: Constify argbuf; arguments to store_arg,
1054         process_command, main; elements of struct command and struct
1055         switchstr; local variables in execute, process_command, main.
1056
1057 2000-05-20  Bruce Korb  <bkorb@gnu.org>
1058
1059         * fixinc/inclhack.def:  many applications of c_fix=format + tests
1060         * fixinc/check.diff:  regenerated
1061         * fixinc/fixincl.x:  regenerated
1062
1063 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1064
1065         * alias.c: Clarify some comments.
1066         (record_base_value): REGNO is unsigned.
1067         * rtl.h (record_base_value): Likewise.
1068
1069         * alias.c (aliases_everything_p): Don't special-case QImode here.
1070         * c-common.c (c_get_alias_set): Do it here.
1071         Handle BIT_FIELD_REF by getting alias info for arg.
1072         Use POINTER_TYPE_P.
1073
1074 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
1075
1076         * mklibgcc.in: Restore rule to create ${dir}.
1077
1078 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
1079
1080         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
1081         GCC_FOR_TARGET used by MULTILIBS.
1082         * mklibgcc.in: Make sure each .o file depends on the
1083         directory it will be in.
1084         Make the multilib directory depends libgcc.
1085
1086 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
1087
1088         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
1089
1090 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
1091
1092         * fold-const.c (make_range): Handle degenerated intervals.
1093         Fixes c-torture/execute/991221-1.c
1094
1095 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1096
1097         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
1098         * reload.c (find_equiv_reg): Likewise.
1099         * alias.c (init_alias_analysis): Likewise.
1100         Only call prologue_epilogue_contains on insns.
1101         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
1102         * bb-reorder.c (hard-reg-set.h): Include earlier.
1103         * haifa-sched.c (hard-reg-set.h): Likewise.
1104         * ifcvt.c (hard-reg-set.h): Likewise.
1105         * local-alloc.c (hard-reg-set.h): Likewise.
1106         * loop.c (hard-reg-set.h): Likewise.
1107         * predict.c (hard-reg-set.h): Likewise.
1108         * regrename.c (hard-reg-set.h): Likewise.
1109         * flow.c (hard-reg-set.h): Likewise.
1110         (reg_set_to_hard_reg_set): New function.
1111         * bitmap.c (regs.h, basic-block.h): No longer include.
1112         (bitmap.h): Now include.
1113         * conflict.c (hard-reg-set.h): Include.
1114         * profile.c (hard-reg-set.h): Likewise.
1115         * print-rtl.c (hard-reg-set.h): Likewise.
1116         * sbitmap.c (hard-reg-set.h): Likewise.
1117         * toplev.c (hard-reg-set.h): Likewise.
1118         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
1119         * hard-reg-set.h (reg_names): Now constant.
1120         * regs.h (reg_names): Likewise.
1121         * regclass.c (reg_names): Likewise.
1122         * loop.h (basic-block.h): No longer include.
1123         (bitmap.h): Now include.
1124         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
1125         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
1126         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
1127
1128 2000-05-19  Jan Hubicka  <jh@suse.cz>
1129             Richard Henderson  <rth@cygnus.com>
1130
1131         * basic-block.h (struct edge_def): New field "count".
1132         (struct basic_block_def): Likewise.
1133         * flow.c (entry_exit_blocks): Add count fileds.
1134         (split_edge): Keep count information up-to-date.
1135         (dump_edge_info, dump_flow_info): Dump count fields.
1136
1137         * final.c (count_instrumented_edges): Rename to edge from arc.
1138         (end_final): Update users.
1139         * profile.c: Include expr.h, basic-block.h.
1140         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
1141         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
1142         (ignore_next_note, return_label_execution_count): Kill.
1143         (bbg_file_name, da_file_name): Kill.
1144         (edge_info, bb_info): New structures.
1145         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
1146         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
1147         (total_num_edges_instrumented): Likewise.
1148         (init_arc, expand_spanning_tree): Kill.
1149         (fill_spanning_tree, tablejump_entry_p): Kill.
1150         (instrument_edges):  Rewrite from instrument_arcs to use
1151         commit_edge_insertions infrastructure.
1152         (compute_branch_probabilities): Remove arguments; rewrite for
1153         CFG infrastructure; use rtl_dump_file directly.
1154         (branch_prob, find_spanning_tree): Likewise.
1155         (union_groups, find_group): New.
1156         (init_branch_prob): Make bbg_file_name and da_file_name local.
1157         (end_branch_prob): Use rtl_dump_file directly.
1158         (init_edge_profiler): Rename to edge from arc.
1159         (output_arc_profiler): Kill.
1160         (gen_edge_profiler): New.
1161         (output_func_start_profiler): Turn off profiling.  Make the
1162         constructor static when we can.
1163         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
1164
1165         * toplev.c (DFI_flow): Remove.
1166         (DFI_cfg, DFI_life): New.
1167         (dump_file): Update accordingly.
1168         (compile_file): Call end_branch_prob if profile_arc_flag too.
1169         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
1170         profiling after the CFG is built.  Move flow1 life analysis to
1171         DFI_life.  Always estimate remaining probabilities.
1172
1173 2000-05-19  Richard Henderson  <rth@cygnus.com>
1174
1175         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
1176
1177         * flow.c (make_edges): The sibling call edge to exit is abnormal.
1178
1179 2000-05-19  Richard Henderson  <rth@cygnus.com>
1180
1181         * jump.c (redirect_jump): Add delete_unused argument.  Don't
1182         remove labels and code following when LABEL_NUSES goes to zero.
1183         (invert_jump): Likewise.
1184         (jump_optimize_1): Fix redirect/invert arguments.
1185         (do_cross_jump, thread_jumps): Likewise.
1186         * flow.c (split_edge): Likewise.
1187         * reorg.c (optimize_skip): Likewise.
1188         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
1189         * profile.c (instrument_arcs): Likewise.
1190         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
1191         * rtl.h: Update prototypes.
1192
1193 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
1194
1195         * ssa.c (convert_from_ssa): Tell life_analysis we need death 
1196         notes.
1197         (make_regs_equivalent_over_bad_edges): Only look at abnormal
1198         critical edges.
1199
1200 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
1201
1202         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
1203         past l1 when deleting whitespace and markers.              
1204
1205         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
1206         * cpplib.c (do_unassert): Put the list to compare against on
1207         the stack.
1208
1209 2000-05-19  Bruce Korb  <bkorb@gnu.org>
1210
1211         * fixinc/README:  cleaned up old documentation
1212         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
1213         * fixinc/check.tpl: compute the list of needed directories
1214         emit "#if defined(name)" because of conflict
1215         omit machine name differences from output differences
1216         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
1217         (machine_name): change test text to use `sed' markers
1218         * fixinc/fixincl.x: regen
1219
1220 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1221
1222         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
1223         a CONSTRUCTOR.
1224
1225 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
1226
1227         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
1228         it to match the current practice.
1229
1230 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
1231
1232         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
1233
1234 2000-05-18  Richard Henderson  <rth@cygnus.com>
1235
1236         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
1237         * rtl.h (insn_dependant_p): Declare it.
1238         * loop.c (strength_reduce): Use it.
1239
1240 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
1241
1242         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
1243         16-bit and 64-bit clean-up.
1244
1245 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
1246
1247         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
1248         * configure: Rebuilt.
1249
1250 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
1251
1252         * genopinit.c: Use $ for escape sequences in optab patterns.
1253         Remove backslashes from optab patterns.  Change $A, $B, $C to
1254         expand to (int) whatever instead of just whatever; remove
1255         explicit (int) from all optab patterns.
1256
1257         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
1258         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
1259         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
1260         genrecog.c: Remove private copies of xmalloc, xrealloc, and
1261         xstrdup.
1262
1263 2000-05-18  Richard Henderson  <rth@cygnus.com>
1264
1265         * jump.c (jump_optimize_1): Base minimum insn count during
1266         find_cross_jump on BRANCH_COST.
1267
1268 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
1269
1270         * print-rtl.c (print_rtx): Only print note line number as string
1271         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
1272         * final.c (final_scan_insn): Do nothing for note line number 0.
1273
1274 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
1275
1276         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
1277         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
1278         NOTE_INSN_DELETED_LABEL.
1279
1280 2000-05-18  Nick Clifton  <nickc@cygnus.com>
1281
1282         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
1283         uninitialised data in .rodata not .bss, and do not interpret an
1284         error in the initialisation value as meaning that the variable
1285         should be placed in the .bss section.
1286
1287 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
1288
1289         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
1290         not `$ac_cv_prog_cc_cc_c_o'.
1291         * configure: Regenerated.
1292
1293 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
1294             Richard Henderson  <rth@cygnus.com>
1295
1296         * c-common.h (enum c_tree_index): Add g77 type entries.
1297         (g77_integer_type_node, g77_uinteger_type_node): New.
1298         (g77_longint_type_node, g77_ulongint_type_node): New.
1299         * c-decl.c (init_decl_processing): Initialize them.
1300
1301 2000-05-18  Richard Henderson  <rth@cygnus.com>
1302
1303         * config/h8300/h8300.md (subs patterns): Use %G to negate.
1304
1305         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
1306         (small_power_of_two): Likewise; use exact_log2.
1307         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
1308         (output_adds_subs): Remove.
1309         (two_insn_adds_subs_operand): New.
1310         (split_adds_subs): New.
1311         * config/h8300/h8300-protos.h: Update.
1312         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
1313         (CONST_OK_FOR_L): Match strict adds operands.
1314         (CONST_OK_FOR_N): Match struct subs operands.
1315         * config/h8300/h8300.md (adds_subs insns): Remove.
1316         (addhi patterns): Output adds/subs directly.
1317         (addsi_h8300h): Likewise.
1318         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
1319
1320 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
1321
1322         * cppexp.c (parse_assertion): New.
1323         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
1324         (_cpp_parse_expr): Remove case '#'.  Don't set
1325         parsing_if_directive.
1326         * cpphash.c (collect_objlike_expansion,
1327         collect_funlike_expansion, collect_params,
1328         _cpp_create_definition): The list no longer has a trailing
1329         VSPACE token.
1330         * cpphash.h (enum node_type): Add T_ASSERTION.
1331         (struct hashnode): Remove aschain, add pred.
1332         (struct predicate): New.
1333         Update prototypes.
1334
1335         * cpplex.c (expand_token_space): Handle both offset and
1336         nonoffset lists.
1337         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
1338         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
1339         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
1340         _cpp_equiv_toklists): New.
1341         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
1342         stop at any single-character token, not just newline.
1343         (_cpp_lex_token): Remove special cases for #define and #if.
1344         (cpp_get_token): Expect # as a separate token type.  Remove
1345         DIRECTIVE case.
1346         (_cpp_get_directive_token): Remove DIRECTIVE case.
1347         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
1348
1349         * cpplib.c (_cpp_check_directive): Set dirno and
1350         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
1351         (_cpp_handle_directive): Run # <number> through the same logic
1352         as normal directives.
1353         (do_define): Don't set parsing_define_directive.  Use
1354         _cpp_scan_until.  The list does not have a VSPACE at the end.
1355         (do_if): Save, clear, and restore only_seen_white around 
1356         _cpp_parse_expr.
1357         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
1358         (do_assert, do_unassert): Rewrite.
1359
1360         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
1361         (LIST_OFFSET): New flag.
1362         (struct cpp_toklist): Replace dir_handler and dir_flags with
1363         dirno and flags.
1364         (struct cpp_reader): Remove parsing_if_directive and
1365         parsing_define_directive.
1366
1367 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1368
1369         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
1370         following the cabs decl which terminate on the following line.
1371         Add the corresponding test_text case.
1372
1373 2000-05-18  Neil Booth  <NeilB@earthling.net>
1374
1375         * cppinit.c (cpp_reader_init): Initialise col_adjust and
1376         default tab stop size.
1377         (no_num, OPT_ftabstop): New.
1378         (handle_option): Handle "ftabstop=" command-line option.
1379         (print_help): Document it.
1380         * cpplex.c (COLUMN): Remove.
1381         (handle_newline): Reset col_adjust.
1382         (skip_whitespace): Update col_adjust as tabs encountered.
1383         (_cpp_lex_line): Update to use col_adjust.  Call
1384         skip_whitespace for all whitespace.
1385         * cpplib.h (struct cpp_options): New member tabstop.
1386         (struct cpp_reader): New member col_adjust.
1387         (CPP_BUF_COL): Update.
1388         (CPP_BUF_COLUMN): New.
1389         * cpp.texi: Document "-ftabstop=" command line option.
1390
1391 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
1392
1393         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
1394         files.
1395         * configure: Rebuilt.
1396
1397 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
1398
1399         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
1400
1401         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
1402         HOST_BITS_PER_WIDE_INT is >= 64.
1403
1404 2000-05-17  Richard Henderson  <rth@cygnus.com>
1405
1406         * jump.c (jump_optimize_1): Remove inactive but real insns
1407         in jump-to-next-insn optimization.
1408
1409 2000-05-17  Richard Henderson  <rth@cygnus.com>
1410
1411         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
1412         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
1413         Don't call recompute_reg_usage if no_new_pseudos is true.
1414         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
1415         Return true if we did work; update global life information.
1416         * basic-block.h (optimize_mode_switching): Update decl.
1417
1418 2000-05-17  Neil Booth  <neilb@earthling.net>
1419
1420         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
1421
1422 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
1423
1424         * cpplib.c: New feature, #pragma system_header.
1425         * cpp.texi: Document special treatment of system headers, and
1426         the various mechanisms to get a header that special treatment.
1427
1428 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1429
1430         * system.h (offsetof): Define at the very end, to ensure we prefer
1431         the platform's definition if available.
1432
1433 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1434
1435         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
1436         * fixinc/server.c: likewise
1437         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
1438         + #ifdef debugging code + use #def constant for
1439         sub-pattern count
1440         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
1441         on C++ math namespace
1442
1443 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1444
1445         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1446         Don't check the return value of sprintf.  Use asprintf to avoid
1447         buffer overflows.
1448
1449 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
1450
1451         * flags.h (warn_unused_function, warn_unused_label,
1452         warn_unused_parameter, warn_unused_variable, warn_unused_value):
1453         Replace ``warn_unused''.
1454         (set_Wunused): Add declaration.
1455         * toplev.c (set_Wunused): New function.
1456         (warn_unused_function, warn_unused_label, warn_unused_parameter,
1457         warn_unused_variable, warn_unused_value): New variables.
1458         (W_options): Add -Wunused-function, -Wunused-function,
1459         -Wunused-label, -Wunused-parameter, -Wunused-variable and
1460         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
1461
1462         * toplev.c (decode_W_option): Update -Wunused flags by calling
1463         set_Wunused.
1464         * c-decl.c (c_decode_option): Ditto for -Wall.
1465
1466         * stmt.c (expand_expr_stmt, expand_expr_stmt,
1467         warn_about_unused_variables): Replace warn_unused with more
1468         explicit warn_unused_value et.al.
1469         * function.c (expand_function_end): Ditto.
1470         * c-typeck.c (internal_build_compound_expr,
1471         internal_build_compound_expr): Ditto.
1472         * c-decl.c (poplevel, pop_label_level): Ditto.
1473         * toplev.c (check_global_declarations): Replace warn_unused with
1474         check for either warn_unused_function or warn_unused_variable.
1475
1476         * gcc.1, invoke.texi (Warning Options): Document
1477         -Wunused-function, -Wunused-function, -Wunused-label,
1478         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
1479
1480 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
1481
1482         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
1483         $(srcdir), not in the current directory.
1484
1485 2000-05-16  Richard Henderson  <rth@cygnus.com>
1486
1487         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
1488         assembler supports it.
1489         (.fini, .init): Use a gp-relative indirect call.
1490         (__do_global_dtors_aux): Preserve the gp; rebundle.
1491         (__do_frame_setup): Likewise.
1492         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
1493         (.init): Use a gp-relative indirect call.
1494         (__do_global_ctors_aux): Preserve the gp.
1495
1496 2000-05-16  Richard Henderson  <rth@cygnus.com>
1497
1498         * flow.c (commit_one_edge_insertion): Be prepared for a return
1499         insn to be inserted on the edge with a normal jump.
1500         * jump.c (jump_optimize_1): Don't look to create return isns.
1501
1502         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
1503         * jump.c (jump_optimize_1): Likewise.
1504         (returnjump_p): Verify the argument is a JUMP_INSN.
1505         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
1506
1507 2000-05-16  Nick Clifton  <nickc@cygnus.com>
1508
1509         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
1510         GET_RTX_CLASS (GET_CODE ()) == 'i'.
1511         (large_insn_p): Ditto.
1512         (m32r_is_insn): New function: Return true if the insn contains
1513         an executable instruction.
1514         (m32r_adjust_insn): Use m32r_is_insn.
1515         (m32r_sched_reorder): Use m32r_is_insn.
1516         (m32r_sched_variable_issue): Use m32r_is_insn.
1517
1518 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1519
1520         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
1521         VAR_DECL.
1522
1523         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
1524
1525         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
1526         according to given options.
1527
1528 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
1529
1530         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
1531         if X has VOIDmode either.
1532         (LIMIT_RELOAD_CLASS): Similarly.
1533
1534         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
1535         not "general_operand" to match the processor's capabilities.
1536
1537 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1538
1539         * fixinc/README:  corrected return address
1540         * fixinc/check.diff:  regenerate, now that test works
1541         * fixinc/fixfixes.c(format_fix,format_write): reformatted
1542         (char_macro_def_fix,char_macro_use_fix): corrected and
1543         rewrote to use regex to parse the text
1544         * fixinc/inclhack.def: more testing
1545         * fixinc/fixincl.x:  regenerated
1546
1547         * fixinc/inclhack.def: added several "test_text" attributes
1548         changed several fixes to use `c_fix = format'
1549         re-alphabetized the fixes
1550
1551         * fixinc/check.diff: regenerate
1552         * fixinc/fixincl.x: regenerate
1553         * fixinc/check.tpl: added `sparc' and `netinet' to the list
1554         of created dirs
1555
1556
1557 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
1558
1559         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
1560
1561 2000-05-15  Richard Henderson  <rth@cygnus.com>
1562
1563         * toplev.c (rest_of_compilation): Run full jump pass before
1564         find_basic_blocks of flow2.
1565
1566 2000-05-15  Richard Henderson  <rth@cygnus.com>
1567
1568         * jump.c: Fix typos and clarify commentary from last change.
1569         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
1570         (safe_to_remove_jump_p): Remove.
1571         (condjump_label): Use pc_set.
1572
1573 2000-05-15  Richard Henderson  <rth@cygnus.com>
1574
1575         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
1576         that get in the way after reload.
1577         (cond_exec_process_if_block): Skip a label heading THEN block.
1578
1579 2000-05-15  Richard Henderson  <rth@cygnus.com>
1580
1581         * varasm.c (output_constant_pool): Abort instead of converting
1582         (improperly) deleted labels to zero.
1583
1584 2000-05-16  Neil Booth  <NeilB@earthling.net>
1585
1586         * cpplex.c (parse_string2): Update comment.
1587         (cpp_lex_line): No special assertion treatment for '('.
1588         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
1589         * cpplib.h (SYNTAX_ASSERT): Remove.
1590
1591 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1592
1593         * jump.c (condjump_p):  Mark as depreached.
1594         (any_condump_p): New.
1595         (any_uncondump_p): New.
1596         (pc_set): New.
1597         (safe_to_remove_jump_p): New.
1598         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
1599         safe_to_remove_jump_p): Declare.
1600
1601 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1602
1603         * calls.c: Re-install both patches reverted by last patch.
1604         (struct arg_data): New field tail_call_reg.
1605         (initialize_argument_information): Initialize tail_call_reg
1606         (load_register_parameters): New argument flags, use
1607         tail_call_reg when emiting tail call sequence.
1608         (expand_call): Update call of load_register_parameters;
1609         copy unadjusted_args_size to adjusted_args_size.
1610
1611 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1612
1613         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
1614         and bct_p parameters to flags.
1615         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
1616         * rtl.h (loop_optimize): Update prototype.
1617         * toplev.c (rest_of_compilation): Update call of loop_optimize.
1618
1619 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
1620
1621         * calls.c (expand_call): Move expand_start_target_temps call after
1622         start_sequence().
1623
1624 2000-05-15  Neil Booth  <NeilB@earthling.net>
1625
1626         * cpphash.c (trad_stringify, warn_trad_stringify,
1627         collect_params): Make some pointers pointers to const.
1628         * cpplex.c (auto_expand_name_space) Guaranteed to always
1629         expand by at least one character.
1630         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
1631         (struct token_spelling): Use const U_CHAR * rather than PTR.
1632         (expand_name_space): Fix up token pointers if name space
1633         is moved when expanding.
1634         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
1635         parse_string2, save_comment, spell_token, cpp_output_list):
1636         Update so the routines handle tokens with a direct pointer to
1637         their text, rather than an offset into the token's list's namebuf.
1638         (_cpp_lex_line): Rearrange for clarity.
1639
1640         * cpplib.c (_cpp_check_directive): Similarly.
1641         (do_define): Make SYM a pointer to const.
1642         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
1643         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
1644         (TOK_OFFSET): Delete.
1645         (TOK_NAME): Update.
1646
1647 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
1648
1649         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
1650         64-bit ABI.
1651
1652         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE 
1653         into account.
1654         (logical_u_operand): Delete.
1655         (non_logical_cint_operand): Rewrite to take MODE into account.
1656         (non_logical_u_cint_operand): Delete.
1657         (boolean_operator): New function.
1658         (print_operand): Add new %q operand.
1659         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
1660         remove logical_u_operand and non_logical_u_cint_operand,
1661         update logical_operand and non_logical_cint_operand.
1662         * config/rs6000/rs6000.md: Rewrite the patterns for performing
1663         logical operations to use %q.
1664
1665         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
1666         (movdi): Make similar to movsi.
1667         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
1668         is no such thing as a DImode CONST_DOUBLE.
1669         * config/rs6000/rs6000.c (output_toc): Likewise.
1670         
1671         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
1672         codes when old mnemonics are in use.  Print register names
1673         for cc registers when requested.
1674
1675         * optabs.c (expand_float): Don't allow mode widening that causes
1676         double rounding.
1677
1678         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
1679         flags to their current names -maix64 and -maix32.
1680
1681 2000-05-14  Bruce Korb  <bkorb@gnu.org>
1682
1683         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
1684         and/or after current text of file
1685         * fixinc/fixlib.c(must_malloc):
1686         * fixinc/fixlib.h(must_malloc): + reformatting
1687         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
1688         with usages of ``c_fix = wrap;''
1689         Add several tests and use the ``c_fix = format'' fixer more.
1690         * fixinc/fixincl.x: regen
1691         * fixinc/check.diff: regen
1692         * fixinc/check.tpl: emit the associated header with the missing
1693         test message
1694
1695 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
1696
1697         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
1698         variables $src and $dst.
1699         
1700 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
1701
1702         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
1703         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
1704         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
1705         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
1706         fields. 
1707         (set_message_prefixing_rule): Declare.
1708
1709         * diagnostic.c: (current_prefixing_rule): New variable.
1710         (set_message_prefixing_rule): Define.
1711         (output_set_prefix): Adjust buffer->emitted_prefix_p.
1712         (init_output_buffer): Adjust Initialization.
1713         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
1714         
1715 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
1716
1717         * ifcvt.c (if_convert): Do not free NULL.
1718
1719 2000-05-12  Nick Clifton  <nickc@cygnus.com>
1720
1721         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
1722         to move a double word value.
1723         (di_operand): New function: Return true if the operand is suitbale
1724         for a double word move operation.
1725         (nonimmediate_di_operand): New function: Return true if the
1726         operand is a DImode register or MEM.
1727
1728         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
1729         nonimmediate_di_operand.
1730
1731         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
1732         nonimmediate_di_operand.
1733
1734         * config/fr30/fr30.md (movdi): New pattern.  Required because
1735         other patterns generate DImode results.
1736         (movdi_insn): New pattern.
1737
1738 2000-05-12  Richard Henderson  <rth@cygnus.com>
1739
1740         * config/alpha/alpha.c (struct shadow_summary): Define
1741         bitfields as type unsigned int.
1742
1743 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
1744
1745         * config/avr/t-avr: Added definition of FLOAT while generates
1746         fp-bit.c
1747
1748         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
1749         peepholes for tst+jump = sbrs/sbrc optimization.
1750
1751 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
1752
1753         * expr.c (emit_push_insn): Do not adjust stack pointer when
1754         preallocating.
1755
1756 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
1757
1758         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
1759         * system.h (offsetof): ... to here.
1760
1761 2000-05-12  Richard Henderson  <rth@cygnus.com>
1762
1763         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
1764         * final.c (final_end_function): Use app_disable.  Rearrange note
1765         handling into a switch.  Emit deleted labels.
1766         (output_asm_label): Generate label strings for deleted labels.
1767         * flow.c (tail_recursion_label_list): New.
1768         (find_basic_blocks_1): Set label_value_list directly.  Collect list
1769         of tail recursion labels from call_placeholders.  Don't add deleted
1770         labels to the label value list.
1771         (cleanup_cfg): Use free_EXPR_LIST_list.
1772         (flow_delete_insn_chain): Turn non-removable labels into notes.
1773         (flow_delete_block): Don't disable deleting the block because of
1774         a non-removable label.
1775         (tail_recursion_label_p): New.
1776         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
1777         because of a label.
1778         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
1779         jump table.
1780         (merge_blocks): Disable a merge because of tail recursion labels.
1781         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
1782         Use a more accurate measure of not merging the join block.
1783         (find_if_block): Don't disable conversion because of a label.
1784         (find_if_case_1, find_if_case_2): Likewise.
1785         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
1786         element when copying.
1787         (squeeze_notes): Also leave EH notes.
1788         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
1789         REG_LABEL notes.
1790         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
1791         deleting a label.
1792         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
1793         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
1794         referring to a deleted label.  Convert tail handling to a switch.
1795         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
1796         for NOTE_INSN_DELETED_LABEL.
1797         (NOTE): Fix commentary.
1798         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
1799         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
1800         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
1801         (LABEL_NUSES, LABEL_REFS): Likewise.
1802         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
1803
1804 2000-05-12  Bruce Korb  <bkorb@gnu.org>
1805
1806         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
1807         * fixinc/check.diff: updated
1808         * fixinc/inclhack.def: corrected & added some test_text-s
1809         * fixinc/genfixes: removed unneeded options to autogen invocation
1810         * fixinc/fixincl.tpl: Specified the output file
1811         * fixinc/fixfixes.c: visual appearance
1812         * fixinc/fixincl.x: regenerate
1813
1814 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
1815
1816         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
1817         CTRL_defn_fix): Delete.
1818         (fix_char_macro_defines, fix_char_macro_uses): Rename to
1819         char_macro_def_fix and char_macro_use_fix, respectively.  Put
1820         them into the FIXUP_TABLE.  Get the string to search for from
1821         a c_fix_arg.
1822
1823         (format_write): New function.
1824         (format_fix): Use it.
1825
1826         (FIX_PROC_HEAD): Constify text parameter.
1827         (machine_name_fix): Constify all char *s.
1828         * fixtests.c (skip_quote): Remove double static.
1829
1830         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
1831         ctrl_use_quotes): Update for new scheme.
1832         * fixincl.x: Regenerate.
1833
1834 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
1835
1836         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
1837         DWARF2_DEBUG.
1838         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
1839         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
1840
1841 2000-05-11  Robert Lipe <robertlipe@usa.net>
1842
1843         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
1844         * fixincl.x: Regenerate.
1845
1846 2000-05-11  Richard Henderson  <rth@cygnus.com>
1847
1848         * calls.c: Revert both 05-09 patches.
1849
1850 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
1851
1852         * config/mn10300/mn10300.c (print_operand): Print FP constants in
1853         hexadecimal.
1854         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
1855         for FP values.
1856
1857         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
1858         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
1859
1860 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
1861
1862         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
1863
1864 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1865
1866         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
1867
1868 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
1869
1870         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
1871         * config/avr/avr.c (jump_over_one_insn_p): New function.
1872         * config/avr/avr.md: New peepholes added. Output test and
1873         conditional jump to "sbrc" or "sbrs" command.
1874
1875 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
1876
1877         * cppmain.c (main): Use IS_DIR_SEPARATOR.
1878
1879 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
1880
1881         * except.c (find_exception_handler_labels_1): New function.
1882         (find_exception_handler_labels): Split into two functions, dive
1883         into CALL_PLACEHOLDERs when looking for exception handler labels.
1884
1885 2000-05-11 Stan Cox <scox@cygnus.com>
1886
1887         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
1888         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
1889         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
1890
1891 2000-05-11  Bruce Korb  <bkorb@gnu.org>
1892
1893         * fixinc/fixfixes.c (double_slash_fix):  obsolete
1894         (else_endif_label_fix): obsolete
1895         (format_fix):  new, unused as yet
1896         (main): obsolete
1897         * fixinc/fixlib.h: added fix description struct for use by format_fix
1898         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
1899         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
1900         modules.  Removed the vestiges of the script version.
1901         Added support for "make check".
1902         * fixinc/check.diff: base diff file (needs work!!)
1903         * fixinc/check.tpl: quiet the fixup output
1904         * fixinc/fixtests.c (main): obsolete
1905         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
1906         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
1907
1908 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
1909
1910         * toplev.c (rest_of_compilation): Remove dead code after
1911         combine.
1912
1913 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1914
1915         * cpphash.c (collect_funlike_expansion): Make "# is not
1916         followed by a macro argument name" a pedwarn, not an error.
1917         Preserve the # in the output.  Suppress the warning if lang_asm.
1918
1919 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
1920
1921         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
1922         * configure: Rebuilt.
1923
1924 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
1925
1926         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
1927
1928 2000-05-10  Kazu Hirata  <kazu@hxi.com>
1929
1930         * combine.c (try_combine): Fix a typo.
1931
1932 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
1933
1934         * config/ia64/ia64.md (insv): Add comment.
1935
1936 2000-05-10  Richard Henderson  <rth@cygnus.com>
1937
1938         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
1939         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
1940         dependancies on FPBIT and DPBIT.
1941
1942 2000-05-10  Nick Clifton  <nickc@redhat.com>
1943
1944         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
1945         when optimising for size.
1946         (mark_used_regs:) Ditto.
1947         (try_pre_increment_1): Ditto.
1948
1949 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
1950
1951         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
1952         Make error message friendlier.
1953
1954         * cpphash.h (struct hashnode): Use struct hack for name
1955         member.
1956         * cpphash.c (struct hashdummy): New.
1957         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
1958         (make_HASHNODE): No need to set ->name pointer.  Correct
1959         setting of p.
1960         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
1961
1962 2000-05-10  Richard Henderson  <rth@cygnus.com>
1963
1964         * flow.c (find_basic_blocks_1): Remove any spare bb_note
1965         after completion.
1966
1967 2000-05-10  Bruce Korb  <bkorb@gnu.org>
1968
1969         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
1970
1971 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
1972
1973         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
1974         after we enter .debug.
1975
1976 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
1977
1978         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
1979         abstract instance of a nested inline function.
1980
1981         * stor-layout.c (finish_record_layout): finalize_type_size
1982         before laying out the pending_statics.
1983
1984 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
1985
1986         * cpplex.c (spell_token): New function.
1987         (spell_string, spell_comment, spell_name): fold into
1988         spell_token.    
1989         (I, S): Add macros.
1990         (E, H): Remove macros.
1991         (save_comment): Save comment opening characters too.
1992         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
1993         handling.
1994         * cpplib.h (I, S): Add macros.
1995         (E, H): Remove macros.
1996         (TTYPE_TABLE): Update entries for new speller.
1997         (SYNTAX_ASSERT): Remove.
1998
1999 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
2000
2001         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
2002         when removing escaped newlines.  Reverse sense of test for
2003         escaped newline.
2004
2005 2000-05-09  Richard Henderson  <rth@cygnus.com>
2006
2007         * flow.c (find_basic_blocks_1): Do not delete the first
2008         bb_note we run across.
2009         (create_basic_block): Use reorder_insns to move an existing
2010         bb_note to the correct place.
2011
2012 2000-05-09  Richard Henderson  <rth@cygnus.com>
2013
2014         * calls.c (expand_call): Increment currently_expanding_call
2015         before calling optimize_tail_recursion.
2016
2017 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2018
2019         * reload1.c (reload_combine): Fix errors in last change.
2020
2021 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
2022
2023         * gcc.c (used_arg): Skip over a semicolon at the end of the
2024         split-up loop; don't break out of it.
2025
2026         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
2027         (tree.o): Depend on output.h.
2028
2029         * c-decl.c (pending_invalid_xref_file,
2030         current_function_prototype_file): Constify.
2031         (pushdecl): Constify a local char *.
2032         (define_label): Constify filename parameter.
2033         * c-lex.c (init_parse): Constify parameter and return value.
2034         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
2035         * c-tree.h: Update prototypes.
2036         * c-parse.in: Constify filename member of %union, and if_stmt_file.
2037         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
2038         objc/objc-parse.c: Regenerate.
2039
2040         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
2041         * dwarfout.h: Update prototypes.
2042         * expr.c (expand_expr): Constify a local char *.
2043         * flags.h: Constify main_input_filename.
2044         * function.c (expand_function_end): Constify filename parameter.
2045         * genrecog.c (make_insn_sequence): Use a character array for
2046         c_test_pos.
2047         (main): Remove unused variables.
2048         * input.h: Constify input_filename, main_input_filename, and
2049         file_stack.name.  Update prototypes.
2050         * output.h: Declare first_global_object_name and
2051         weak_global_object_name here, as const char *.
2052         * stmt.c (expand_asm_operands): Constify filename parameter.
2053         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
2054         Constify filename parameter.
2055         (input_filename, main_input_filename): Constify.
2056         * toplev.h: Update prototypes.
2057         * tree.c: Include output.h.  Don't declare
2058         first_global_object_name or weak_global_object_name.  Clean up string
2059         bashing in get_file_function_name_long.
2060         * tree.h (struct tree_decl): Constify filename member.
2061         (input_filename): Constify.
2062         Update prototypes.
2063         * varasm.c (first_global_object_name, weak_global_object_name):
2064         Constify.
2065         (assemble_start_function, assemble_variable): Clean up string bashing.
2066
2067         * gcc.c: Constify all spec-related strings initialized,
2068         transitively, from string constants.  Constify all strings
2069         and string variables related to multilibs.
2070         (set_spec, read_specs): Cast argument to free to PTR.
2071         (used_arg): Do not modify multilib_matches.  Use strncmp plus
2072         length comparison to compare multilib switches.
2073         * genmultilib: Constify everything declared in multilib.h.
2074
2075 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
2076
2077         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
2078         as deleted.
2079
2080 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
2081
2082         * config/avr/avr-protos.h (extra_constraint): change a type of
2083         second argument from char to int to avoid warnings.
2084         (asm_output_byte): Likewise.
2085         
2086         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
2087         (initial_elimination_offset): Handle elimination from
2088         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
2089         (legitimate_address_p): Use MAX_LD_OFFSET.
2090         (legitimize_address): Likewise.
2091         (out_movqi_r_mr): Likewise.
2092         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
2093         (out_movsi_r_mr): Use MAX_LD_OFFSET.
2094         (out_movsi_mr_r): Likewise.
2095         (out_movqi_mr_r): Likewise.
2096         (out_movhi_mr_r): Likewise.
2097         (notice_update_cc): Correct CC for the ashrqi3 with the shift
2098         count as CONST_INT != 6.
2099         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
2100         shift count is a CONSTANT_P, but not a CONST_INT.
2101         (ashlhi3_out): Coding style modifications.
2102         (ashlsi3_out): Likewise.
2103         (ashrhi3_out): Likewise.
2104         (ashrsi3_out): Likewise.
2105         (lshrhi3_out): Likewise.
2106         (lshrsi3_out): Likewise.
2107         (ashrqi3_out): Generate shift for any known constant count without
2108         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
2109         but not a CONST_INT.
2110         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
2111         shift count is a CONSTANT_P, but not a CONST_INT. 
2112         (extra_constraint): change a type of
2113         second argument from char to int to avoid warnings.
2114         (asm_output_byte): Likewise.
2115         (asm_file_end): Output size generated commands count as a hex
2116         number too.
2117
2118         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
2119
2120         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
2121         removed.
2122         (ashlqi3): Values of "length" attribute changed. Shift count
2123         uses constraints 'n' instead of 'i'.
2124         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
2125         shifts without clobber register.
2126         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
2127         (call_insn): Correct test for which_alternative == 1 (was 0).
2128         (call_value_insn): Likewise.
2129         
2130         * config/avr/t-avr: Remove definition of FLOAT while generates
2131         fp-bit.c
2132
2133 2000-05-09  Bruce Korb  <bkorb@gnu.org>
2134
2135         * fixinc/check.tpl:  Template for checking fixes
2136         * fixinc/inclhack.def:  Added 'test_text' for many fixes
2137         disable hpux8_bogus_inlines on SCO
2138         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
2139
2140 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2141
2142         * calls.c (expand_call): Reorganize somewhat in order
2143         to avoid unnecesary recalculation inside loop and make
2144         tail call failure code cleaner.
2145         
2146 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2147
2148         * alias.c (nonlocal_reference_p): Minor reformatting.
2149         * reload.c (find_equiv_reg): Simplify logic for
2150         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
2151         some some reformatting.
2152         * reload1.c (reload_combine): Don't assume everything in
2153         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
2154
2155 2000-05-08  Richard Henderson  <rth@cygnus.com>
2156
2157         * final.c (current_insn_predicate): New.
2158         (final_scan_insn): Set it.
2159         * output.h (current_insn_predicate): Declare.
2160
2161         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
2162         Attach it to call insns.
2163         (cond_exec_process_if_block): Track probability for true and
2164         false branches.
2165         (dead_or_predicable): Likewise.
2166
2167         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
2168         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
2169         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
2170         (estimate_probability, expected_value_to_br_prob): Use them.
2171
2172         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
2173         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
2174         (ia64_expand_prediction): New.
2175         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
2176         as needed after calls.
2177         (ia64_epilogue_uses): Mark b0 used.
2178         * config/ia64/ia64.md (beq_true, beq_false): Remove.
2179         (bne_true, bne_false): Remove.
2180         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
2181         (br_true, br_false): New.  Use predicate_operator and
2182         ia64_expand_prediction.
2183         (return_true, return_false): Likewise.
2184         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
2185         (call_internal1, call_value_internal): Likewise.
2186         (call_value_internal1, call_multiple_values_internal1): Likewise.
2187
2188         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
2189
2190         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
2191
2192 2000-05-08  Richard Henderson  <rth@cygnus.com>
2193
2194         * rtlanal.c (may_trap_p): Consider old-style and volatile
2195         asms to trap.
2196
2197 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
2198
2199         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
2200
2201 2000-05-08  Richard Henderson  <rth@cygnus.com>
2202
2203         * config/ia64/ia64.h (predicate_operator): Declare.
2204
2205         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
2206         of existance.
2207
2208         * gensupport.c (process_rtx): Copy and post-process each member
2209         of the define_insn rtvec individually.
2210
2211 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
2212
2213         * cpplex.c (spell_token): New function.
2214         (TOKEN_LEN): Add 1 for whitespace.
2215         (_cpp_lex_file): Update to use spell_token.
2216         * cpplib.h (E): Remove.
2217         (TTYPE_TABLE): Update CPP_VSPACE entry.
2218
2219 2000-05-08  Richard Henderson  <rth@cygnus.com>
2220
2221         * flow.c (init_propagate_block_info): Watch out for conditional
2222         branch to next instruction, and thus one outgoing edge.
2223
2224         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
2225         for global register variables; don't special case __[CD]TOR_LIST__;
2226         mind ggc_p for string allocation.
2227
2228 2000-05-08  Nick Clifton  <nickc@cygnus.com>
2229
2230         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
2231
2232 2000-05-08  Bruce Korb  <bkorb@gnu.org>
2233
2234         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
2235         i?86-*-msdosdjgpp* no longer uses fixincludes
2236         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
2237         * fixinc/inclhack.sh:  deleted
2238         * fixinc/hackshell.tpl:  deleted
2239         * fixinc/inclhack.tpl:  deleted
2240         * fixinc/Makefile.in:  Remove dependencies on above
2241         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
2242
2243 2000-05-08  Andreas Jaeger  <aj@suse.de>
2244
2245         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
2246         support.
2247
2248 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
2249
2250         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
2251         substitutions.
2252
2253 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
2254
2255         * cpplex.c: Move new lexer definitions and prototypes
2256         to top.  Conditional include these and the code if
2257         NEW_LEXER is defined.  Rename functions whose names
2258         clash if this code included.
2259
2260 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
2261
2262         * rtl.def (COND_EXEC): Clarify.
2263
2264         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
2265         same fashion as zero_extendsidi2.
2266
2267 2000-05-06  Richard Henderson  <rth@cygnus.com>
2268
2269         * config/ia64/ia64.c (predicate_operator): New.
2270         (ia64_print_operand): Handle 'J'.
2271         (rtx_needs_barrier): Handle COND_EXEC.
2272         * config/ia64/ia64.h (BRANCH_COST): Define.
2273         (PREDICATE_CODES): Update.
2274         * config/ia64/ia64.md: Docuement used unspec values.
2275         (attr predicable): New.
2276         (movxf, movxf_internal): New.
2277         (extendsfdf2): Don't comment out nop.
2278         (floatdidf2): Remove.
2279         (truncxfsf2, truncxfdf2, floatdixf2): New.
2280         (abssi2, absdi2): Put the neg in the "true" slot.
2281         (conditional branch instructions): Mark not predicable.
2282         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
2283         (abs*_internal): Likewise.
2284         (alloc, set_bsp): Mark not predicable.
2285         (barrier, insn_group_barrier, flush_cache): Likewise.
2286         (define_cond_exec): New.
2287
2288 2000-05-06  Richard Henderson  <rth@cygnus.com>
2289
2290         * c-decl.c: Include "tm_p.h".
2291
2292         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
2293         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
2294         (ia64_expand_op_and_fetch): Declare.
2295         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
2296         (setjmp_operand): Constify variables for XSTR.
2297         (ia64_encode_section_info): Likewise.
2298         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
2299         values to int.
2300         (ia64_asm_output_external): Constify name.
2301         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
2302         (process_for_unwind_directive): Provide switch default.
2303         (ia64_expand_compare_and_swap): Remove unused variables.
2304         (ia64_expand_builtin): Likewise.
2305         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
2306         for printing.
2307
2308         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
2309         (symbolic_operand, function_operand, setjmp_operand): Likewise.
2310         (shift_count_operand, shift_32bit_count_operand): Likewise.
2311         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
2312         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
2313         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
2314         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
2315         (ia64_expand_builtin): Likewise.
2316         (call_multiple_values_operation): Make dest_regno unsigned.
2317
2318 2000-05-06  Richard Henderson  <rth@cygnus.com>
2319
2320         * rtl.def (DEFINE_COND_EXEC): New.
2321         * md.texi: Document it.
2322
2323         * gensupport.c (input_file): Remove.
2324         (struct queue_elem): Add lineno.
2325         (rtx_ready_queue): Remove.
2326         (errors): New.
2327         (predicable_default): New.
2328         (predicable_true, predicable_false): New.
2329         (define_attr_queue, define_attr_tail): New.
2330         (define_insn_queue, define_insn_tail): New.
2331         (define_cond_exec_queue, define_cond_exec_tail): New.
2332         (other_queue, other_tail): New.
2333         (queue_pattern): New.
2334         (process_rtx): Add patterns to the appropriate queues.
2335         (is_predicable, identify_predicable_attribute): New.
2336         (n_alternatives, collect_insn_data): New.
2337         (alter_predicate_for_insn, alter_test_for_insn): New.
2338         (shift_output_template, alter_output_for_insn): New.
2339         (process_one_cond_exec, process_define_cond_exec): New.
2340         (init_md_reader): Read the entire file.  Process define_cond_exec.
2341         (read_md_rtx): Return elements from the queues.
2342
2343 2000-05-06  Richard Henderson  <rth@cygnus.com>
2344
2345         * flow.c (mark_set_1): Don't update conditional life info
2346         if the register is not_dead.
2347
2348 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
2349
2350         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
2351         (mostlyclean): Also delete fixincl, fixinc.sh, and
2352         specs.ready, and make clean in the fixinc subdir.
2353
2354 2000-05-06  Richard Henderson  <rth@cygnus.com>
2355
2356         * Makefile.in (gensupport.o): Compile for the host.
2357         (host-prefix gensuuprt.o): Remove.
2358         (genflags.o): Depend on gensupport.h and OBSTACK_H.
2359         (genattrtab.o): Likewise.
2360         (gencodes.o): Depend on gensupport.h.
2361         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
2362         (genpeep.o, genattr.o, genoutput.o): Likewise.
2363
2364         * gensupport.c (obstack, rtl_obstack): New.
2365         (init_md_reader): Initialize rtl_obstack.
2366         * gensupport.h (rtl_obstack): Declare.
2367         (message_with_line): Declare.
2368
2369         * genattr.c: Remove all traces of obstack manipulation.
2370         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
2371         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
2372
2373         * genattrtab.c (obstack, rtl_obstack): Remove.
2374         (main): Don't init rtl_obstack.
2375         * genflags.c: Likewise.
2376
2377         * genrecog.c (message_with_line): Move ...
2378         * gensupport.c: ... here.
2379
2380 2000-05-06  Richard Henderson  <rth@cygnus.com>
2381
2382         * c-typeck.c (build_c_cast): Remove dead code.
2383
2384 2000-05-06  Richard Henderson  <rth@cygnus.com>
2385
2386         * flow.c (split_edge): Don't allocate global_live_at_start for
2387         the new block unless the old blocks had them as well.
2388
2389         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
2390
2391         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
2392         test_bb if a or b uses x.
2393
2394 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
2395
2396         * cpphash.h: Remove conditional #define of __extension__.
2397         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
2398         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
2399         (ENABLE_RTL_CHECKING only).
2400         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
2401         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
2402         (ENABLE_TREE_CHECKING only).
2403         * varray.h: Add __extension__ to VARRAY_CHECK macro
2404         (ENABLE_CHECKING only).
2405
2406 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2407
2408         Use new tail-calling mechanism on ARM.
2409         * arm.md (sibcall, sibcall_value): New expands.
2410         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
2411         (tailcalling peepholes): Delete.
2412         (push_multi): Simplify.
2413         * arm.c (lr_save_eliminated): Delete definition.
2414         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
2415         (output_return_instruction): Remove checks on lr_save_eliminated.
2416         (output_arm_prologue): Remove old tail-calling code.
2417         (arm_output_epilogue): New parameter, really_return.  All callers
2418         changed.  Handle tail-calling epilogues.
2419         * arm.h (lr_save_eliminated): Delete declaration.
2420         (frame_pointer_needed): Delete declaration.
2421         * arm-protos.h (arm_output_epilogue): Adjust prototype.
2422
2423         * arm.md (is_thumb): Examine symbol thumb_code, not expression
2424         TARGET_ARM.
2425         * arm.c (thumb_code): Define it.
2426         (arm_override_options): Set it.
2427         * arm.h (thumb_code): Declare it.
2428         
2429 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2430
2431         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
2432
2433 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
2434
2435         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
2436         bogus clobber to insns.
2437         (load_multiple_operation, store_mulitple_operation): Don't check 
2438         for it.
2439         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
2440
2441         * arm.md (and_scc, ior_scc): Add missing mode.
2442
2443         * arm.md (call_value_symbol): Remove predicate from op2.
2444
2445         * arm.h (SPECIAL_MODE_PREDICATES): Define.
2446         
2447 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2448
2449         * expr.c (get_subtarget): New function.
2450         (force_operand, expand_expr, do_store_flag): Use it.
2451
2452         * toplev.c (compile_file): Don't take strlen of NAME if null.
2453
2454 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
2455
2456         * xcoffout.c (xcoff_current_include_file,
2457         xcoff_current_function_file, xcoff_lastfile): Constify char *.
2458         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
2459         char *'.
2460         (xcoffout_declare_function): Make name 'const char *'.
2461         (xcoffout_end_epilogue): Make fname 'const char *'
2462         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
2463         xcoffout_declare_function, xcoffout_source_line): Match above.
2464
2465         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
2466         -maix64 is error.
2467         * rs6000.c (print_operand): Fix lossage typo.
2468         (output_cbranch): Remove "cr" decoration for now.
2469         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. 
2470
2471 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
2472
2473         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
2474         constant count.
2475
2476 2000-05-05  Bruce Korb  <bkorb@gnu.org>
2477
2478         * fixinc/genfixes: Improve the matching for make target names
2479
2480 2000-05-05  Catherine Moore  <clm@cygnus.com>
2481
2482         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
2483         attribute to the decl.
2484         * c-decl.c (pushdecl): Propagate the USED attribute to the 
2485         type copy.
2486
2487 2000-05-05  Richard Henderson  <rth@cygnus.com>
2488
2489         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
2490         same way emit_group_load does.
2491
2492 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
2493
2494         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
2495
2496         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
2497         (main): Likewise.
2498
2499 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
2500
2501         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
2502
2503 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
2504
2505         * config/openbsd.h (LINK_SPEC): pass correct flags to ld 
2506         to support -shared, on platforms with dynamic libraries.
2507
2508 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
2509
2510         * system.h (S_ISBLK): Provide fallback definition.
2511
2512 2000-05-05  Geoff Berry  <geoffb@bops.com>
2513
2514         * extend.texi (Extended Asm): Document inability to give asm
2515         statements access to condition codes.
2516
2517 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
2518
2519         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
2520         as arg 2 of UNIQUE_SECTION.
2521
2522 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
2523
2524         * predict.c: Remove May 4 change.
2525         * bb-reorder.c (make_reorder_chain): Do not perform block movement
2526         if we have predicted the branch at 50-50 probability.
2527
2528 2000-05-05  Richard Henderson  <rth@cygnus.com>
2529
2530         * flow.c (init_propagate_block_info): Fix merge error
2531         in HAVE_conditional_execution code.
2532
2533 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
2534
2535         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
2536         shift cycle for unknown shift count. Also generates dec + brpl.
2537         (ashlqi3_out): Don't generate dec + brpl which now generates by
2538         `out_shift_with_cnt'.
2539         (ashlhi3_out): Likewise.
2540         (ashlsi3_out): Likewise.
2541         (ashrqi3_out): Likewise.
2542         (ashrhi3_out): Likewise.
2543         (ashrsi3_out): Likewise.
2544         (lshrqi3_out): Likewise.
2545         (lshrhi3_out): Likewise.
2546         (lshrsi3_out): Likewise.
2547
2548 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
2549
2550         * gcc.c (free_split_directories): Correct typo in explanation
2551         of make_relative_prefix.
2552
2553 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2554
2555         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
2556         comparison codes to branch_comparison_operator.
2557
2558 2000-05-04  Richard Henderson  <rth@cygnus.com>
2559
2560         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
2561
2562 2000-05-04  Richard Henderson  <rth@cygnus.com>
2563
2564         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
2565         (DPBIT_FUNCS): Remove _sf_to_usi.
2566         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
2567
2568         * ifcvt.c (noce_process_if_block): Fail if A or B modified
2569         between condition and jump.
2570
2571         * libgcc2.c (near eh_context_specific): Comment #endif string.
2572         * longlong.h: Don't use strings with embedded newlines.
2573
2574 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2575
2576         * config/rs6000/rs6000-protos.h: Add output_cbranch.
2577         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
2578         (print_operand): Delete %t and %T codes.
2579         (output_cbranch): New function.  Support branch prediction.
2580         * config/rs6000/rs6000.md: Use output_cbranch for
2581         conditional branches and returns.
2582
2583 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
2584
2585         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
2586         * stor-layout.c (place_field): Likewise.
2587         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
2588         * expr.c (store_expr): Make align unsigned.
2589         * explow.c (plus_constant_wide): Make low words unsigned.
2590         * expmed.c (choose_multiplier): Likewise.
2591         * fold-const.c (fold):  Likewise.
2592         * tree.h (build_int_2): Likewise.
2593         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
2594         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
2595         (init_emit): Change cast to unsigned char*.
2596         * varasm.c (compare_constant_1): Add cast to char*.
2597         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
2598         * reload1.c (reload): Likewise.
2599
2600         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
2601
2602 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
2603
2604         * predict.c (estimate_probability): If no prediction was found, then
2605         predict the successor that is the next physical block (if such a
2606         successor exists).
2607
2608 2000-05-04  Richard Henderson  <rth@cygnus.com>
2609
2610         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
2611
2612 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2613
2614         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
2615
2616 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
2617
2618         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move 
2619         attribute macros from here ...
2620         (CPP_SPEC): to here.
2621         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
2622         (CPP_SPEC): Likewise.
2623         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. 
2624
2625         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
2626         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
2627
2628 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2629
2630         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
2631         
2632         * diagnostic (vbuild_message_string, build_message_string,
2633         build_location_prefix, output_get_prefix, init_output_buffer,
2634         output_notice, vline_wrapper_message_with_location,
2635         v_message_with_decl, default_print_error_function): De-constify.
2636         (set_real_maximum_length): Prototype.
2637
2638         * diagnostic.h (struct output_buffer, init_output_buffer,
2639         output_get_prefix, output_set_prefix): De-constify.
2640
2641         * function.c (init_function_start): Constify.
2642
2643         * gensupport.c (remove_constraints, process_rtx): Prototype.
2644
2645         * gthr-posix.h: Indent uses of #pragma.
2646
2647         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
2648         Prototype.
2649
2650         * predict.c (find_expected_value): Delete prototype.
2651         (expected_value_to_br_prob): Initialize variable `ev_reg'.
2652
2653         * sbitmap.h (debug_sbitmap): Prototype.
2654
2655         * ssa.c (compute_coalesced_reg_partition): Prototype.
2656
2657         * stor-layout.c (debug_rli): Prototype.
2658
2659         * tree.h (round_down): Prototype.
2660         (init_function_start): Constify.
2661
2662 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
2663
2664         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
2665         (overly conservative).  Change extern inline wrappers to
2666         static inline, define them always, use PARAMS properly.
2667         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
2668         whitespace warnings for \f and \v at the beginning of a line.
2669
2670 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
2671
2672         * haifa-sched.c (schedule_insns): Free the flow edge list when it
2673         is no longer needed
2674
2675 2000-05-04  Bruce Korb  <bkorb@gnu.org>
2676
2677         * fixincl/inclhack.def: added broken_cabs -
2678         Remove `extern double cabs' declarations from math.h
2679         * fixincl/inclhack.sh: regen
2680         * fixincl/fixincl.x: regen
2681         * fixincl/fixincl.c: Remove BOGOSITY code
2682         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
2683
2684 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2685
2686         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
2687         MEM_ALIAS_SET.
2688         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
2689         when calling MEM_COPY_ATTRIBUTES.
2690         * emit-rtl.c (operand_subword, change_address): Likewise.
2691         * explow.c (stabilize): Likewise.
2692         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
2693         * integrate.c (copy_rtx_and_substitute): Likewise.
2694         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
2695         when calling MEM_COPY_ATTRIBUTES.
2696         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
2697         Likewise.
2698         * cse.c (gen_lowpart_if_possible): Likewise.
2699         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
2700         * optabs.c (gen_move_insn): Likewise.
2701         * recog.c (validate_replace_rtx_1): Likewise.
2702         * simplify-rtx.c (add_mem_for_addr): Likewise.
2703         * stmt.c (expand_anon_union_decl): Likewise.
2704         * config/arm/arm.md: Likewise.
2705         * config/h8300/h7300.c (fix_bit_operand): Likewise.
2706         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
2707         (block_move_no_loop, block_move_sequence): Likewise.
2708         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
2709         * config/alpha/alpha.c (get_aligned_mem): Likewise.
2710         Clear MEM_ALIAS_SET.
2711         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
2712         MEM_COPY_ATTRIBUTES.
2713
2714 2000-05-03  Robert Lipe <robertlipe@usa.net>
2715         
2716         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
2717         to suppress libgcc1.
2718         (i[34567]86-*-sco3.2v5*) Likewise.
2719         (i[34567]86-*-sco3.2v4*) Likewise.
2720         (i[34567]86-*-sco) Likewise.
2721         (i[34567]86-*-solaris2) Likewise.
2722         (i[34567]86-*-sysv5*) Likewise.
2723         (i[34567]86-*-sysv4*) Likewise.
2724         (i[34567]86-*-udk*) Likewise.
2725         (i[34567]86-*-sysv*) Likewise.
2726
2727 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2728
2729         * cpphash.h (U): New define, to correct type of string constants.
2730         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
2731         routines, to do casts when passing unsigned strings to libc.
2732         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
2733
2734         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
2735         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
2736         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
2737         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
2738         second argument an U_CHAR *.
2739
2740         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
2741         length field, clean up initializer.
2742         (ISTABLE): Add __extension__ to designated-
2743         initializers version.
2744         * cpplex.c (CHARTAB): Likewise.
2745
2746         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
2747         case so the file won't be empty.
2748
2749 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
2750
2751         * bb-reorder.c (struct reorder_block_def): Member succ removed.
2752         (REORDER_BLOCK_SUCC): Removed.
2753         (enum reorder_skip_type): Removed.
2754         (skip_insns_between_block): Renamed to skip_insns_after_block.
2755         Removed second argument. Removed dead code and cleaned up.
2756         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
2757         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
2758         second parameter to skip_insns_after_block.
2759
2760 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2761
2762         * tree.c (staticp, case LABEL_DECL): New case.
2763
2764 2000-05-03  Richard Henderson  <rth@cygnus.com>
2765
2766         * Makefile.in (start.encap): Do not depend on LIBGCC1.
2767
2768         * mklibgcc1.in: Fix typo last change.
2769
2770 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2771
2772         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
2773         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
2774         (GCC_CFLAGS): Use it.
2775         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
2776         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
2777         objc/Make-lang.in: Use it.
2778
2779 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
2780
2781         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
2782
2783 2000-05-03  Richard Henderson  <rth@cygnus.com>
2784
2785         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
2786         LIBGCC1 empty with libgcc1.null.
2787
2788 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
2789
2790         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
2791         change.
2792
2793 2000-05-03  Greg McGary  <gkm@gnu.org>
2794
2795         * tree.h (tree_common): Add bounded_flag member.  Remove
2796         inaccurate comment about number of remaining bits.
2797         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
2798         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
2799         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
2800         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
2801         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
2802         (TYPE_QUAL_BOUNDED): New constant.
2803         (TYPE_QUALS): Handle bounded qualifier.
2804         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
2805         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
2806         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
2807         TYPE_AMBIENT_BOUNDEDNESS): New macros.
2808         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
2809         (tree_type): Add pointer_depth member.  Remove
2810         inaccurate comment about number of remaining bits.
2811         (DECL_POINTER_DEPTH): Add macro.
2812         (tree_decl): Add pointer_depth member.
2813
2814 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
2815
2816         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
2817         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
2818         (lshrhi3_out): Likewise.
2819         (ashrsi3_out): bugfix in shift by 8.
2820         (test_hard_reg_class): New function.
2821         * config/avr/avr.md: Bugfix inside conditions in peepholes.
2822         (ashlhi3): removed define_expand of this pattern.
2823         (*ashlhi3_insn): renamed to ashlhi3.
2824         (ashlsi3): removed define_expand of this pattern.
2825         (*ashlsi3_insn): renamed to ashlsi3.
2826         (ashrqi3): removed define_expand of this pattern.
2827         (*ashrqi3_insn): renamed to ashrqi3.
2828         (ashrhi3): removed define_expand of this pattern.
2829         (*ashrhi3_insn): renamed to ashrhi3.
2830         (ashrsi3): removed define_expand of this pattern.
2831         (*ashrsi3_insn): renamed to ashrsi3.
2832         (lshrhi3): removed define_expand of this pattern.
2833         (*lshrhi3_insn): renamed to lshrhi3.
2834         (lshrsi3): removed define_expand of this pattern.
2835         (*lshrsi3_insn): renamed to lshrsi3.
2836
2837 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
2838
2839         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
2840         inclusion of "system.h".
2841
2842 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
2843
2844         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
2845         TREE_ASM_WRITTEN.
2846
2847 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
2848
2849         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
2850         if -mauto-pic is on.
2851         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
2852         -mconstant-gp is in effect and function-descriptors are being used
2853         to make indirect calls.
2854         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
2855         (MASK_AUTO_PIC): Ditto.
2856         (TARGET_CONST_GP): Ditto.
2857         (TARGET_AUTO_PIC): Ditto.
2858         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
2859         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
2860         -mno-pic is in effect.
2861         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
2862         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
2863         -mauto-pic is in effect.
2864         (gprel64_offset): New pattern.
2865         (load_gprel64): Ditto.
2866         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
2867         -mconstant-gp is in effect, no need to preserve gp around direct
2868         calls.
2869         (call_value): Ditto.
2870         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
2871         (FUNCTION_PROFILER): Define.
2872         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
2873         @fptr() directive when -mno-pic or -mauto-pic is in effect.
2874         (ASM_OUTPUT_DESTRUCTOR): Ditto.
2875
2876 2000-05-03  Richard Henderson  <rth@cygnus.com>
2877
2878         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
2879         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
2880         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
2881         (mklibgcc, libgcc.mk): New targets.
2882         (libgcc.a): Use libgcc.mk.
2883         (stmp-multilib): Likewise.
2884         (stmp-multilib-sub): Remove.
2885         (mostlyclean): Don't delete libgcc2 temp files.
2886         * configure.in (AC_PROG_CC_C_O): Add.
2887         (NO_MINUS_C_MINUS_O): Substitute it.
2888         (all_outputs): Add mklibgcc.
2889         * mklibgcc.in: New file.
2890
2891 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2892
2893         * cppexp.c (op_t): Make an int.
2894
2895         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
2896
2897         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
2898
2899         * gensupport.c (process_rtx): Fix macros used.
2900
2901 2000-05-03  Richard Henderson  <rth@cygnus.com>
2902
2903         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
2904         call-clobbered registers of a call.
2905
2906 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
2907
2908         * gensupport.c: New file.
2909         * gensupport.h: New file.
2910         * Makefile.in (HOST_RTL): Depend on gensupport.
2911         (gensupport.o) New rule.
2912         * genattr.c: Use gensupport for reading .md files.
2913         * genattrtab.c: Ditto. 
2914         * gencodes.c: Ditto. 
2915         * genconfig.c: Ditto. 
2916         * genemit.c: Ditto. 
2917         * genextract.c: Ditto. 
2918         * genflags.c: Ditto. 
2919         * genopinit.c: Ditto. 
2920         * genoutput.c: Ditto. 
2921         * genpeep.c: Ditto. 
2922         * genrecog.c: Ditto.
2923         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
2924         * md.texi (Insn Splitting): Document define_insn_and_split.
2925
2926 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
2927
2928         * flow.c (verify_flow_info): Added two more sanity checks. The
2929         first checks that the blocks are numbered consecutively. The second
2930         checks that n_basic_blocks is actually equal to the number of
2931         basic blocks in the insn chain.
2932
2933 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2934
2935         * cpplib.h: Add accessor macros for token lists.
2936         * cpplib.c, cpphash.c, cpplex.c: Use them.
2937
2938 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2939
2940         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
2941         memory usage if not in a function.
2942         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
2943         return address if static.
2944
2945 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2946
2947         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
2948         whether address may trap.
2949
2950 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
2951
2952         * bb-reorder (chain_reorder_blocks): Changed code to test for
2953         EDGE_FALLTHRU rather than making erroneous assumption that the
2954         first outgoing edge is the fall-through edge.
2955
2956 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
2957
2958         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new 
2959         ABI for varargs, across all MIPS. This is incompatible because the
2960         va_list (__builtin_va_list) structure is different, so a compilation
2961         unit passing a va_list and a compilation unit being passed one, should
2962         both be compiled with the same ABI. (The old structure had two 
2963         pointers, now it has three.)
2964
2965 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
2966
2967         * bb-reorder.c (struct reorder_block_def): Remove members end,
2968         block_begin, and block_end.
2969         (REORDER_BLOCK_OLD_END): Delete.
2970         (REORDER_BLOCK_BEGIN): Delete.
2971         (REORDER_BLOCK_END): Delete.
2972         (chain_reorder_blocks): Remove dead code.
2973
2974 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
2975
2976         * bb-reorder.c (remove_scope_notes): Check for both types of scope
2977         notes as the end of a basic block before deleting.
2978
2979 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
2980
2981         * final.c (final_start_function): Fix spelling of "necessary".
2982
2983 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
2984
2985         * toplev.c (debug_ignore_block): Return int.
2986         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
2987         * toplev.h, dwarf2out.h: Adjust.
2988         * emit-rtl.c (remove_unnecessary_notes): Test return value.
2989
2990         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
2991         * toplev.c, final.c, rtl.h: Adjust.
2992
2993 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2994
2995         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
2996         * configure.in: Look for makeinfo in the unified tree, then
2997         for a system makeinfo which is sufficiently new.
2998         * Makefile.in: If configure says makeinfo is too old, don't
2999         build or install Info documentation.
3000
3001 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
3002
3003         * cpphash.c (collect_params): Fix off-by-one error.
3004         (dump_hash_helper): Dump all four macro nodetypes.
3005
3006 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
3007
3008         * cpphash.c (trad_stringify): Adjust p after stringification as
3009         well.
3010
3011 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
3012
3013         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
3014         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
3015
3016         * cppfiles.c (file_cleanup): Delete.
3017         * cpphash.c (macro_cleanup): Delete.
3018         (collect_objlike_expansion, collect_funlike_expansion,
3019         macarg, scan_arguments): Remove CPP_POP case.
3020
3021         * cpplex.c (null_cleanup): Delete.
3022         (cpp_pop_buffer): Do the work that was done in the cleanups
3023         here.  Call _cpp_unwind_if_stack from here.
3024         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
3025         cpp_scan_buffer): Run until we see CPP_EOF and the top of
3026         stack is the buffer _below_ the one we stacked.
3027         (cpp_get_token): Always pop an exhausted buffer.  Return
3028         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
3029         * cpplib.c (skip_if_group): Don't call cpp_get_token to
3030         increment the line number.
3031         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
3032
3033         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
3034         we see CPP_EOF and the top of stack is the buffer _below_ the
3035         one we stacked.
3036         * scan-decls.c: Likewise.
3037
3038 2000-05-02  Andrew Haley  <aph@cygnus.com>
3039
3040         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
3041         where this function is called for the second time on a decl that
3042         has had its section info changed in such a way as to move it out
3043         of small data/bss.  
3044         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
3045
3046 2000-05-01  Richard Henderson  <rth@cygnus.com>
3047
3048         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
3049         the sequence we're moving, not to merge_bb->head.
3050
3051 2000-05-01  Richard Henderson  <rth@cygnus.com>
3052
3053         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
3054         reference to alpha/t-linux.
3055         (alpha*-*-linux-gnu*): Likewise.
3056         * configure: Rebuild.
3057
3058         * calls.c (expand_call): Don't emit reg notes for a sibcall.
3059
3060         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
3061         if not in SSA form.
3062
3063         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
3064
3065 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
3066
3067         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
3068         TREE_THIS_VOLATILE.
3069
3070 2000-05-01  Richard Henderson  <rth@cygnus.com>
3071
3072         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
3073         emit_conditional_move.
3074
3075 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
3076
3077         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
3078         as the dynamic linker.
3079
3080 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
3081
3082         * cppfiles.c (open_include_file): Open file in blocking mode.
3083         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
3084         Only exclude block devices and directories.
3085
3086         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
3087         static.  Allocate the hashnode and its string in the same
3088         block of memory.
3089         (del_HASHNODE): Don't free h->name.
3090         (_cpp_lookup): If there is no entry for this string, create
3091         one, of type T_VOID.
3092         (_cpp_lookup_slot): Delete.
3093         * cpphash.h: Update prototypes.
3094
3095         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
3096         not hp == NULL.
3097         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
3098         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
3099         node here, just fill in the value field properly.  "Delete"
3100         entries by setting the value field to T_VOID.  Check for
3101         hp->type == T_VOID, not hp == NULL.
3102
3103         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
3104         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
3105         hashtab.h.
3106
3107 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
3108
3109         * config/mn10300/mn10300.c (print_operand_address): Do not add
3110         zero to SP.
3111
3112         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
3113         adjusted by less than 256 bytes, use ret regardless of having any
3114         callee-saved register to restore.
3115
3116 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
3117
3118         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
3119
3120 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
3121
3122         * config/i386/djgpp.h (INT_ASM_OP): Define.
3123         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
3124         (ASM_WEAKEN_LABEL): Define.
3125         (MASK_BNU210): Define.
3126         (SUBTARGET_SWITCHES): Define.
3127         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
3128         (MAKE_DECL_ONE_ONLY): Define.
3129         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
3130
3131 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
3132
3133         * i386/cygwin.h (INT_ASM_OP): Define.
3134
3135 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
3136
3137         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
3138         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
3139
3140 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
3141
3142         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
3143         __tmp_reg__ and __zero_reg__ initialization.
3144
3145 2000-04-30  Richard Henderson  <rth@cygnus.com>
3146
3147         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
3148
3149         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
3150         referenced bewteen the condition and the jump.  Don't delete
3151         anything but the jump.
3152
3153 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
3154
3155         * bb-reorder.c (scope_def): New struct.
3156         (scope_forest_info): New struct.
3157         (struct reorder_block_def): New member "scope".
3158         (REORDER_BLOCK_SCOPE): New macro.
3159         (relate_bbs_with_scopes): New function and prototype.
3160         (make_new_scope): Likewise.
3161         (build_scope_forest): Likewise.
3162         (remove_scope_notes): Likewise.
3163         (insert_intra_1): Likewise.
3164         (insert_intra_bb_scope_notes): Likewise.
3165         (insert_inter_bb_scope_notes): Likewise.
3166         (rebuild_scope_notes): Likewise.
3167         (free_scope_forest_1): Likewise.
3168         (free_scope_forest): Likewise.
3169         (dump_scope_forest): Likewise.
3170         (dump_scope_forest_1): Likewise.
3171         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
3172         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
3173         block.
3174         (reorder_basic_blocks): Added calls to build_scope_scope_forest
3175         and remove_scope_notes before reordering is done. Added calls to
3176         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
3177         after reordering is done.
3178
3179 2000-40-30  Bruce Korb  <bkorb@gnu.org>
3180
3181         * fixinc/inclhack.def:  Added definitions needed by OSR5,
3182         removed two stale entries (defined away with OLD_CPP).
3183         * fixinc/inclhack.sh: regen
3184         * fixinc/fixincl.x: regen
3185
3186 2000-04-30  Richard Henderson  <rth@cygnus.com>
3187
3188         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
3189         from the last insn in the sequence.
3190
3191 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
3192
3193         * cpplex.c (cpp_idcmp): New function.
3194         * cpplib.h: Prototype it.
3195         * scan_decls.c (scan_decls): Use it to inspect token names.
3196         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
3197         the file being run through the preprocessor.
3198         (check_macro_names): Provide length of token to cpp_defined.
3199
3200         * Makefile.in: Remove stale warning message.
3201
3202         * cppfiles.c (redundant_include_p): Provide length of token to
3203         cpp_defined.
3204         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
3205         values are unsigned int.
3206         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
3207         (_cpp_lookup_slot): Do not calculate the hash, either.
3208         * cpphash.h: Update prototypes.
3209         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
3210         Hashes are unsigned int.  Calculate hash here, pass by value
3211         to _cpp_lookup_slot.
3212
3213 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
3214
3215         * simplify-rtx.c (check_value_useless): Delete function.
3216         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
3217         by hand.
3218         (cselib_invalidate_regno): Likewise.
3219         (cselib_invalidate_mem_1): Likewise.
3220         (references_value_p): Recognize useless values by the fact that they
3221         have no locations.
3222         (discard_useless_values): Likewise.
3223         (cselib_record_set): This may turn a useless value
3224         into a useful one.
3225
3226 2000-04-30  Richard Henderson  <rth@cygnus.com>
3227
3228         * config/d30v: New port.
3229
3230         * configure.in (d30v-*): Set fp format.
3231         * configure: Rebuild.
3232
3233 2000-04-30  Richard Henderson  <rth@cygnus.com>
3234
3235         * ifcvt.c: New file.
3236         * Makefile.in (OBJS): Add it.
3237         (ifcvt.o): New target.
3238         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
3239         and conditional arithmetic.
3240         (find_insert_position): Remove.
3241         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
3242         * toplev.c (DFI_ce, DFI_ce2): New.
3243         (dump_file): Add ce and ce2 dumps.
3244         (rest_of_compilation): Run if_convert a couple o times.  Set
3245         cse_not_expected after cse2.  Don't set no_new_pseudos until
3246         after sched1 or recompute_reg_usage.
3247
3248 2000-04-30  Richard Henderson  <rth@cygnus.com>
3249
3250         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
3251         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
3252
3253 2000-04-30  Richard Henderson  <rth@cygnus.com>
3254
3255         * flow.c (struct reg_cond_life_info): New.
3256         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
3257         (init_propagate_block_info): Initialize them.
3258         (free_propagate_block_info): Destruct them.
3259         (mark_set_1): Consider conditional life before killing a register.
3260         (mark_regno_cond_dead): New.
3261         (free_reg_cond_life_info): New.
3262         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
3263         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
3264         (mark_used_reg): Record conditional life.
3265
3266         * haifa-sched.c (schedule_insns): Disable death counting
3267         sanity check for HAVE_conditional_execution.
3268
3269 2000-04-30  Richard Henderson  <rth@cygnus.com>
3270
3271         * Makefile.in (TIMEVAR_H): New.
3272         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
3273         (timevar.h): Remove rule.
3274
3275 2000-04-29  Richard Henderson  <rth@cygnus.com>
3276
3277         * config/alpha/crtend.asm: Use C comments instead of #.
3278         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
3279
3280         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
3281
3282 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
3283
3284         * cpphash.h (enum node_type: Take out T_MCONST.
3285         (union hashval): Move into struct hashnode.
3286         (struct hashnode): Pack tighter.  Remove file, line, col
3287         members.
3288         * cpphash.c: Constify most of the macro-definition structures.
3289         (struct definition): Replace by struct object_defn
3290         and struct funct_defn.  Put file, line, column information
3291         here.  All users updated to match.
3292         (_cpp_create_definition, _cpp_macroexpand): Remove special
3293         case for #define WORD OTHERWORD.
3294         * cpplib.c (do_undef): Remove T_MCONST case.
3295
3296         * cpphash.h: Move struct reflist, struct definition, and the
3297         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
3298         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
3299         * cpphash.c (_cpp_free_definition): Free data pointed to by
3300         MCONST, XCONST, MACRO, and FMACRO nodes properly.
3301         (_cpp_create_definition, del_HASHNODE): Just call
3302         _cpp_free_definition to clear out a hashnode.
3303         * cpplib.c (do_pragma_poison): Likewise.
3304
3305 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
3306
3307         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
3308         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
3309         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
3310         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
3311         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
3312         REGNO_AM33_P): Redefine in terms of the new macros.
3313         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
3314         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
3315         STRUCT_VALUE): Likewise.
3316         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
3317         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
3318
3319 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3320
3321         * regmove.c (struct record_stack_memrefs_data): New.
3322         (record_stack_memrefs): New function.
3323         (combine_stack_adjustments_for_block): Use it.
3324
3325 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3326
3327         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
3328         use special_function_p to detect alloca.
3329
3330 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
3331
3332         * gcc.texi: Fixes for makeinfo 4.0 --html.
3333
3334 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
3335
3336         * pcp.h: Delete file.
3337
3338 2000-04-28  Kazu Hirata  <kazu@hxi.com>
3339
3340         * h8300.c (function_epilogue): Clean up flags when the last insn
3341         in a function is a barrier.
3342
3343 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
3344
3345         * configure.in (sparc-hal-solaris2*): protect [] glob from
3346         my expansion.
3347         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
3348         rather than hard-coded constants in target_cpu_default2.
3349         * configure: Regenerate.
3350
3351 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
3352
3353         * tree.c (get_callee_fndecl): Extract the initial value from
3354         a readonly decl.
3355
3356 2000-04-28  Richard Henderson  <rth@cygnus.com>
3357
3358         * varasm.c (record_constant_1): Record the CODE_LABEL when
3359         taking the address of a LABEL_REF.
3360
3361 2000-04-28  Richard Henderson  <rth@cygnus.com>
3362             Jan Hubicka  <jh@suse.cz>
3363
3364         * calls.c (combine_pending_stack_adjustment_and_call): Return the
3365         adjustment; don't do the stack adjust.
3366         (expand_call): Call compute_argument_block_size right before
3367         allocating the block; update comment; don't do alignment sanity
3368         checking for sibling call; use args_size instead of
3369         unadjusted_args_size before args_size is adjusted.  Use
3370         combine_pending_stack_adjustment_and_call to compute stack adjust
3371         for must_preallocate case.
3372
3373         * expr.c (push_block): Remove shadow `temp' in inner scope.
3374
3375 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
3376
3377         * toplev.c (rest_of_compilation): Call
3378         note_deferral_of_defined_inline_function even if the function
3379         can't be inlined.
3380
3381 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
3382
3383         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
3384
3385 2000-04-28  Richard Henderson  <rth@cygnus.com>
3386
3387         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
3388
3389 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3390
3391         * timevar.c (init_timevar): DeANSIfy function definition.
3392
3393 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
3394
3395         * Makefile.in (timevar.o): Depend on flags.h.
3396         * timevar.c (unused_stack_instances): New variable.
3397         (timevar_push): Take a timevar_stack_def from
3398         unused_stack_instances if available.
3399         (timevar_pop): Push the popped timevar_stack_def onto
3400         unused_stack_instances.
3401         (TIMEVAR_ENABLE): New macro.
3402         (timevar_def): Make standalone a 1-bit field.  Add field used.
3403         (get_time): Rename parameter to now.  Return after clearing it if
3404         not TIMEVAR_ENABLE.
3405         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
3406         (timevar_pop): Likewise.
3407         (timevar_stop): Likewise.
3408         (timevar_push): Likewise.  Mark the timing variable as used.
3409         (timevar_start): Likewise.
3410         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
3411         timevars that were never used.
3412
3413 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
3414
3415         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
3416         always TREE_READONLY.
3417
3418 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
3419
3420         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
3421         for call instruction with mode QImode.
3422
3423 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
3424
3425         * Makefile.in (OBJS): Add timevar.o.
3426         (toplev.o): Depend on timevar.h.
3427         (ggc-simple.o): Likewise.
3428         (ggc-page.o): Likewise.
3429         (timevar.o): New rule.
3430         (timevar.h): New rule.
3431
3432         * timevar.h: New file.
3433         * timevar.c: Likewise.
3434         * timevar.def: Likewise.
3435
3436         * toplev.h (gc_time, parse_time, varconst_time): Remove.
3437         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
3438         throughout.
3439         (TIMEVAR): Remove macro.
3440         (gc_time, parse_time, varconst_time, integration_time, jump_time,
3441         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
3442         flow_time, combine_time, regmove_time, sched_time,
3443         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
3444         sched2_time, dbr_sched_time, reorder_blocks_time,
3445         rename_registers_time, shorten_branch_time, stack_reg_time,
3446         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
3447         all_time): Remove.
3448         (compile_file): Don't initialize time variables.  Call
3449         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
3450         of many calls to print_time.
3451         (rest_of_compilation): Add timing for reload_cse_regs.
3452         (get_run_time): Removed to timevar.c.
3453         (print_time): Likewise.
3454         (get_run_time): Implement using TV_TOTAL time variable.
3455         (print_time): Get total run time from get_run_time.
3456         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
3457         computing elapsed time explicitly.
3458         * ggc-simple.c (ggc_collect): Likewise.
3459         (gc_time): Remove declaration.
3460
3461 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
3462
3463         * calls.c (combine_pending_stack_adjustment_and_call): New function.
3464         (expand_call): Use it.
3465
3466 2000-04-27  Jan Hubicka  <jh@suse.cz>
3467
3468         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
3469         fields.
3470
3471 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
3472
3473         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
3474         registers.
3475
3476 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3477
3478         * function.c (epilogue_done): Pass whole insn to record_insns.
3479
3480 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3481
3482         * cse.c (CSE_ADDRESS_COST): Remove.
3483         (find_best_addr): Add new parameter "MODE", use address_cost instead
3484         of CSE_ADDRESS_COST
3485         (address_cost): New.
3486         (fold_rtx): Update call of find_best_addr.
3487         * rtl.h (address_cost): Declare.
3488         * loop.c (general_induction_var): Add new parameter "MODE", use
3489         address_cost instead of ADDRESS_COST
3490         (init_loop): Use address_cost instead of ADDRESS_COST.
3491         (check_insn_for_givs): Update call of general_induction_var.
3492         (find_mem_givs): Likewise.
3493         (consec_sets_giv): Likewise.
3494         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
3495         * i386.c (ix86_address_cost): New.
3496         * i386-protos.h (ix86_address_cost): Declare.
3497
3498 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
3499
3500         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
3501         registers.
3502
3503 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3504
3505         * expr.c (store_expr): Use clear_storage instead of direct memset
3506         libcall.
3507
3508 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
3509
3510         * config/mn10300/mn10300.c (mn10300_address_cost): Test
3511         ASHIFT, AND and LABEL_REF.
3512
3513 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3514
3515         * invoke.texi (-foptimize-sibling-calls): Fix.
3516
3517 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3518
3519         * loop.c (load_mems)  Don't use hard registers for the hoisting.
3520
3521         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
3522         calculation; rename const_equiv array in the preconditioning code
3523         from loop_unroll to loop_unroll_precondition
3524
3525 2000-04-27  Richard Henderson  <rth@cygnus.com>
3526
3527         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
3528         add new_set.
3529         (propagate_one_insn): Clear it.  Don't update reg_live here.
3530         (init_propagate_block_info): Update for pbi member changes.
3531         (free_propagate_block_info): Likewise.
3532         (mark_set_1): Know that zero_extract, sign_extract, and
3533         strict_low_part don't kill their argument.  Alter hard subregs.
3534         Update new_set for non-CLOBBER sets.  Update reg_live.
3535         (find_auto_inc): Update reg_live, not new_dead.
3536         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
3537         to determine if the reg in question was set this insn.  Only update
3538         reg info with PROP_REG_INFO.
3539
3540 2000-04-26  Richard Henderson  <rth@cygnus.com>
3541
3542         * flow.c (allocate_reg_life_data): Set max_regno here ...
3543         (life_analysis): ... not here.
3544
3545         * flow.c (calculate_global_regs_live): Force stack pointer
3546         live at end.
3547
3548 2000-04-26  Richard Henderson  <rth@cygnus.com>
3549
3550         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
3551         commit change group changes.
3552         (invert_exp_1): Similarly.
3553         (redirect_exp, invert_exp): Use them.
3554         (redirect_jump_1): New.
3555         (invert_jump_1): New.
3556         (jump_optimize_1): Remove code subsumed by condexec.c.
3557         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
3558
3559 2000-04-26  Richard Henderson  <rth@cygnus.com>
3560
3561         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
3562
3563         * genconfig.c (main): Set all HAVE_foo to 1.
3564
3565         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
3566
3567 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
3568
3569         * invoke.texi: Document -fssa flag.
3570
3571 2000-04-26  Richard Henderson  <rth@cygnus.com>
3572
3573         * flow.c (count_reg_sets_1): Remove.
3574         (count_reg_sets, count_reg_references): Remove.
3575         (recompute_reg_usage): Implement with update_life_info.
3576         Reallocate life data.
3577
3578 2000-04-26  Richard Henderson  <rth@cygnus.com>
3579
3580         * flow.c (update_life_info): Consider blocks null to mean the
3581         universal set.
3582         (calculate_global_regs_live): Likewise.
3583         (life_analysis): Do that instead of collecting all_blocks.
3584
3585 2000-04-26  Richard Henderson  <rth@cygnus.com>
3586
3587         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
3588         a still-valid conditional jump.
3589
3590 2000-04-26  Richard Henderson  <rth@cygnus.com>
3591
3592         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
3593
3594         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
3595         * flow.c (calculate_loop_depth): Remove.
3596         * output.h (calculate_loop_depth): Don't declare.
3597         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
3598         inline; run estimate_probability at the same time.
3599
3600 2000-04-26  Neil Booth  <NeilB@earthling.net>
3601
3602         * cpplib.h: "~=" is not a single pp-token.
3603         * cpplex.c: Correct commentary.
3604
3605 2000-04-26  Richard Henderson  <rth@cygnus.com>
3606
3607         * flow.c (mark_set_1): New arguments code and flags; update all
3608         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
3609         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
3610         loop_depth when optimizing for size.  Do new_dead update after
3611         emitting REG_UNUSED notes.  Merge mark_set_reg code.
3612         (mark_set_reg): Remove.
3613         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
3614         arrange to not emit REG_UNUSED notes.
3615
3616 2000-04-26  Richard Henderson  <rth@cygnus.com>
3617
3618         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
3619         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
3620
3621 2000-04-26  Richard Henderson  <rth@cygnus.com>
3622
3623         * flow.c (propagate_one_insn): Break out from propagate_block.
3624         (init_propagate_block_info): Likewise.
3625         (free_propagate_block_info): Likewise.
3626         (propagate_block): Use them.  Export.
3627         * basic-block.h: Declare them all.
3628
3629 2000-04-26  Richard Henderson  <rth@cygnus.com>
3630
3631         * basic-block.h (life_analysis): Declare here ...
3632         * output.h: ... not here.
3633         * flow.c (life_analysis): Remove nregs parameter; replace
3634         remove_dead_code with flags.  Remove ssa dead code check.
3635         Only init alias analysis if we'll use it.
3636         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
3637         * ssa.c (convert_to_ssa): Likewise.
3638         (convert_from_ssa): Likewise.
3639         * toplev.c (rest_of_compilation): Likewise.
3640
3641 2000-04-26  Richard Henderson  <rth@cygnus.com>
3642
3643         * flow.c (flow_delete_block): Rename from delete_block.  Export.
3644         * basic-block.h (flow_delete_block): Declare.
3645
3646 2000-04-26  David S. Miller  <davem@redhat.com>
3647
3648         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
3649         taking a PATTERN of it.
3650
3651 2000-04-26  <NeilB@earthling.net>
3652
3653         * cpplex.c (spell_other, spell_char): Remove.
3654         (SPELL_CHAR): New.
3655         (token_spelling, trigraph_map): Use unsigned chars.
3656         (_cpp_lex_line): Tidy up the switch statement.
3657         * cpplib.h: Implement spell_char with spell_string.
3658         (C): New.
3659
3660 2000-04-26  <RodneyBrown@pmsc.com>
3661
3662         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3663         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3664
3665 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3666
3667         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
3668         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
3669         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
3670         dwarf2out_return_save, dwarf2out_return_reg,
3671         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
3672         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
3673         gen_compile_unit_die, dwarf2out_init): Constify a char*.
3674
3675         * dwarf2out.h (dwarf2out_init): Likewise.
3676
3677         * dwarfout.c (filename_entry, primary_filename, last_filename,
3678         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
3679
3680         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
3681         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
3682         dwarf2out_return_reg): Likewise.
3683
3684 2000-04-26  Andreas Jaeger  <aj@suse.de>
3685
3686         * extend.texi (Function Attributes): Fix description of pure
3687         attribute.
3688
3689 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3690
3691         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
3692         before calling rest_of_compilation.
3693
3694 2000-04-26  Andreas Jaeger  <aj@suse.de>
3695
3696         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
3697         last patch.
3698
3699 2000-04-25  Richard Henderson  <rth@cygnus.com>
3700
3701         * cse.c (cse_insn): Emit barrier after unconditional jump.
3702
3703         * calls.c (expand_call): Disable tail call generation once
3704         rtx_equal_function_value_matters is false.
3705
3706         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
3707         like EDGE_EH edges.
3708
3709 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
3710
3711         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
3712
3713         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
3714
3715         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
3716         is the primary DIE for a member function.
3717         (gen_decl_die): Call set_decl_origin_self here.
3718         * dwarfout.c (output_decl): And here.
3719         * integrate.c (output_inline_function): Not here.
3720         Don't clear DECL_INLINE until after calling rest_of_compilation.
3721         (set_decl_origin_self): No longer static.
3722         * tree.h: Add prototype.
3723         * toplev.c (note_deferral_of_defined_inline_function): Only write
3724         out abstract instance for actual inlines.
3725
3726 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
3727
3728         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
3729         EXTENDED_REGS only if TARGET_AM33.
3730         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
3731         SP_REGS to register allocation and reloading unless absolutely
3732         necessary.
3733         (movsi3): Remove special-case of adding non-constants to SP.
3734
3735 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3736
3737         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
3738         INCLUDES to search and does not provide any of its own.  Also it
3739         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
3740         parameters.  Also it does not call AC_DEFINE.
3741         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
3742         AC_DEFINE and provides for automatic entries for autoheader.
3743         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
3744
3745         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
3746         so we can pass -I flags and include gansidecl.h/system.h in this
3747         test.
3748
3749         * acconfig.h: Delete all NEED_DECLARATION_* entries.
3750
3751 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3752
3753         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3754         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3755         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
3756
3757         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3758         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3759         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
3760         for these macros.  Clean up spacing and linewraps.
3761
3762 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3763
3764         * calls.c (expand_call): Use get_callee_fndecl.
3765
3766         * print-tree.c (print_node): Print the chain of an _EXPR.
3767
3768 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
3769                           Jim Wilson  <wilson@cygnus.com>
3770                           Andrew Haley  <aph@cygnus.com>
3771
3772         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
3773         and gp save/restore problems.
3774         * config/ia64/crtend.asm: Add IA-64 unwind support.
3775         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
3776         in fr_pad_size calculation.
3777         (save_restore_insns): Move PR save area.  Correct uses of
3778         RTX_FRAME_RELATED_P.
3779         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
3780         (ia64_expand_epilogue): Add eh_epilogue support.
3781         (ia64_function_prologue): Emit .prologue directive.
3782         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
3783         (ia64_override_options): Set init_machine_status and
3784         mark_machine_status.
3785         (rtx_needs_barrier): Handle bsp reads and writes.
3786         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
3787         New static variables.
3788         (process_set, process_for_unwind_directive): New functions.
3789         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
3790         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
3791         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
3792         macros.
3793         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
3794         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
3795         (struct machine_function): Define.
3796         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
3797
3798 2000-04-25  Bruce Korb  <bkorb@gnu.org>
3799
3800         * fixinc/Makefile.in: make the removal of old programs more
3801         robust
3802         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
3803         install-bin and install-sh
3804
3805 2000-04-25  Nick Clifton  <nickc@cygnus.com>
3806
3807         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
3808         defined, define to return zero.
3809         (function_cannot_inline_p): If a function has any target
3810         specific attributes, then use the macro
3811         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
3812         whether it can be inlined.  If it cannot, issue a suitable
3813         explanation.
3814
3815         * tm.texi: Add a new node 'Inlining' to document the new macro
3816         FUNCTION_ATTRIBUTE_INLINABLE_P.
3817
3818 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
3819
3820         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
3821         commentary.
3822
3823 2000-04-25  Neil Booth  <NeilB@earthling.net>
3824
3825         Restore previous patch, plus the following fixes:
3826
3827         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
3828         flags, not CPP_OPEN_PAREN.
3829         * cpplex.c (expand_token_space, init_token_list,
3830         cpp_free_token_list): Put the dummy token at list->tokens[-1].
3831         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
3832
3833 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3834
3835         * config/i386/freebsd.h (INT_ASM_OP): Define.
3836
3837 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3838
3839         * loop.c (strength_reduce): Fix typo in the last checkin.
3840
3841 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3842
3843         * stor-layout.c (finalize_record_size): Simplify to use existing
3844         functions.
3845         (compute_record_mode): No longer static.
3846         * tree.h (compute_record_mode): New declaration.
3847
3848 2000-04-25  Neil Booth  <NeilB@earthling.net>
3849
3850         * Revert my patch below until cause of build failures
3851         determined.
3852
3853 2000-04-25  Richard Henderson  <rth@cygnus.com>
3854
3855         * combine.c (combine_instructions): Add missing argument
3856         to try_combine.
3857
3858         * toplev.c (rest_of_compilation): Delay sibcall optimization
3859         until after emit_eh_context.
3860
3861 2000-04-24  Nick Clifton  <nickc@redhat.com>
3862
3863         * combine.c (combine_instructions): Do not try to combine a
3864         sequence of insns when the second insn has been replaced by a
3865         note.
3866
3867 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
3868
3869         * gcc.c (load_specs): New static function.
3870         (read_specs): Use it.
3871
3872         * gcc.c (lookup_compiler): Make multiple passes for case
3873         insensitive filesystems.
3874
3875 2000-04-24  Neil Booth  <NeilB@earthling.net>
3876
3877         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
3878         * cpphash.h (_cpp_check_directive): new.
3879         * cpplex.c (handle_newline, cpp_free_token_list,
3880         init_trigraph_map, trigraph_ok, trigraph_replace,
3881         backslash_start, skip_block_comment, skip_line_comment,
3882         skip_whitespace, parse_name, parse_number, parse_string,
3883         copy_comment, _cpp_lex_line, spell_char, spell_string,
3884         spell_comment, spell_name, spell_other, _cpp_lex_file,
3885         _cpp_output_list): new.
3886         (expand_name_space): take length argument.
3887         (init_token_list): add comment list initialisation.
3888         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
3889         instead of HSPACE_BEFORE.
3890
3891         * cpplib.c (_cpp_check_directive): new
3892         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
3893         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
3894         (HSPACE_BEFORE): delete.
3895         (TTYPE_TABLE): rearrange.
3896         (struct cpp_toklist): update.
3897
3898 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3899
3900         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
3901         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
3902         argument form of AC_DEFINE.
3903
3904         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
3905         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
3906         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
3907         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
3908         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
3909
3910         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
3911
3912 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3913
3914         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
3915         deduced.h): Use -isystem, not -I, for including system headers.
3916
3917 2000-04-24  Nick Clifton  <nickc@cygnus.com>
3918
3919         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
3920         the source register is the frame pointer or arg pointer.
3921         (addsi3_small_int): Disallow if source register is the frame
3922         pointer or arg pointer.
3923
3924 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3925
3926         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
3927         call to AC_MSG_RESULT.
3928
3929 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3930
3931         * invoke.texi: Correct grammatical errors, document
3932         -fno-gnu-keywords as identical to -fno-asm for C++.
3933
3934 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3935
3936         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
3937         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
3938         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
3939         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
3940         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
3941
3942         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
3943         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
3944         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
3945         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
3946         new macros names.
3947
3948 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
3949
3950         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
3951         (pop_alignment): Likewise.
3952         (handle_pragma_token): Likewise.
3953
3954 2000-04-24  Robert Lipe <robertlipe@usa.net>
3955
3956         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
3957
3958 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
3959
3960         * combine.c (try_combine): Update reg_nonzero_bits of
3961         newi2pat before newpat.
3962
3963 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3964
3965         * loop.c (strength_reduce): Simplify test to INSN_P.
3966         (record_giv): Attempt to simplify the add value, use CONSTANT_P
3967         expressions instead of CONST_INT.
3968         (express_from_1): Likewise.
3969
3970 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
3971
3972         * regs.h (reg_n_max): Don't declare.
3973         * flow.c (reg_n_max): Don't define.
3974         * regclass.c (renumber): Don't initialize to zero.
3975         (regno_allocated): Likewise.
3976         (reg_n_max): Define.
3977         (allocate_reg_info): Don't initialize unnecessarily.
3978
3979 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
3980
3981         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
3982         and blockage_p in the newly allocated attribute.
3983
3984 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
3985
3986         * config/mn10300/mn10300.md (addsi): `inc4' on address
3987         registers does not modify cc, but `inc' on an extended
3988         register does.
3989
3990 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
3991
3992         * reload.c (find_equiv_reg): Checks all valueno regs
3993         as a reload_reg_p regs.
3994
3995 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
3996
3997         * cpphash.c (collect_objlike_expansion): Add sanity check.
3998         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
3999         the buffer is the empty string, return.  Mark __DATE__ and
4000         __TIME__ as XCONST nodes, not MCONST.
4001         (_cpp_macroexpand): Avoid pushing an empty buffer.
4002         (funlike_macroexpand): Don't pop token_buffer here.
4003
4004 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
4005
4006         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
4007         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
4008         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
4009         (REGNO_OK_FOR_BASE_P): Define in terms of them.
4010         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
4011         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
4012         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
4013
4014 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4015
4016         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
4017         constant MULT givs.
4018
4019 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
4020
4021         * cpphash.h (struct definition): Move file, line, col members...
4022         (struct hashnode): ... here.  Also add 'disabled' flag.
4023         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
4024         T_IDENTITY.  Remove T_DISABLED.
4025         Update prototypes.
4026
4027         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
4028         (collect_expansion): Split into collect_objlike_expansion and
4029         collect_funlike_expansion.
4030         (_cpp_macroexpand): Split out scan_arguments, stringify, and
4031         funlike_macroexpand.
4032         (_cpp_compare_defs): Rename compare_defs, make static.
4033         (_cpp_make_hashnode): Initialize hp->disabled.
4034         (macro_cleanup): Adjust for new token types.  Clear
4035         m->disabled.
4036         (_cpp_create_definition): Move code here to determine what
4037         sort of macro it is, and code to check for redefinitions, from
4038         do_define.  Implement a few simple cases without creating a
4039         full DEFINITION.
4040         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
4041         Handle the simple cases.
4042         (push_macro_expansion): Set buf->has_escapes and hp->disabled
4043         here.
4044
4045         * cppinit.c (builtin_array): Change MCONST to XCONST
4046         everywhere.
4047         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
4048         fix check for disabled and function-like macros.
4049         * cpplib.c (do_define): Move most logic to
4050         _cpp_create_definition.
4051         (do_undef): Handle new special token types.
4052
4053 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4054
4055         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
4056         of CONSTANT_P for mult_val; always use validate_change to update insn.
4057
4058 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
4059
4060         * cpphash.c (trad_stringify, add_pat): New functions.
4061         (collect_expansion): Restore support for -traditional syntax.
4062         Use trad_stringify and add_pat.
4063         (_cpp_macroexpand): Restore support for -traditional semantics.
4064         * cpplex.c (_cpp_scan_line): Don't change space_before if we
4065         get a COMMENT token.
4066         (_cpp_lex_token): Provide COMMENT tokens to caller if
4067         traditional and parsing_define_directive.
4068         (skip_comment): Warn about // comments if -Wtraditional.
4069         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
4070         proper node type.
4071         (do_undef): Don't warn about undefining EMPTY nodes.
4072
4073 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4074
4075         * loop.c (strength_reduce): Fix biv removal code.
4076
4077 2000-04-22  Richard Henderson  <rth@cygnus.com>
4078
4079         * predict.c (estimate_probability): Examine both sides of
4080         a branch for no exits.  Use 90% not 50% for predict taken.
4081         Reorg for one copy of note generation code.
4082
4083 2000-04-22  Richard Henderson  <rth@cygnus.com>
4084
4085         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
4086
4087 2000-04-22  Richard Henderson  <rth@cygnus.com>
4088
4089         * diagnostic.c (init_output_buffer): Don't initialize format_args.
4090         (output_clear): Likewise.
4091         (output_printf): Use va_copy.
4092         (vline_wrapper_message_with_location): Likewise.
4093         (v_message_with_decl): Likewise.
4094         (line_wrapper_printf): VA_START infor buffer.format_args directly.
4095         * system.h (va_copy): Provide default implementation.
4096
4097 2000-04-22  Richard Henderson  <rth@cygnus.com>
4098
4099         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
4100         the collected condition is not a constant.
4101
4102 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
4103
4104         * diagnostic.h: New file.
4105
4106         * Makefile.in (diagnostic.o): Depends on diagnostic.h
4107
4108         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
4109         various function prototypes.
4110         (diagnostic.h): #include.
4111         (struct output_buffer): Move into diagnostic.h.
4112         (get_output_prefix): Rename to output_get_prefix.  Export.
4113         (init_output_buffer): Export. Break out.  Ajust intialization.
4114         (output_space_left, output_append): Export.
4115         (output_newline): Rename to output_add_newline.  Export.
4116         (output_clear): Nullify additional output_buffer fields.
4117         (output_puts): Rename to output_add_string.  Export.
4118         (dump_output): Rename to output_flush_on.  Export.
4119         (build_location_prefix): Constify return-type.
4120         (emit_output_prefix): Rename to output_emit_prefix. Export.
4121         (set_real_maximum_length): New function.
4122         (output_set_maximum_length): Ditto
4123         (output_clear): Ditto.
4124         (output_add_character): Ditto.
4125         (output_add_integer): Ditto.
4126         (output_add_space): Ditto.
4127         (output_format): Ditto.
4128         (output_printf): Adjust buffer initialization.
4129         (vline_wrapper_message_with_location): Ditto.
4130         (v_message_with_decl): Ditto.  Adjust call to output_puts
4131         and get_output_prefix.
4132         (default_print_error_function): Adjust buffer intialization.
4133
4134 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4135
4136         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
4137         of VOID_TYPE.
4138
4139 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
4140
4141         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
4142         of explicit 0.
4143
4144 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
4145
4146         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
4147         accurate data about SP moves.
4148
4149 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
4150
4151         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
4152         aliases to AM33 registers.
4153
4154 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
4155
4156         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
4157         to all EXTENDED bitmaps.
4158
4159 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
4160
4161         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
4162         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
4163         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
4164
4165 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
4166
4167         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
4168         the operand is not constant.
4169
4170 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
4171
4172         * reload.c (find_equiv_reg): Checks all valueno and regno regs
4173         as a call-clobbered regs.
4174
4175 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4176
4177         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
4178         * rtl.h: Likewise.
4179         * rtl.def: Update comment.
4180         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
4181         * integrate.c (expand_inline_function): Likewise.
4182         * profile.c (branch_prob): Likewise.
4183         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
4184         * print-rtl.c (print_rtx): Likewise.
4185         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
4186         (reemit_notes): Likewise; also use enum insn_note.
4187
4188         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
4189         (place_field): Properly compute know and actual alignment.
4190
4191         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
4192         in proper format.
4193
4194         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
4195         note for REG1.
4196
4197 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
4198
4199         * cpphash.c (struct arg, struct arglist): Const-ify strings.
4200         (warn_trad_stringify, duplicate_arg_p): New helper functions.
4201         (collect_expansion): Rewrite to scan over a token list.
4202         Remove -traditional support.
4203         (collect_formal_parameters): Rename to collect_params; rewrite
4204         to scan over a token list.
4205         (_cpp_create_definition): Adjust to scan a token list.
4206         (_cpp_macroexpand): Remove -traditional support.
4207         (_cpp_compare_defs): Whitespace is now canonicalized.
4208         (comp_def_part): Delete function.
4209
4210         * cpphash.h: Update prototypes.
4211         * cpplex.c (init_token_list): Don't set lineno if there is no
4212         buffer.
4213         (pedantic_whitespace): New function.
4214         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
4215         consume a newline.  Use pedantic_whitespace.
4216         (_cpp_lex_token): Remove support for -traditional macros.
4217         (_cpp_get_define_token): Delete.
4218         (_cpp_get_directive_token): Do the real work here.  Use
4219         pedantic_whitespace.
4220         (_cpp_init_input_buffer): Initialize pfile->directbuf.
4221
4222         * cpplib.c (get_macro_name): Delete.
4223         (do_define): Read the entire line into pfile->directbuf, then
4224         feed the token list to _cpp_create_definition.
4225         * cpplib.h (HSPACE_BEFORE): new define.
4226         (struct cpp_reader): Add a toklist member, "directbuf".
4227
4228         * predict.c (estimate_probability): New heuristic: if a jump
4229         branches around a block with no successors, predict it taken.
4230         Disentangle control flow.
4231
4232 2000-04-20  Richard Henderson  <rth@cygnus.com>
4233
4234         * loop.c (emit_iv_add_mult): Revert last change.
4235
4236 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
4237
4238         * cpplib.h (enum cpp_ttype): Add token types for all
4239         punctuators.  Distinguish pp-numbers from valid C numbers.
4240         Give some tokens better names.  Initialize from macro.
4241         (struct cpp_name, cpp_token, cpp_toklist): New data
4242         structures.
4243         Update prototypes.
4244         * cpplex.c (bump_column, expand_name_space,
4245         expand_token_space, init_token_list, cpp_output_list,
4246         _cpp_scan_line):  New functions.
4247         (output_line_command): Add third argument, new line number.
4248         * cpphash.h: Update prototypes.
4249         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
4250         token names.
4251
4252 2000-04-20  Richard Henderson  <rth@cygnus.com>
4253
4254         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
4255
4256 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
4257
4258         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
4259         object pointed to.
4260
4261 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4262
4263         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
4264         REG_EQUAL note explaining the calculated value.
4265
4266         * calls.c (expand_call): Avoid unnecesary precalculation
4267         and outgoing parameters space guarding for sibling calls.
4268         (store_one_arg): Likewise.
4269
4270 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4271
4272         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
4273         (rest_of_compilation): Write sibling dump file and account
4274         for time as jump time.
4275         * invoke.texi: Update documentation on dump flags.
4276
4277 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
4278
4279         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
4280
4281 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
4282
4283         * cpphash.c (special_symbol): Represent an empty macro with
4284         "\r \r " not just "\r ".
4285         (_cpp_macroexpand): Correct condition for the foo ( ) special
4286         case.
4287         (unsafe_chars): Handle EOF as second argument.
4288         (push_macro_expansion): Simplify test for removing escape at
4289         end.  Do not trim both escapes if there is no text in between.
4290
4291 2000-04-19  Jim Blandy  <jimb@redhat.com>
4292
4293         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
4294         of PTR_SIZE, when appropriate.
4295
4296 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
4297
4298         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
4299         (USE_ENUM_BITFIELDS): Fix typo.
4300
4301 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4302
4303         * stor-layout.c (place_field): Set rli->offset_align properly.
4304
4305 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4306
4307         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
4308         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
4309         PARM_BOUNDARY): Remove unnecessary casts.
4310
4311 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4312
4313         * calls.c (precompute_arguments): Remove must_preallocate and
4314         args_size calls.
4315         (expand_call): Update call of precompute_arguments.
4316
4317         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
4318         check_insn_for_givs): Break out from ...
4319         (strength_reduce) ... here; use for_every_insn_in_loop to call
4320         check_insn_for_givs.
4321         * loop.h (for_every_insn_in_loop): Declare.
4322         (loop_insn_callback): New type.
4323
4324 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
4325
4326         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
4327         not nul-terminated.
4328
4329 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
4330
4331         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
4332         flag_pic and RELOC.
4333
4334 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
4335
4336         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
4337
4338         * configure.in: Delete --disable-cpplib option and all
4339         references to cpp_main.
4340         * configure: Regenerate.
4341         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
4342         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
4343         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
4344         cpp$(exeext).  Add --no-headers to makeinfo command line when
4345         generating INSTALL.  Install and uninstall cpp.1 manpage, not
4346         cccp.1.
4347         * install.texi: Delete all references to cexp.y/cexp.c.
4348         Delete ancient instructions for compiling GCC on 3b1.
4349         * INSTALL: Regenerate.
4350
4351         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
4352         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
4353         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
4354         cexp.c/cexp.y.
4355         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
4356         which is no longer tested anywhere.
4357
4358         * cppinit.c (handle_option): Don't run error message through
4359         gettext twice.
4360
4361 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4362
4363         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
4364         * cpperror.c (hashtab.h): Now include.
4365         * cppexp.c (hashtab.h): Likewise.
4366         * cpplex.c (hashtab.h): Likewise.
4367         * cppfiles.c (hashtab.h): Likewise.
4368         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
4369         to htab_find_slot_with_hash.
4370         * cpphash.c (hashtab.h): Now include.
4371         (_cpp_lookup_slot): INSERT is now enum insert_option.
4372         * cpphash.h (_cpp_lookup_slot): Likewise.
4373         * cppinit.c (hashtab.h): Include earlier.
4374         (initialize_builtins): Pass enum to htab_find_slot.
4375         * cpplib.c (hashtab.h): Now include.
4376         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
4377         (do_pragma_poison, do_assert): Likewise.
4378         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
4379         htab_find_slot_with_hash.
4380         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
4381         * tree.c (type_hash_add): Likewise.
4382         (build1): Minor cleanup.
4383
4384         * ggc-common.c: Add missing blanks.
4385         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
4386         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
4387
4388         * stmt.c (mark_case_node): New function.
4389         (mark_case_nesting): Call it.
4390
4391         * expmed.c (emit_store_flag): If comparing two-word integer
4392         with zero, can optimize NE, EQ, GE, and LT.
4393
4394         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
4395         * conflict.c: Minor cleanups.
4396         * optabs.c: Add blank line
4397         * simplify-rtx.c: Minor cleanups.
4398
4399 2000-04-18  Stan Cox  <scox@cygnus.com>
4400
4401         * gengenrtl.c (genlegend): Fix misspelling.
4402
4403 2000-04-18  Robert Lipe  <robertlipe@usa.net>
4404
4405         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
4406         bitfields of the host compiler are not signed quantities.
4407         * config.in: Regenerate.
4408         * configure: Regenerate.
4409         * system.h (USE_ENUM_BITFIELDS): Added.
4410         (ENUM_BITFIELDS): Added.
4411         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
4412         (SHORT_ENUM_BUG): Deleted.
4413         * tree.h (tree_common): Members `code', `mode', `built_in_class',
4414         now ENUM_BITFIELD.
4415         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
4416         (CODE_FIELD_BUG): Likewise.
4417         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
4418         (OLD_CC): Likewise.
4419         * config/m68k/x-ccur (X_CFLAGS): Likewise.
4420
4421 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
4422
4423         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
4424         mark is active.
4425
4426 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4427
4428         * cppexp.c (lex): Don't assume tokens are NUL terminated.
4429         * cpplib.c (do_include, do_import, do_include_next,
4430         read_line_number, detect_if_not_defined): Likewise.
4431         * cpphash.c (collect_expansion): Likewise.
4432         (special_symbol, _cpp_macroexpand): Check return from
4433         cpp_file_buffer.
4434         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
4435         macros.  Delete all uses.
4436
4437         * gcc.dg/cpp-mi.c: Add two more test cases.
4438         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
4439
4440 2000-04-17  Richard Henderson  <rth@cygnus.com>
4441
4442         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
4443         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
4444
4445 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
4446
4447         * function.c (expand_function_start): Use hard_function_value to
4448         compute the RTL to use for DECL_RESULT.
4449
4450 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4451
4452         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
4453         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4454          x86_memory_mismatch_stall): New global variables.
4455         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
4456         alloved; fix load penalties for Athlon.
4457         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4458         x86_memory_mismatch_stall): Declare.
4459         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
4460          TARGET_MEMORY_MISMATCH_STALL): New.
4461         * i386.md (athlon scheduling parameters): Fix latencies according to
4462         Athlon Optimization Manual.
4463         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
4464         vector.
4465         (fsqrt instruction patterns): Set athlon_decode to direct.
4466         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
4467         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
4468         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
4469         and TARGET_PARTIAL_REGISTER_STALL machines.
4470         (pushdf_nointeger): New pattern.
4471         (pushdf_integer): Rename from pushdf.
4472         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
4473         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
4474
4475 2000-04-17  Richard Henderson  <rth@cygnus.com>
4476
4477         * loop.c (canonicalize_condition): Add WANT_REG argument.
4478         Stop the search if we match it.
4479         * expr.h (canonicalize_condition): Update decl.
4480         * predict.c (expected_value_to_br_prob): Use it.  Track last
4481         expected value note.
4482         (find_expected_value): Remove.
4483
4484         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
4485
4486 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4487
4488         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
4489         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
4490         a plain file.
4491         * configure.in: Call AC_FUNC_MMAP_FILE.
4492         * configure: Regenerate.
4493         * config.in: Regenerate.
4494
4495         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
4496         * fixinc/fixincl.c: Likewise.
4497
4498 2000-04-17  Richard Henderson  <rth@cygnus.com>
4499
4500         * builtins.c (expand_builtin_expect): New.
4501         (expand_builtin): Call it.
4502         * builtins.def (BUILT_IN_EXPECT): New.
4503         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
4504         * extend.texi: Document it.
4505
4506         * predict.c (expected_value_to_br_prob): New.
4507         (find_expected_value): New.
4508         * basic-block.h (expected_value_to_br_prob): Declare.
4509         * toplev.c (rest_of_compilation): Invoke it.
4510
4511         * rtl.h (NOTE_EXPECTED_VALUE): New.
4512         (NOTE_INSN_EXPECTED_VALUE): New.
4513         * rtl.c (note_insn_name): Update.
4514         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
4515         cases; handle NOTE_INSN_EXPECTED_VALUE.
4516
4517 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
4518
4519         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
4520         leaf sibcall delay slot if flag_pic.
4521         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
4522
4523 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4524
4525         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
4526
4527         * fixproto: If fix-header fails, exit with an error.
4528
4529 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4530
4531         * cse.c (struct check_depdendence_data): New.
4532         (check_dependence): New function.
4533         (invalidate): Use check_depdenence.
4534
4535 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4536
4537         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
4538         UNITS_PER_WORD is unsigned.
4539
4540         * tree.h (struct tree_common): Remove misleading comment.
4541
4542 2000-04-16  Dave Pitts  <dpitts@cozx.com>
4543
4544         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
4545         message in quotes. Otherwise, IBM's make program treats the '#' as the
4546         start of a comment and ignores the remainder of the line.
4547
4548         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
4549         upper case.
4550         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
4551         * cexp.y (initialize_random_junk): Likewise.
4552         * cppfiles.c (find_include_file): Cast alloca return value.
4553         * cppinit.c (initialize_standard_includes): Likewise.
4554         * cpplib.c (cpp_define, cpp_undef): Likewise.
4555         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
4556         * final.c (output_asm_insn): Allow for holes in EBCDIC.
4557         * fold-const.c (CHARMASK): New.
4558         (real_hex_to_f): Use it.
4559         * real.c (CHARMASK): New.
4560         (etoasc, asctoeg): Use it.
4561         (asctoeg): EBCDIC lower case characters preceed upper case.
4562
4563         * i370.c (mvs_add_label): Change spacing for coding conventions.
4564         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
4565         outputing case vectors.
4566         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
4567         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
4568         since vector in in the data CSECT.
4569         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
4570         * i370.md (Many patterns): Put the length in the XL directives.
4571         (movdi): Put back STM and MVC in definition.
4572         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
4573         pattern using the TCA.
4574         * oe.h (CPP_SPEC): Added to allow trigraphs.
4575         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
4576         not support the "long long" type.
4577
4578 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4579
4580         * config/mips/mips-protos.h (mips_legitimate_address_p): New
4581         function.
4582         (mips_reg_mode_ok_for_base_p): Likewise.
4583         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
4584         (REG_OK_FOR_INDEX_P): Define unconditionally.
4585         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
4586         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
4587         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
4588         that GET_MODE_SIZE is unsigned.
4589         (mips_reg_mode_ok_for_base_p): Define.
4590         (mips_legitimate_address_p): Likewise.  Adjust now
4591         that GET_MODE_SIZE is unsigned.
4592         (block_move_loop): Make the number of bytes unsigned.
4593         (expand_block_move): Likewise.
4594         (function_arg): Make the loop counter unsigned to match the
4595         boundary condition.
4596
4597 2000-04-16  Richard Henderson  <rth@cygnus.com>
4598
4599         * rtl.h (enum insn_note): New enumeration.  Subsume
4600         NOTE_INSN_DELETED and friends.
4601         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
4602         * rtl.c (note_insn_name): Tweak string order.
4603
4604 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
4605
4606         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
4607         to offset * 2.
4608
4609         * cpplex.c (output_line_command): Remove debugging prints.
4610         (cpp_output_tokens): Don't write out a zero-length buffer or
4611         try to see if it has a newline in it.
4612         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
4613         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
4614         the end of the loop.  Use memmove.  Don't read past the end of
4615         the buffer.  Remove trailing newlines from error messages.
4616
4617 2004-04-16  Neil Booth  <NeilB@earthling.net>
4618
4619         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
4620         * cpplib.c: Add new syntax flags to directive table, and
4621         supporting macros.
4622
4623 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
4624
4625         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
4626         using ret $N.
4627
4628 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
4629
4630         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
4631         * haifa-sched.c: Update -fsched-verbose comments to use "=".
4632
4633 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4634
4635         * Makefile.in (ggc-page.o): Now includes toplev.h.
4636         * ggc-page.c (toplev.h): Now included.
4637         (gc_time): Remove declaration.
4638         (ggc_collect): TIME now long.
4639         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
4640         others static.
4641         * toplev.h (gc_time, parse_time, gc_time): New declarations.
4642
4643         * toplev.c: Make *_time variable long to reduce chance of overflow.
4644         (TIMEVAR): Likewise for `otime'.
4645         (print_time): Arg is now long; compute percentage in FP and round.
4646         * toplev.h (print_time): Arg is long.
4647
4648         * tree.c: Minor whitespace changes.
4649
4650         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
4651         * configure: Rebuilt.
4652         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
4653         (__fixunsxfDI): Renamed from __fixunsxfdi.
4654         (__fixunsdfDI): Renamed from __fixunsdfdi.
4655         (__fixunssfDI): Renamed from __fixunssfdi.
4656         (__floatdisf): Use proper type in REP_BIT macro.
4657         (__fixunsxfSI): Renamed from __fixunsxfsi.
4658         (__fixunsdfSI): Renamed from __fixunsdfsi.
4659         (__fixunssfSI): Renamed from __fixunssfsi.
4660         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
4661         Change location of macros and upper-case some names as above.
4662         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
4663         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
4664
4665         * varasm.c (assemble_variable): Add cast to remove warning.
4666         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
4667
4668         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
4669         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
4670         region number to -1.
4671
4672 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
4673
4674         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
4675         call unshare_all_rtl.
4676
4677         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
4678
4679 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
4680
4681         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
4682         Use .s1 not .s0 for all FP instructions.
4683
4684 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
4685
4686         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
4687         interfaces.
4688         (safe_fwrite, output_line_command): New static functions.
4689         (cpp_expand_to_buffer): Now private to cpplib.
4690         (cpp_scan_buffer): Take a printer.
4691
4692         * cpphash.h: Update prototypes.
4693         * cpplib.h: Update prototypes.
4694         (cpp_printer): New.
4695         (cpp_buffer): Remove last_nominal_fname.
4696         (cpp_reader): Remove lineno.
4697
4698         * cppmain.c: Use a cpp_printer.
4699         * fix-header.c: No need to inhibit line commands.  Call
4700         cpp_start_read with no printer.
4701
4702         * cpperror.c (cpp_notice_from_errno): Provide default name.
4703         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
4704         (find_include_file, cpp_read_file): Use make_IHASH.
4705         (file_cleanup): Set control_macro and clear
4706         input_stack_listing_current here.
4707         (_cpp_execute_include): Don't output entering-file marker.
4708         * cpphash.c (special_symbol): Look for the line number in the
4709         buffer, not the reader.
4710         (_cpp_macroexpand): No need to disable line commands.
4711         (_cpp_dump_definition): No need to generate line commands.
4712         (dump_hash_helper): Remove excess newline from output.
4713         * cppinit.c (dump_special_to_buffer): No need to generate line
4714         commands.
4715         (cpp_printer_init): New.
4716         (cpp_start_read): Take a printer, and start it up if it's not
4717         NULL.  No need to generate line commands.
4718         (cpp_finish): Expect no buffers stacked at all.  Take a
4719         printer argument, and flush the output buffer if it's not
4720         NULL.
4721         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
4722         Don't put two hashes at the beginning of an assertion.
4723         (cpp_get_token): Don't increment pfile->lineno or emit line
4724         commands here.  Return EOF if there's no buffer when we get
4725         EOF.
4726         * cpplib.c (do_define, skip_if_group):
4727         No need to disable line commands.
4728         (_cpp_output_line_command): Delete function.
4729         (do_line): Don't emit line commands here, but set things up so
4730         they will be emitted if necessary.  Use _cpp_fake_ihash to
4731         make unique nominal_fnames if necessary.
4732         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
4733         with 0 for column, not -1.
4734         (_cpp_handle_eof): Don't set the control macro here.  Don't
4735         clear input_stack_listing_current here.  Don't emit line
4736         commands.
4737
4738 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
4739
4740         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
4741         always, use the default SVR4 start address.
4742
4743         * config/rs6000/linux.h (LINK_SPEC): Don't define.
4744         (LINK_SHLIB_SPEC): Define.
4745         (LINK_START_DEFAULT_SPEC): Define.
4746         (LINK_OS_DEFAULT_SPEC): Define.
4747
4748         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
4749
4750         * config/rs6000/eabi.asm (__eabi): Call __init rather than
4751         __do_global_ctors to handle constructors.
4752         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
4753         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
4754         (STARTFILE_MVME_SPEC): Likewise.
4755         (STARTFILE_SIM_SPEC): Likewise.
4756         (ENDFILE_ADS_SPEC): Use crtend.
4757         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
4758         (ENDFILE_MVME_SPEC): Likewise.
4759         (ENDFILE_SIM_SPEC): Likewise.
4760         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
4761         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
4762         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
4763         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
4764         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
4765         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
4766         (CRTSTUFF_T_CFLAGS_S): Define.
4767         * config/rs6000/eabi-ctors.c: Delete.
4768
4769         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
4770         boundary.
4771         (__fini): Likewise.
4772         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
4773         boundary.
4774         (__fini): Likewise.
4775
4776 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
4777
4778         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
4779         plus mask size is smaller or equal to the mode size.
4780
4781 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4782
4783         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
4784         not yet set.
4785
4786         * expr.c (reload.h): Now included.
4787         (emit_block_move): Set volatile_ok when checking for movstr.
4788         (emit_move_1): Check for replacements in addresses in multi-word case.
4789         * Makefile.in (expr.o): Now includes reload.h.
4790
4791         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
4792         Never have a LIBCALL end a basic block.
4793         (find_basic_blocks_1): Likewise.
4794         Reorganize CALL_INSN cases.
4795
4796         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
4797
4798 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
4799
4800         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
4801         completers from mov.ret instruction.
4802
4803 2000-04-14  Richard Henderson  <rth@cygnus.com>
4804
4805         * fold-const.c (extract_muldiv): Don't distribute and widen
4806         multiply across plus for non-sizetype unsigned types.
4807
4808 2000-04-14  Richard Henderson  <rth@cygnus.com>
4809
4810         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
4811         If the original source is dead in the incr insn, it's dead now.
4812
4813 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4814
4815         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
4816         see if DECL_BIT_FIELD needs to still be set.
4817
4818         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
4819
4820         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
4821         print_int_cst_octal with something that's not an INTEGER_CST.
4822
4823         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
4824         and not a SUBREG to a FLOAT rtl.
4825
4826 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
4827
4828         * emit-rtl.c (try_split): Avoid infinite loop if the split
4829         results in a sequence that contains the original insn.
4830
4831 2000-04-13  Andreas Jaeger  <aj@suse.de>
4832
4833         * config/mips/mips.c (expand_block_move): Pass alignment
4834         argument to move_by_pieces in bits, not bytes.
4835
4836         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
4837         __pic__ for little endian.
4838
4839 2000-04-13  Andreas Jaeger  <aj@suse.de>
4840
4841         * config/i386/i386-protos.h: Add prototype for
4842         uno_comparison_operator.
4843
4844 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4845
4846         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
4847         * calls.c (ECF_PURE): New flag.
4848         (emit_call_1): Handle ECF_PURE calls.
4849         (initialize_argument_information): Unset ECF_PURE flag too.
4850         (precompute_arguments): Precompute for ECF_PURE too.
4851         (expand_call): Handle ECF_PURE calls too.
4852         (emit_library_call_value_1): Rename no_queue argument to fn_type,
4853         accept value of 2 as pure function.
4854         (emit_library_call_value, emit_library_call): Rename no_queue argument
4855         to fn_type.
4856         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
4857
4858         * tree.h (DECL_IS_PURE): New macro.
4859         (struct tree_decl): Add pure_flag.
4860         * c-common.c (enum attrs): Add attribute "pure".
4861         (init_attributes): Initialize attribute "pure"
4862         (decl_attributes): Handle attribute "pure".
4863         * extend.texi (Attribute "pure"): Document.
4864         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
4865         in pure function.
4866         (flags_from_decl_or_type): Support attribute "pure".
4867
4868 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
4869
4870         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
4871         the token except for numbers and identifiers.
4872
4873 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
4874
4875         * i386.c (ix86_expand_binary_operator,
4876         ix86_expand_unary_operator): Check no_new_pseudos
4877         instead of reload_in_progress and reload_completed.
4878         (ix86_split_ashldi, ix86_split_ashrdi,
4879         ix86_split_lshrdi): Check no_new_pseudos instead
4880         of reload_completed.
4881
4882 2000-04-12  Jeffrey A Law  (law@cygnus.com)
4883
4884         * function.c (purge_addressof): Unshare any shared rtl created by
4885         purge_addressof and its children.
4886
4887 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
4888
4889         * function.c (aggregate_value_p): VOID_TYPE nodes are never
4890         aggregates.
4891
4892 2000-04-05  Andreas Jaeger  <aj@suse.de>
4893
4894         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
4895         not compiling PIC code, add flags for mabi=64.
4896         (SUBTARGET_CPP_SIZE_SPEC): New.
4897         (SUBTARGET_CPP_SPEC): New.
4898         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
4899         for MIPS/Linux and lots of code needs these defines.
4900
4901 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
4902
4903         * reorg.c (fill_slots_from_thread): Check side_effects_p when
4904         trying the "opposite arithmetic" approach.
4905
4906 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4907
4908         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
4909         (struct sh_args): Add new field force_mem.
4910         (INIT_CUMULATIVE_ARGS): Initialize it.
4911         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
4912
4913 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4914
4915         * calls.c (expand_call): Do not reverse args in "equal from" field.
4916         (emit_library_call_value_1): Emit_libcall_block for const and pure
4917         function.
4918
4919 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4920
4921         * reload1.c (reload_combine): Don't enable optimization for fixed
4922         registers when encountering a BARRIER.
4923
4924 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4925
4926         * builtins.c (expand_builtin_memcmp): Do expansion even with
4927         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
4928
4929         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
4930         stack is propertly aligned; add sanity checking for aligned
4931         stack pointer.
4932         (expand_library_call_value_1): Add sanity checking for aligned
4933         stack pointer.
4934
4935 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
4936
4937         * calls.c (emit_library_call_value_1): Change 3rd arg to
4938         locate_and_pad_parm to disregard the setting of partial.
4939
4940 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4941
4942         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
4943
4944         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
4945         CALL_INSN from the normal case.
4946
4947 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4948
4949         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4950         New global variables.
4951         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
4952         adjustment.
4953         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4954         Declare,
4955         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
4956          TARGET_ADD_ESP_8): New macros.
4957         * i386.md: Add peep2s to convert esp adjustments to push and pop
4958         instructions.
4959         (pushsi_prologue, popsi_epilogue): New patterns.
4960
4961 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
4962
4963         * real.c (toe64): Remove stale #endif from the last change.
4964
4965 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
4966
4967         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
4968         * real.c (toe64): Revert previous change.
4969
4970 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
4971
4972         * objc/objc-act.c: Include ggc.h.
4973         (objc_tree_index, objc_global_trees): Convert most of the
4974         static tree variables into a static array with previous names
4975         as defines.
4976         (objc_ellipsis_node): New variable.
4977         (lang_init): Call objc_act_parse_init and c_parse_init.
4978         Create objc_ellipsis_node.
4979         (build_selector_translation_table): Use objc_ellipsis_node instead
4980         of (tree)1.
4981         (hack_method_prototype): Likewise.
4982         (get_arg_type_list): Likewise.
4983         (start_method_def): Likewise.
4984         (continue_method_def): Likewise.
4985         (gen_method_decl): Likewise.
4986         (ggc_mark_imp_list): New function.
4987         (ggc_mark_hash_table): New function.
4988         (objc_act_parse_init): New function.
4989         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
4990         * c-parse.in (c_parse_init): For objc add roots of objc specific
4991         local tree variables.
4992         * objc/objc-parse.y: Rebuilt.
4993         * objc/objc-parse.c: Rebuilt.
4994         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
4995
4996 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
4997
4998         * cse.c (delete_trivially_dead_insns): Also delete insns
4999         that copy a register to itself where the destination is
5000         a strict_low_part.
5001
5002 2000-04-11  Richard Henderson  <rth@cygnus.com>
5003
5004         * flow.c (struct propagate_block_info): Add new_dead, new_live.
5005         (propagate_block): Initialize them.  Use them in parallel instead
5006         of one tmp variable, ie revert much of the 0408 and 0407 functional
5007         changes, but keep the structural changes.
5008         (mark_set_regs): Take new_dead from propagate_block_info instead.
5009         (mark_set_1, mark_set_reg): Likewise.
5010         (mark_used_regs): Likewise with new_live.
5011         (mark_used_reg): Likewise.  Revert 0408 change.
5012
5013 2000-04-11  Nick Clifton  <nickc@cygnus.com>
5014
5015         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
5016         restriction.
5017         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
5018
5019 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5020
5021         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
5022         const section to output a CONSTRUCTOR based on the same conditions
5023         used for VAR_DECLs.
5024
5025 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
5026
5027         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
5028         * pa/pa-protos.h (output_call): Add additional argument indicating
5029         if the call is a sibling/tail call.
5030         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
5031         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
5032         (function_arg, function_arg_partial_nregs): Likewise
5033         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
5034         (emit_move_sequence): Zero extend certain constants as needed
5035         for TARGET_64BIT.
5036         (compute_zdepdi_operands, output_64bit_and): New functions.
5037         (output_64bit_ior, function_arg): Likewise.
5038         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
5039         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
5040         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
5041         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
5042         (output_bvb): Likewise.
5043         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
5044         (output_call): New argument 'sibcall'.  Generate sibcall sequences
5045         as needed.
5046         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
5047         (ouput_arg_descriptor): Do not emit argument descriptors for
5048         TARGET_64BIT.
5049         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
5050         defined.
5051         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
5052         (FUNCTION_OK_FOR_SIBALL): Define.
5053         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
5054         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
5055         (CPP_SPEC): Use new spec infrastructure.
5056         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
5057         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
5058         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
5059         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
5060         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
5061         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
5062         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
5063         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
5064         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
5065         (FUNCTION_ARG); Call out to C code.
5066         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
5067         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
5068         (MIN_UNITS_PER_WORD): Likewise.
5069         * pa/pa.md (cmpdi): New expander.
5070         (scc patterns, movstrsi): Not available for TARGET_64BIT.
5071         (64bit conditional arithmetic): New patterns.
5072         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
5073         (movsicc): Not available if modes on all the operands to not match.
5074         (movdicc): New expander and associated patterns.
5075         (64bit branches): New patterns.
5076         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
5077         (pre_ldd, post_std): New patterns.
5078         (64bit addil, load low part): New patterns.
5079         (special movsf constant): Not available for TARGET_64BIT.
5080         (movsf, movdf expanders): Force constants into memory.
5081         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
5082         (64bit movdf/movdi patterns): New patterns.
5083         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
5084         for TARGET_64BIT.
5085         (extendqidi2, extendhidi2, extendsidi2): Similarly.
5086         (adddi3 expander): Allow "arith_operand" for second input.
5087         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
5088         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
5089         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
5090         (muldi3): New expander for TARGET_64BIT.
5091         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
5092         for TARGET_64BIT.
5093         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
5094         patterns for TARGET_64BIT.
5095         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
5096         patterns for TARGET_64BIT.
5097         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
5098         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
5099         (sibcall_epilogue): New expander.
5100         (casesi): Tweak for TARGET_64BIT.
5101         (call expanders): Set & use the outgoing argument pointer.  Use the
5102         64bit call patterns as needed. Add additional arg to output_call.
5103         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
5104         (sibcall, sibcall_internal_symref): New expanders.
5105         (sibcall_value, sibcall_value_internal_symref
5106         (interspace_jump): Turn into an expander + matching patterns.
5107         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
5108         * pa/pa64-regs.h: Eliminate trigraph sequences.
5109         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
5110
5111 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
5112
5113         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
5114         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
5115         cpp_token with cpp_ttype everywhere.
5116         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
5117         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
5118         CPP_BUF_COL.  Line and column numbers are unsigned int, not
5119         long.
5120         * cpplex.c (cpp_buf_line_and_col): Delete.
5121         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
5122         'long lineno' to 'unsigned int lineno'.
5123         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
5124
5125 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5126
5127         * extend.texi: ISO C99 is not a draft anymore.
5128         * invoke.texi: ISO C++ is not a draft anymore.
5129         * cpp.texi: __cplusplus is required by the ISO standard.
5130
5131         * extend.texi (-fthis-is-variable): Undocument.
5132         * flags.h (warn_template_debugging): Remove declaration.
5133         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
5134         -Wenum-clash, -Wtemplate-debugging): Undocument.
5135
5136 2000-04-10  Nick Clifton  <nickc@cygnus.com>
5137
5138         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
5139         integer.
5140         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
5141         integer.
5142         (ARM_SIGN_EXTEND): Use HOST_UINT.
5143         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
5144         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
5145         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
5146         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
5147
5148         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
5149         (arm_gen_constant): Use HOST_UINT.
5150         (arm_canonicalize_constant): Use HOST_UINT.
5151         (arm_reload_in_hi): Use HOST_UINT.
5152         (arm_reload_out_hi): Use HOST_UINT.
5153         (output_multi_immediate): Use HOST_UINT.
5154         (int_log2): Use HOST_UINT.
5155         (arm_poke_function_name): Use HOST_UINT.
5156         (arm_output_epilogue): Use arm_volatile_func().
5157         (output_thumb_prologue): Use arm_strip_name_encoding().
5158
5159 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5160
5161         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
5162         of sequence point problems.
5163
5164 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
5165
5166         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
5167         Recomment.
5168         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
5169
5170 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5171
5172         * sbitmap.h: Whitespace changes and use upper-case macro args.
5173         (struct simple_bitmap_def): All sizes now unsigned.
5174         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
5175         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
5176         (sbitmap_vector_alloc): Parms and local vars now unsigned.
5177         (sbitmap_zero): Cast bzero arg to PTR.
5178         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
5179         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
5180         loop to make structure clearer.
5181         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
5182         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
5183         (sbitmap_a_and_b_or_c): Likewise.
5184         (sbitmap_intersection_of_succs): Minor cleanups.
5185         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
5186         (sbitmap_union_of_preds): Likewise.
5187         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
5188         (debug_sbitmap): New function.
5189
5190         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
5191         * c-typeck.c (convert_for_assignment): Likewise.
5192
5193         * expmed.c (init_expmed): Don't free objects we make.
5194         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
5195
5196         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
5197         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
5198
5199         * gcse.c (expr_hash_table_size): Now unsigned.
5200         (compute_ae_gen): Local variable `i' now unsigned.
5201         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
5202         (compute_transout, hoist_code): Likewise.
5203         (compute_local_properties): Likewise, also hash_table_size.
5204         (alloc_expr_hash_table): N_INSNS now unsigned.
5205         (delete_null_pointer_checks): Mark arg F as unused.
5206
5207         * regrename.c: Minor cleanups, including chang some variables
5208         to unsigned int.
5209
5210 2000-04-10  Neil Booth  <NeilB@earthling.net>
5211
5212         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
5213         than GETC ().
5214         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
5215
5216 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5217
5218         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
5219         __classof__, and __headof__ from the list of gnu keywords.
5220         (-ansi): Remove -foperator-names from list of implied options.
5221         Do not call it ANSI C++.
5222         (-foperator-names): Document as -fno-operator-names.
5223
5224 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
5225
5226         * cpphash.c (timestamp): Delete.
5227         (del_HASHNODE): If type is T_MCONST, free value.cpval.
5228         (special_symbol): Remove unnecessary braces.  Remove
5229         T_VERSION.  Treat T_STDC like T_CONST unless
5230         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
5231         when one is encountered, then convert them into T_MCONST
5232         nodes.
5233         * cppinit.c (builtin_array): version_string is T_MCONST.
5234         __STDC__ has a "1" in its cpval.  Don't have a terminator
5235         entry.  Clean up which entries are dumped.
5236         (initialize_builtins): Only __STDC__ gets the special
5237         -traditional treatment.  Count the length of builtin_array.
5238         Render version_string here.
5239         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
5240         * cpplib.h (struct cpp_reader): Remove timebuf.
5241
5242 2000-04-09  Richard Henderson  <rth@cygnus.com>
5243
5244         * genrecog.c (pred): Update comparison_operator for the unordered
5245         operators.
5246
5247         * config/i386/i386.c (no_comparison_operator): Disallow unordered
5248         operators.
5249         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
5250         (uno_comparison_operator): New.
5251         (put_condition_code): Handle UNORDERED/ORDERED.
5252         (unsigned_comparison): Likewise.
5253         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
5254         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
5255         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
5256         update all callers.  Handle all 8 unordered operators.
5257         (ix86_expand_setcc): Lose the unordered argument, update all callers.
5258         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
5259         * config/i386/i386.h (PREDICATE_CODES): Update.
5260         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
5261         (ix86_expand_branch, ix86_expand_setcc): Update.
5262         * config/i386/i386.md (sunordered, sordered): New.
5263         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
5264         (bunordered, bordered): New.
5265         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
5266         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
5267         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
5268
5269 2000-04-09  Philip Blundell  <philb@gnu.org>
5270
5271         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
5272
5273 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
5274
5275         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
5276         fix_truncxfhi2): New patterns.
5277         * i386.c (output_fix_trunc): Handle converting to HImode.
5278
5279 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
5280
5281         * ssa.c (convert_to_ssa): Eliminate dead code when calling
5282         life_analysis.
5283         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
5284         (for_each_successor_phi): Change parameter to basic_block.
5285         (coalesce_regs_in_successor_phi_nodes): Likewise.
5286         (coalesce_regs_in_copies): Likewise.
5287         (compute_coalesced_reg_partition): Use basic_block instead of index.
5288         * rtl.h (convert_to_ssa): Delete.
5289         (convert_from_ssa): Likewise.
5290         (successor_phi_fn): Likewise.
5291         (for_each_successor_phi): Likewise.
5292         (in_ssa_form): Likewise.
5293         * basic-block.h (convert_to_ssa): Moved from rtl.h.
5294         (convert_from_ssa): Likewise.
5295         (successor_phi_fn): Likewise.
5296         (in_ssa_form): Likewise.
5297         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
5298         * flow.c (calculate_global_regs_live): Pass a basic_block to
5299         for_each_successor_phi.
5300
5301 2000-04-08  Richard Henderson  <rth@cygnus.com>
5302
5303         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
5304         was modified in the current insn.
5305
5306 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5307
5308         * arm/thumb.md: Delete.
5309         * arm/thumb-protos.h: Delete.
5310
5311 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5312
5313         Merge changes from merged-arm-thumb-backend-branch onto trunk.
5314
5315         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
5316
5317         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
5318         into branch.
5319
5320         * arm.md (nop): Use the standard RTL expression.  Don't code as a
5321         define_expand.
5322         (*arm_nop, *thumb_nop): Delete.
5323
5324         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
5325         constants.  Use casts instead.
5326         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
5327         output_multi_immediate, arm_poke_function_name): Likewise.
5328         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
5329         MASK_RETURN_ADDDR): Likewise.
5330
5331         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
5332
5333         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
5334         into branch.
5335
5336         * arm.md (eh_epilogue): New function.
5337         * arm.h (struct machine_function): Move to here ...
5338         * arm.c: ... from here.
5339         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
5340         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
5341         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
5342
5343         2000-03-30  Nick Clifton  <nickc@cygnus.com>
5344
5345         * config/arm/semi.h (ASM_SPEC): Restore definition.
5346         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
5347
5348         * config/arm/elf.h (ASM_SPEC): Restore definition.
5349         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
5350
5351         * config/arm/arm.h (ASM_SPEC): Remove definition.
5352         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
5353
5354         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
5355
5356         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
5357
5358         2000-03-24  Nick Clifton  <nickc@cygnus.com>
5359
5360         Various formating tidyups, elimination of compile time
5361         warnings and synchronisation with internal sources:
5362
5363         * config/arm/arm-protos.h (assemble_align): Add prototype.
5364         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
5365         (gen_comapre_reg): Rename to arm_gen_compare_reg.
5366         (arm_return_addr_rtx): Rename to arm_return_addr.
5367
5368         * config/arm/arm.c: Include except.h.
5369         Define shorter typenames for strict minipool_node and struct
5370         minipool_fix.
5371         (arm_return_in_memory): For WinCE return all structures <= 32 bits
5372         in memory.
5373         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
5374         (gen_comapre_reg): Rename to arm_gen_compare_reg.
5375
5376         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
5377         already defined.
5378         (ASM_SPEC): Define if not already defined.
5379         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
5380
5381         * config/arm/arm.md: Rename references to gen_rotated_half_load to
5382         arm_gen_rotated_half_load, and references to gen_comapre_reg to
5383         arm_gen_compare_reg.
5384         (indirect_jump):  Only accept register operands.
5385         (load_indirect_jump): Keep this pattern since combine can generate
5386         it.
5387
5388         * config/arm/coff.h: Include aout.h.
5389         (MULTILIB_DEFAULTS): Only define if not already defined.
5390
5391         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
5392         into arm.h (so that COFF ports can support thumb based aliases).
5393         (ASM_SPEC): Move definition into arm.h
5394
5395         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
5396         redundant apcs spec.
5397         (ASM_SPEC): Move definition to arm.h
5398
5399         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
5400
5401         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
5402         for entries in the .bss section
5403
5404         2000-03-23  Nick Clifton  <nickc@cygnus.com>
5405
5406         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
5407         to thumb_far_jump_used_p.
5408
5409         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
5410         single integer parameter.
5411
5412         * config/arm/arm.c (struct machine_function): Add two new
5413         fields, 'far_jump_used' and 'arg_pointer_live'.
5414         (thumb_far_jump_used_p): Once the decision has been made that
5415         far jumps might be used, always return true.
5416         If being called from the initial elimination offset macro then
5417         do not bother to perform the test if the arg pointer is not
5418         being used.
5419         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
5420         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
5421
5422         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
5423
5424         * arm.c (output_return_instruction): Handle more cases where we can
5425         return from a function with an ldr instruction.
5426         (arm_output_epilogue): Likewise.
5427
5428         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
5429         if we need to push a large stack frame and there are no callee-saved
5430         registers.
5431
5432         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
5433         in ARM code if the frame pointer has been eliminated.
5434
5435         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
5436         unspec_volatile arguments to avoid duplicates.
5437         (consttable_1, consttable_2): Fixes for big-endian mode.
5438
5439         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
5440         as appropriate.
5441
5442         Re-write constant pool code.
5443         * arm.c (minipool_node, minipool_fix): New types.
5444         (minifix): Delete type.
5445         (arm_add_minipool_constant): Delete.
5446         (arm_compute_minipool_offsets, arm_find_barrier,
5447         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
5448         (get_jump_table_size): Now returns HOST_WIDE_INT.
5449         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
5450         functions.
5451         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
5452         (assign_minipool_offsets, arm_print_value): Likewise.
5453         (dump_minipool): Rewrite.
5454         (arm_barrier_cost): New function.
5455         (create_fix_barrier): New function.
5456         (push_minipool_barrier): New function.
5457         (push_minipool_fix): Record additional information about the fixup
5458         required.
5459         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
5460         check the mode of what needs fixing.
5461         (arm_reorg): Rewrite.
5462
5463         2000-03-08  Nick Clifton  <nickc@cygnus.com>
5464
5465         * config/arm/arm.md (indirect_jump): Force constant addresses into
5466         a register.
5467
5468         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
5469
5470         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
5471
5472         2000-02-24  Nick Clifton  <nickc@cygnus.com>
5473
5474         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
5475         adjust is word aligned.
5476         (thumb_expand_epilogue): Make sure that stack adjust is word
5477         aligned.
5478
5479         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
5480
5481         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
5482
5483         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
5484         pointer relative addresses.
5485
5486         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
5487
5488         * arm.c (find_barrier): Find the last barrier within the allowed
5489         range.
5490
5491         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5492
5493         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
5494
5495         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5496
5497         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
5498         ARM_FUNCTION_PROFILER.
5499
5500         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
5501         ARM_FUNCTION_PROFILER.
5502
5503         * config/arm/linux-oldld.h: Imported from mainline sources.
5504
5505         2000-02-07  Nick Clifton  <nickc@cygnus.com>
5506
5507         * config/arm/lib1funcs.asm: Merge in thumb functions from
5508         lib1thumb.asm.
5509
5510         * config/arm/lib1thumb.asm: Delete.
5511
5512         2000-02-04  Nick Clifton  <nickc@cygnus.com>
5513
5514         * config/arm/arm.c: Sychronised with current Red hat local
5515         sources.
5516         * config/arm/arm.h: Ditto.
5517         * config/arm/arm-protos.h: Ditto.
5518
5519         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
5520
5521         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
5522
5523         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
5524         byte stores.
5525
5526         2000-02-02  Nick Clifton  <nickc@cygnus.com>
5527
5528         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
5529
5530         * config/arm/arm.md (epilogue): Fix rtl checking abort because
5531         (return) was emited using an emit_insn() call.
5532
5533         2000-01-31  Nick Clifton  <nickc@cygnus.com>
5534
5535         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
5536         thumb stack frame.
5537         (thumb_exit): Move frame pointer back into hard frame pointer
5538         register if backtracing is being used.
5539
5540         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
5541
5542         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
5543         into branch.
5544
5545         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
5546
5547         * config/arm/arm.md (neg_pool_offset): Provide default for new
5548         attribute.
5549         (arm_movsi_insn): Add neg_pool_offset attribute.
5550         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
5551         rtx for the insn that starts the scan and an unsigned long for its
5552         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
5553         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
5554         instructions in *PINSERTED.
5555         (struct minipool_fixup): Add MIN_ADDRESS elt.
5556         (sort_fixups): Compute it.
5557         (arm_reorg): Changes to support inserting pools before the insn to be
5558         fixed up.
5559
5560         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
5561
5562         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
5563         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
5564         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
5565
5566         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
5567
5568         * config/arm/semi.h (TARGET_VERSION): Do not define if already
5569         defined.
5570         (TARGET_DEFAULT): Do not define if already defined.
5571
5572         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
5573
5574         * config/arm/arm.md (anddi3): Allow disjoint source operands.
5575         (iordi3): Allow disjoint source operands.
5576         (xordi3): Allow disjoint source operands.
5577         (negdi2): Permit construction for ARM and Thumb.
5578         (arm_negdi2): Renamed version of old negdi2 pattern.
5579         (thumb_negdi2): New pattern: Only permit non-overlapping
5580         source and destination.
5581
5582         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
5583
5584         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
5585         scratch low register so that it will not be deleted.
5586
5587         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
5588
5589         * config/arm/pe.h (ARM_PE): Define.
5590
5591         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
5592         interfacearm attribute if this is a PE toolchain.
5593         (output_return_instruction): Do not emit anything if the function
5594         has the naked attribute set.
5595         (is_called_in_ARM_mode): If the function has the interfacearm
5596         attribute then return true.
5597         (thumb_expand_prologue): Do not generate a prologue for naked
5598         functions.
5599         (thumb_expand_epilogue): Do not generate an epilogie for a naked
5600         function.
5601         (output_thumb_prologue): Do not bother if the function is naked.
5602         Strip PE encoding from function name before emitting.
5603
5604         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
5605
5606         * arm.md (pic_load_addr): Fix constraints.
5607
5608         * arm.md (casesi_insn): Fix mis-applied patch.
5609
5610         * arm.md ("core" function unit): Add rules for single- and
5611         multi-cycle insns.
5612         (All TARGET_THUMB patterns): Add "type" attribute information
5613         where needed.
5614         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
5615         the following insn is a CALL.
5616
5617         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
5618         pointer.
5619         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
5620         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
5621         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
5622
5623         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
5624
5625         * config/arm/linux-gas.h: oops - this file was missed out when the
5626         branch was created...
5627
5628         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
5629
5630         * thumb.c: Deleted.  Move contents to ...
5631         * arm.c: ... here.
5632         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
5633         rule for thumb.o
5634         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
5635         * configure: Regen.
5636
5637         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
5638         declare a prototype for asm_output_align();
5639
5640         * arm.c (thumb_condition_code): Delete.
5641         (arm_print_operand): Always use arm_condition_code array.
5642
5643         * arm.c (thumb_return_addr_rtx): Delete.
5644         (arm_save_machine_status, arm_restore_machine_status): Delete.
5645         (arm_init_machine_status, arm_mark_machine_status): New functions.
5646         (arm_init_expanders): Update accordingly.
5647         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
5648         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
5649         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
5650
5651         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
5652
5653         * configure.in : Fix arm-*-aout target to use new t-arm-aout
5654         script.
5655         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
5656         targets.
5657
5658         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
5659
5660         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
5661         stack backtrace structure.
5662
5663         * config/arm/arm-protos.h: Add prototypes for functions defined in
5664         arm/pe.h.
5665
5666         * config/arm/arm.c (arm_override_options): Fix selection of
5667         attributes of default processor.
5668
5669         * config/arm/coff.h: Delete needless #include.
5670
5671         * config/arm/pe.c: Delete unused code.
5672
5673         * config/arm/pe.h (CPP_DEFINES): Delete
5674         (SUBTARGET_CPP_SPEC): Define.
5675         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
5676
5677         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
5678
5679         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
5680
5681         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
5682         updated.
5683         (CAN_DEBUG_WITHOUT_FP): Define.
5684         (FIXED_REGISTERS): Make r11 call-saved.
5685         (CALL_USED_REGISTERS): Likewise.
5686         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
5687         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
5688         frame-pointer is required.
5689         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
5690         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
5691         if the target normally needs a stack frame in non-leaf functions.
5692         (use_return_insn): Correct logic for determining when a return
5693         instruction can be used.
5694         (output_return_instruction): Handle the frame-pointer register as
5695         a normal register when not TARGET_APCS_FRAME.
5696         (arm_output_prologue): Likewise.
5697         (arm_output_epilogue): Likewise.
5698         (output_func_epilogue): Likewise.
5699         (arm_expand_prologue): Likewise.
5700         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
5701
5702         * arm.c (use_return_insn): No need to check floating point regs if
5703         TARGET_SOFT_FLOAT.
5704         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
5705         the code of value stored in the minipool array.
5706         (arm_add_minipool_constant): Likewise.
5707
5708 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5709
5710         * basic-block.h (conflict_graph_enum_fn): K&R fix.
5711
5712 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5713
5714         * tree.c (tree_expr_nonnegative_p): New function.
5715
5716         * tree.h (tree_expr_nonnegative_p): Declare.
5717
5718         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
5719         elide some sign_compare warnings.
5720         (build_conditional_expr): Likewise.
5721
5722 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
5723
5724         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
5725
5726         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
5727         * i386.c (print_operand): Use the proper suffix for a 387 HImode
5728         operand.  Abort if a 387 operand has an unsupported size.
5729
5730 2000-04-08  Neil Booth  <NeilB@earthling.net>
5731
5732         * cppexp.c (parse_charconst): Null does not end character
5733         constants.
5734         * cppinit.c (ISTABLE): Null character handled as whitespace.
5735         * cpplex.c (null_warning):  new function.
5736         (skip_string): Emit warning if nulls encountered.
5737         (_cpp_skip_hspace): Emit warning if nulls encountered.
5738         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
5739         them.
5740         * cpp.texi: Update.
5741
5742 2000-04-07  Richard Henderson  <rth@cygnus.com>
5743
5744         * flow.c (loop_depth): Remove.
5745         (reg_next_use, cc0_live, mem_set_list): Replace with ...
5746         (struct propagate_block_info): New.
5747         (life_analysis): Don't allocate reg_next_use.
5748         (propagate_block_delete_insn): Break out of propagate_block.
5749         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
5750         (propagate_block_delete_libcall): Likewise.
5751         (propagate_block): Create a propagate_block_info struct to pass
5752         to subroutines.  Allocate one not two temporary regsets.  Don't
5753         clobber memory for const calls.  Look for clobbers in
5754         CALL_INSN_FUNCTION_USAGE.
5755         (mark_set_regs): Recognize COND_EXEC.
5756         (mark_set_reg): Break out of mark_set_1.
5757         (mark_used_reg): Break out of mark_used_regs.
5758         (mark_used_regs): Recognize COND_EXEC.
5759         (insn_dead_p): Use propagate_block_info struct.
5760         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
5761         (find_auto_inc, try_pre_increment_1): Likewise.
5762         (print_rtl_with_bb): Dump regs live at end too.
5763         (count_reg_sets_1): Pass in loop_depth.
5764         (count_reg_sets, count_reg_references): Likewise.
5765         (recompute_reg_usage): Provide it.
5766
5767 2000-04-07  Richard Henderson  <rth@cygnus.com>
5768
5769         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
5770         not the raw files.
5771
5772 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
5773
5774         * cpplib.c (do_elif): Skip the rest of the line if we're
5775         not going to bother evaluating it.
5776         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
5777         to avoid pointless calls to the lexer.
5778
5779 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
5780
5781         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
5782
5783 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
5784
5785         * calls.c (expand_call): emit_queue if we're trying a sibcall.
5786
5787 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
5788
5789         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
5790
5791 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
5792
5793         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
5794         crtend so they can be multilibbed.
5795         (STAGESTUFF): Remove s-crt and s-crtS.
5796
5797 2000-04-07  Richard Henderson  <rth@cygnus.com>
5798
5799         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
5800         if we discover we need a pseudo and no_new_pseudos is true.
5801         * config/alpha/alpha.md (ne:DI insn): New.
5802         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
5803
5804 2000-04-07  Richard Henderson  <rth@cygnus.com>
5805
5806         * rtl.def (COND_EXEC): New.
5807         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
5808         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
5809
5810         * genconfig.c (have_cond_arith_flag): Remove.
5811         (have_cond_exec_flag): New.
5812         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
5813         (main): Print HAVE_conditional_execution.
5814
5815         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
5816         (sched_analyze_insn, print_pattern): Likewise.
5817         * reload.c (find_equiv_reg): Likewise.
5818         * rtlanal.c (reg_referenced_p): Likewise.
5819         (note_stores, dead_or_set_regno_p): Likewise.
5820         (reg_overlap_mentioned_p): Rewrite to use a switch.
5821
5822         * ggc.h (struct rtx_def): Forward declare.
5823
5824         * print-rtl.c (debug_rtx_range): New.
5825         * rtl.h (debug_rtx_range): Declare.
5826
5827         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
5828
5829         * gcse.c (gcse_main): Don't rebuild the CFG here.
5830         (delete_null_pointer_checks): Likewise.
5831         * ssa.c (convert_to_ssa): Likewise.
5832         * toplev.c (rest_of_compilation): Do it here instead.  Combine
5833         sequential calls to TIMEVAR.  Consistently use `insns' instead of
5834         `get_insns()'.  Always split insns after reload when optimizing.
5835
5836         * basic-block.h (merge_blocks_nomove): Declare.
5837         (tidy_fallthru_edge): Declare.
5838         * flow.c (merge_blocks_nomove): Document as merging into previous
5839         blocks.  Remove cruft from between blocks; remove all edges out of A.
5840         (tidy_fallthru_edge): Export.
5841
5842 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5843
5844         * ssa.c (compute_conservative_reg_partition): Declare with
5845         void arguments.
5846         * toplev.c (clean_dump_file): Remove previously-deleted function
5847         inadvertantly merged back in.
5848         * conflict.c (conflict_graph_add): Use a single call to
5849         htab_find_slot to look up and insert.
5850
5851 2000-04-06  Richard Henderson  <rth@cygnus.com>
5852
5853         * genrecog.c (*): Rename _last_insn to last_insn.
5854         (make_insn_sequence): Set the position of the peephole2 C test
5855         to be at the last insn.
5856
5857 2000-04-06  Richard Henderson  <rth@cygnus.com>
5858
5859         * flow.c (compute_flow_dominators): Free worklist.
5860
5861 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
5862
5863         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
5864
5865 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5866
5867         * rtl.h (INSN_P): New macro.
5868         (successor_phi_fn): New typedef.
5869         (for_each_successor_phi): New prototype.
5870         (in_ssa_form): New variable.
5871         (PHI_NODE_P): Likewise.
5872         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
5873         phi nodes in successors.
5874         (mark_used_regs): Add PHI case.
5875         (set_phi_alternative_reg): New function.
5876         (life_analysis): Assert that dead code elimination is not selected
5877         when in SSA form.
5878         * toplev.c (to_ssa_time): New variable.
5879         (from_ssa_time): Likewise.
5880         (compile_file): Zero to_ssa_time and from_ssa_time.
5881         Print time to convert to and from SSA.
5882         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
5883         (print_time): Compute percent fraction as integer.
5884         * ssa.c (PHI_NODE_P): Moved to rtl.h.
5885         (convert_to_ssa): Check if we're already in SSA.
5886         Don't eliminate dead code in life_analysis.
5887         Rerun flow and life analysis at bottom.
5888         (eliminate_phi): Use canonical regnos when adding nodes.
5889         (mark_reg_in_phi): New function.
5890         (mark_phi_and_copy_regs): Likewise.
5891         (convert_from_ssa): Rerun life analysis at top.
5892         Use coalesced partition.
5893         Check for removing a phi node at the end of the block.
5894         (compute_coalesced_reg_partition): New function.
5895         (coalesce_regs_in_copies): Likewise.
5896         (coalesce_reg_in_phi): Likewise.
5897         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
5898         (for_each_successor_phi): Likewise.
5899         (rename_context): New struct.
5900         (rename_block): Use a rename_context with rename_insn_1.  When
5901         renaming sets of a subreg, emit a copy of the entire reg first.
5902         (rename_insn_1): Treat data as a rename_context *.  Save current
5903         insn in set_data.
5904         (rename_set_data): Add field set_insn.
5905         * Makefile.in (HASHTAB_H): Move up in file.
5906         (OBSTACK_H): New macro.
5907         (collect2.o): Use OBSTACK_H in dependencies.
5908         (sdbout.o): Likewise.
5909         (emit-rtl.o): Likewise.
5910         (simplify-rtx.o): Likewise.
5911         (fix-header.o): Likewise.
5912         (OBJS): Add conflict.o.
5913         (conflict.o): New rule.
5914         * basic-block.h: Include partition.h.
5915         (conflict_graph): New typedef.
5916         (conflict_graph_enum_fn): Likewise.
5917         (conflict_graph_new): New prototype.
5918         (conflict_graph_delete): Likewise.
5919         (conflict_graph_add): Likewise.
5920         (conflict_graph_conflict_p): Likewise.
5921         (conflict_graph_enum): Likewise.
5922         (conflict_graph_merge_regs): Likewise.
5923         (conflict_graph_print): Likewise.
5924         (conflict_graph_compute): Likewise.
5925         * conflict.c: New file.
5926
5927 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
5928
5929         * tlink.c (read_repo_files): Don't look for .rpo info for
5930         linker flags.
5931
5932 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5933
5934         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
5935
5936 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5937
5938         * config/sh/lib1funcs.asm (___udivsi3_i4):
5939         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
5940         only depends on FMOVD_WORKS.
5941
5942 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5943
5944         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
5945         make double constant 8-byte aligned.
5946
5947 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
5948
5949         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
5950         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
5951         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
5952         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
5953         Accept storing GENERAL_REGS into offsetable memory.
5954         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
5955         building a TFmode constant other than 0.0L into GENERAL_REGS.
5956
5957 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
5958
5959         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
5960
5961 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
5962
5963         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
5964         (macro_cleanup): No need to cast pbuf->macro.
5965         (collect_expansion): Use _cpp_get_define_token.  Goto done if
5966         it returns VSPACE.  Remove check for trailing space after
5967         CPP_COMMENT.
5968         (_cpp_create_definition): Don't diddle flags here.  Return
5969         directly on error.
5970         (unsafe_chars): Handle c1 being EOF.
5971         (push_macro_expansion): Use unsafe_chars for both accidental-paste
5972         checks.  Don't push the buffer till after we're done with
5973         them.
5974         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
5975         (PEEKN, FORWARD, GETC, PEEKC): Use them.
5976         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
5977         appropriately.
5978         (_cpp_parse_assertion): Don't NUL terminate.
5979         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
5980         hspace before calling _cpp_parse_assertion.  Remove all sets
5981         of only_seen_white. Treat '\f' as hspace.  Don't do anything
5982         special with '\n' here.
5983         (maybe_macroexpand): Handle T_EMPTY hash entries without
5984         pushing a buffer at all.
5985         (cpp_get_token): Handle clearing only_seen_white here.  Handle
5986         incrementing the line number here.  Clear
5987         potential_control_macro as well as only_seen_white, if
5988         appropriate.
5989         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
5990         (_cpp_get_define_token): New function, basically like
5991         _cpp_get_directive_token was but doesn't eat horizontal space.
5992         Don't do anything with only_seen_white here.
5993         (_cpp_get_directive_token): Just call _cpp_get_define_token
5994         repeatedly till it returns non-hspace.
5995
5996         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
5997         (conditional_skip, skip_if_group): Return int.
5998         (DIRECTIVE_TABLE): Change origin of all conditional directives
5999         to "COND".
6000         (TRAD_DIRECT_P): New macro.
6001         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
6002         an error for a bogus directive, unless -lang-asm.  Use
6003         TRAD_DIRECT_P. Loop calling handler functions till one returns
6004         zero.
6005         (get_macro_name): Don't diddle flags here.
6006         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
6007         Create T_EMPTY nodes for #define macro /* nothing */.
6008         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
6009         Use hp->name when calling pass_thru_directive.
6010         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
6011         Return the result of conditional_skip and/or skip_if_group.
6012         Don't call _cpp_output_line_command.
6013         (consider_directive_while_skipping): Use _cpp_get_directive_token.
6014         Issue -Wtraditional warnings as appropriate.  Don't complain
6015         about unrecognized directives.  If we are to stop skipping,
6016         return the number of the directive that ended the skip.
6017         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
6018         expansion and line commands while skipping.  Return the result
6019         of consider_directive_while_skipping, if nonzero.
6020         (do_endif): Just set potential_control_macro here.
6021         (validate_else): Use _cpp_get_directive_token.
6022         (do_assert, do_unassert): Don't save pointers into the
6023         token_buffer across calls to the lexer.  Use
6024         _cpp_get_directive_token.
6025
6026         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
6027         pointer, not an offset.  Replace 'data', which was a generic
6028         pointer, with 'macro', which points to a struct hashnode.
6029         (cpp_reader): Add 'potential_control_macro' pointer.
6030         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
6031         (CPP_BUF_GET, CPP_FORWARD): Delete.
6032         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
6033         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
6034         ACTIVE_MARK_P): Update.
6035         (_cpp_get_define_token): New internal function.
6036         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
6037
6038 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
6039
6040         * configure.in: And here.
6041         * configure: Regenerate.
6042         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
6043         --enable-libstdcxx-v3 is passed at configure time.
6044         * config.h.in: Regenerate.
6045
6046 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
6047
6048         * final.c (final): Use xcalloc to allocate line_note_exists.
6049         * function.c (free_after_compilation): Free the temp_slots.
6050         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
6051         (combine_temp_slot): Free temp_slots when they get combined.
6052         (purge_addressof): Fix typo in comment.
6053         * stmt.c (mark_goto_fixup): Mark the fixup itself.
6054         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
6055
6056         * ggc.h: Include varray.h.
6057         (ggc_pending_trees): Declare.
6058         (ggc_mark_tree_children): Remove declaration.
6059         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
6060         * ggc-common.c (ggc_pending_trees): New variable.
6061         (ggc_mark_roots): Call ggc_mark_trees.
6062         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
6063         the ggc_pending_trees.
6064         * Makefile.in (GGC_H): New variable.  Use it throughout in place
6065         of ggc.h.
6066
6067 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6068
6069         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
6070         GET_MODE_SIZE.
6071
6072 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6073
6074         * sh.c (sh_insn_length_adjustment): New function.
6075         * sh-protos.h (sh_insn_length_adjustment): Declare.
6076         * sh.h (ADJUST_INSN_LENGTH): Use it.
6077
6078 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
6079
6080         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
6081         from the insn where REG_RETVAL is added.
6082         (emit_no_conflict_block): Ditto.
6083
6084         * md.texi (Standard Names): Clarify when movX is needed.
6085
6086         * combine.c (simplify_comparison) [MINUS]: Do not replace
6087         all (op (minus A B) 0) with (op A B).
6088
6089 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
6090                           J"orn Rennecke <amylaar@cygnus.co.uk>
6091
6092         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
6093         (block_lump_real): Likewise.
6094
6095 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
6096
6097         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
6098         remaining non-zero debugging masks.
6099
6100 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
6101
6102         * basic-block.h (verify_flow_info): Declare.
6103         (flow_loop_outside_edge_p): Declare.
6104         * flow.c (verify_flow_info): Remove declaration.
6105         (clear_log_links, flow_loop_outside_edge_p): Likewise.
6106
6107 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
6108
6109         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
6110         not C++ comments.
6111
6112 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
6113
6114         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
6115         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
6116         seqdi_zero_trunc+1): Allow splits only if registers are
6117         different.
6118
6119 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
6120
6121         * acconfig.h: Add HAVE_GAS_HIDDEN.
6122         * config.in: Regenerated.
6123         * configure.in: Add test for .hidden pseudo-op in gas.
6124         * configure: Regenerated.
6125         * crtstuff.c: Include auto-host.h.
6126         Emit additional .hidden pseudo-op for __dso_handle if the
6127         assembler knows about it.
6128
6129 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
6130
6131         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
6132         before freeing argnames.
6133         * cpplib.c (do_ifndef): Cast return value of xstrdup.
6134
6135 2000-04-05  Michael Meissner  <meissner@redhat.com>
6136
6137         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
6138         Walton <jonboy@gordian.com> to make memory references with update
6139         work wtih -mregnames.
6140
6141 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6142
6143         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
6144         (regrename_optimize): Rename variables `def_uses' and
6145         `ext_basic_blocks' to avoid conflicts with similarly named
6146         typedefs in traditional C.
6147
6148         * calls.c (initialize_argument_information): Fix typo in previous
6149         change.
6150
6151 2000-04-04  Richard Henderson  <rth@cygnus.com>
6152
6153         * regrename.c (consider_available): Test fixed_regs not
6154         PIC_OFFSET_TABLE_REGNUM.
6155
6156 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
6157
6158         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
6159         crtend.
6160         (CRTSTUFF_T_CFLAGS_S): Delete definition.
6161         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
6162         (ENDFILE_LINUX_SPEC): Always use crtend.
6163         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
6164         (powerpc-*-linux-gnu): Likewise.
6165         * configure: Regenerate.
6166
6167         * config/rs6000/eabi.h: Don't include sysv4.h.
6168         (MULTILIB_DEFAULTS): Don't define.
6169         * config/rs6000/eabiaix.h: Don't include eabi.h.
6170         * config/rs6000/eabile.h: Delete.
6171         * config/rs6000/eabilesim.h: Delete.
6172         * config/rs6000/eabisim.h: Don't include eabi.h.
6173         * config/rs6000/linux.h: Don't include sysv4.h.
6174         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
6175         (MULTILIB_DEFAULTS): Don't redefine.
6176         * config/rs6000/rtems.h: Don't include eabi.h.
6177         * config/rs6000/sol2.h: Don't include sysv4le.h.
6178         * config/rs6000/sysv4le.h: Don't include sysv4.h.
6179         * config/rs6000/t-ppc: Delete.
6180         * config/rs6000/t-ppcgas: Correct comment.
6181         * config/rs6000/t-ppcos: Correct comment.  Don't build
6182         multilibs for -fPIC, rather use -fPIC -mstrict-align
6183         as default.
6184         * config/rs6000/t-ppc: Delete.
6185         * config/rs6000/vxppc.h: Don't include sysv4.h.
6186         * config/rs6000/vxppcle.h: Delete.
6187         * configure.in: Use multiple header files for p2pc ELF targets
6188         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
6189         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
6190         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
6191         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
6192         always available for these platforms.
6193
6194 2000-04-04  Richard Henderson  <rth@cygnus.com>
6195
6196         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
6197
6198 2000-04-04  Stan Cox  <scox@cygnus.com>
6199
6200         * Makefile.in: Add rules for regrename.o
6201         * regrename.c: New file.
6202         * rtl.h (regrename_optimize): Add prototype.
6203         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
6204         (compile_file, decode_d_option): Add support for -frename-registers.
6205         (rest_of_compilation): Call regrename_optimize.
6206         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
6207         New macros.
6208
6209 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6210
6211         * Makefile (gccbug): New target.
6212         (doc): Depend on it.
6213         * gcc.texi (Bugs): Link subnodes.
6214         (gccbug): New node.
6215         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
6216         Document severities, priorities, and classes in bug form.
6217
6218 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
6219
6220         * cpplex.c (trigraph_map, speccase): Combine into single
6221         table, chartab.
6222         (NORMAL, NONTRI): New macros.
6223         (_cpp_read_and_prescan): Change to use unified table.  Use
6224         is_hspace to test for whitespace.
6225
6226         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
6227         definition that doesn't provoke the "empty body in an
6228         if-statement" warning.
6229
6230 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
6231
6232         * builtins.c (expand_builtin_strlen): Force the source to
6233         be a memory address.
6234
6235 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6236
6237         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
6238
6239 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6240
6241         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
6242          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
6243         (ECF_IS_CONST): Rename to ECF_CONST.
6244         (special_function_p): Make static, change interface.
6245         (flags_from_decl_or_type, try_to_integrate): Break out from ...
6246         (expand_call) ... here; convert number of variables to flags.
6247         (emit_library_call_vlue_1): Likewise.
6248         (setjmp_call_p): New function.
6249         (initialize_argument_information): Accepts flags as argument;
6250         return flags.
6251         (precompute_arguments): Likewise.
6252         * tree.h (special_function_p): Remove.
6253         (setjmp_call_p): Add prototype.
6254
6255 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
6256
6257         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
6258         so that addresses are offsetable by up to 16 bytes.
6259         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
6260         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
6261         offsetable.
6262
6263         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
6264         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
6265         (movsf): Don't force any constant to memory if target is integer
6266         hard register.
6267         Move fp_zero_operand check below the const0_rtx check.
6268         (movtf): Likewise. Also allow fp_zero_operand for stores into
6269         memory.
6270         (movdf): Likewise. Also allow fp_zero_operand for stores into
6271         memory and into integer hard registers.
6272         (clear_df, clear_dfp, movdf_const_intreg_sp32,
6273         movdf_const_intreg_sp64): Remove.
6274         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
6275         conditions.
6276         (movdf_no_e_insn_v9_sp32): New pattern.
6277         (movdf_insn_v9only): Remove.
6278         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
6279         (movdf_insn_sp64): Remove.
6280         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
6281         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
6282         (following splits): Rewrite conditions. Add two new splits
6283         for storing 0.0 into memory and registers.
6284         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
6285         (movtf_insn_sp32): Redo constraints and conditions.
6286         (movtf_insn_vis_sp32): New pattern.
6287         (movtf_no_e_insn_sp32): Redo constraints and conditions.
6288         (movtf_insn_hq_sp64): Likewise.
6289         (movtf_insn_hq_vis_sp64): New pattern.
6290         (movtf_insn_sp64): Redo constraints and conditions.
6291         (movtf_insn_vis_sp64): New pattern.
6292         (movtf_no_e_insn_sp64): Redo constraints and conditions.
6293         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
6294         or memory.
6295         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
6296         -mvis or -m64 to take down the number of various reload patterns.
6297
6298 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
6299
6300         * pa/pa-64.h: New file.
6301         * pa/pa64-regs.h: New file.
6302         * pa/pa64-start.h: New file.
6303         * pa/t-pa64: New file.
6304         * pa/xm-pa64hpux.h: New file.
6305
6306 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6307
6308         * sparc.c (output_restore_regs): Prototype.
6309         (sparc_emit_float_lib_cmp): Constification.
6310
6311         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
6312
6313         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
6314         Prototype.
6315
6316         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
6317         (get_value_hash, hash_rtx): Likewise.
6318
6319         * ssa.c (compute_conservative_reg_partition): Prototype.
6320
6321         * tree.c (mark_hash_entry): Prototype.
6322
6323 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
6324
6325         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
6326         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
6327         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
6328
6329         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
6330         * objc/lang-specs.h: Likewise.
6331
6332 2000-04-03  Neil Booth  <NeilB@earthling.net>
6333
6334         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
6335         and SYNTAX_ERROR2. Replace `' in messages with ''.
6336         (op_to_str): Make re-entrant.
6337         (_cpp_parse_expr): Implement new error macros. Use | rather
6338         than || to logically or 2 boolean integers.  Simply expression
6339         checking we have a left operand iff needed.
6340
6341 2000-04-03  Nick Clifton  <nickc@cygnus.com>
6342
6343         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
6344
6345 2000-04-03  Philip Blundell  <philb@gnu.org>
6346
6347         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
6348
6349 2000-04-03  Felix Lee  <flee@cygnus.com>
6350
6351         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
6352         (run_shell): Use it.
6353
6354 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
6355
6356         * Makefile.in (stmp-int-hdrs): Make include subdir here...
6357         (stmp-fixproto): ...rather than here.
6358
6359 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
6360
6361         * pa.c (print_operand): Compute 'base' only inside the code paths
6362         that use it.
6363
6364 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
6365
6366         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
6367         CEIL_DIV_EXPR.
6368
6369 2000-04-03  Philipp Thomas  <pthomas@suse.de>
6370
6371         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
6372
6373 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
6374
6375         * Makefile.in (alias.o): Depend on $(TREE_H).
6376
6377 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
6378
6379         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
6380         processing C++.
6381         * cpplib.c (_cpp_handle_directive): Improve warnings for
6382         traditional C and indented directives.
6383
6384         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
6385         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
6386         fixinc/inclhack.def: Indent the # of #include_next one space.
6387         * cp/rtti.c: Un-indent #if and #endif.
6388
6389         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
6390         syntax error, but an error has already been printed.
6391         * cpplex.c (_cpp_parse_assertion): Give a more specific error
6392         message when called with nothing remaining on the line.
6393         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
6394         OTHER token, not an ASSERTION.
6395         * cpplib.c (do_assert): When we create a 'base' node, clear
6396         its aschain pointer.
6397
6398 2000-04-02  Neil Booth <NeilB@earthling.net>
6399
6400         * cppexp.c:  New typedef op_t.  struct operation and struct
6401         token updated to use it.
6402         (op_to_str): New function.
6403         (_cpp_parse_expr): Error messages modified to use op_to_str.
6404
6405 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6406
6407         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
6408         before checking MUST_PASS_IN_STACK.
6409
6410 2000-04-02  Neil Booth <NeilB@earthling.net>
6411
6412         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
6413         flags and initial priority into a single constant.  New
6414         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
6415         (_parse_cpp_expr): Implement new constants.  Take left operand
6416         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
6417         parse indicated by reducing FINISHED token.  Remove new lines
6418         from cpp_error messages.
6419
6420 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
6421
6422         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
6423         permanent obstack.
6424
6425 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
6426
6427         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
6428         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
6429         the strings and function names on the fly.  Take the #sccs
6430         entry out of the table if SCCS_DIRECTIVE is not defined.
6431         (_cpp_handle_directive): Decide if the # was at the beginning
6432         of the line here.  Issue -pedantic warnings for extended
6433         directives here.  Warn about K+R directives with the #
6434         indented, and C89/extended directives with the # not indented,
6435         here.
6436         (do_import, do_include_next, do_warning, do_ident, do_sccs,
6437         do_assert, do_unassert): Don't issue pedantic warning here.
6438
6439         * cpphash.h: Add CPP_WTRADITIONAL macro.
6440         * cpplib.h (struct cpp_options): Rename warn_stringify to
6441         warn_traditional; update comments.
6442         * cppinit.c (handle_option): Set warn_traditional not
6443         warn_stringify.
6444         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
6445         CPP_WTRADITIONAL (pfile).
6446         * cpplex.c (_cpp_lex_token): Don't decide if directives should
6447         be ignored in -traditional mode here.
6448
6449         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
6450         to initialize speccase[] and trigraph_map[].  Delete all
6451         references to pfile->input_speccase.  Always treat '?' as a
6452         special character.  Remove table-initialization code from
6453         _cpp_init_input_buffer.
6454
6455         * cpplib.h (struct cpp_reader): Remove input_speccase field.
6456         * cppinit.c (cpp_cleanup): Don't free input_speccase.
6457
6458 2000-04-01  Richard Henderson  <rth@cygnus.com>
6459
6460         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
6461         (mostlyclean): Likewise.
6462
6463         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
6464         (struct dump_file_info, enum dump_file_index, dump_file): New.
6465         (open_dump_file): Take a dump_file_index not a suffix, and a decl
6466         not a string.  Clean out file if we havn't yet done so.  Do nothing
6467         if the dump isn't enabled.
6468         (close_dump_file): Do nothing if the dump isn't open.  Dump
6469         graph data if requested.
6470         (dump_rtl, clean_dump_file): Remove.
6471         (compile_file): Don't clean the dump files.  Only finalize .bp dump
6472         if flag_test_coverage or flag_branch_probabilities.  Only finalize
6473         .combine dump if optimizing.  Iterate over dump_file to finalize the
6474         graph dumps.
6475         (rest_of_compilation): Update for open_dump_file/close_dump_file.
6476         Convert all uses of dump_rtl.
6477         (decode_d_option): Iterate over dump_file to implement 'a' and to
6478         locate pass-specific dumps.
6479
6480 2000-04-01  Neil Booth <NeilB@earthling.net>
6481
6482         * cppexp.c: Redefine priority constants.
6483         (_cpp_parse_expr): Replace left and right priority scheme with
6484         single priority logic.  Move LOGICAL to same place as COMPARE.
6485         Remove bogus check for multiple unary +/- operators.
6486
6487 2000-04-01  Neil Booth <NeilB@earthling.net>
6488
6489         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
6490         within the switch statement.  Binary operations break out of
6491         the switch naturally.  '(' tokens handled by forcing
6492         immediate shift.  ')' handled by forcing immediate reduce to
6493         the previous '('.  New error messages.
6494
6495 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
6496
6497         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
6498         part', it's already in use.  Use %K instead.  Add a return at the
6499         end of what is now %K.
6500         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
6501
6502 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6503
6504         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
6505         allocate_dynamic_stack_space.
6506         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
6507         update stack_pointer_delta; do not update arg_size_so_far.
6508         (compute_argument_block_size): Use stack_delta instead of
6509         stack_pointer_pending and arg_size_so_far.
6510         (expand_call): Add sanity checking for stack_pointer_delta;
6511         save and restore stack_pointer_delta for SIB, use
6512         stack_pointer_delta for alignment; do not update arg_space_so_far.
6513         (emit_library_call_value): Use stack_pointer_delta for alignment.
6514         (store_one_arg): Do not update arg_space_so_far.
6515         * explow.c (adjust_stack, anti_adjust_stack): Update
6516         stack_pointer_delta.
6517         (allocate_dynamic_stack_space): Add sanity checking for
6518         stack_pointer_delta.
6519         * expr.c (init_expr, clear_pending_stack_adjust): Clear
6520         stack_pointer_delta.
6521         (emit_push_insn): Update stack_pointer_delta.
6522         * function.h (struct expr_status): Add x_stack_pointer_delta;
6523         remove x_arg_space_so_far.
6524         (arg_space_so_far): Remove.
6525         (stack_pointer_delta): New macro.
6526
6527 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
6528
6529         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
6530         Reorder struct cpp_options and struct cpp_reader for better
6531         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
6532         takes two args.  Change all 'char' flags to 'unsigned char'.
6533         Move show_column flag into struct cpp_options.  Don't
6534         prototype cpp_options_init.
6535         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
6536         cppinit.c, cpplex.c, cpplib.c:
6537         Replace CPP_OPTIONS (pfile)->whatever with
6538         CPP_OPTION (pfile, whatever), and likewise for
6539         opts = CPP_OPTIONS (pfile); ... opts->whatever;
6540
6541         * cppinit.c (merge_include_chains): Take a cpp_reader *.
6542         Extract CPP_OPTION (pfile, pending) and work with that
6543         directly.
6544         (cpp_options_init): Delete.
6545         (cpp_reader_init): Turn on on-by-default options here.
6546         Allocate the pending structure here.
6547         (cl_options, enum opt_code): Define these from the same table,
6548         kept in a large macro.  Add -fshow-column and -fno-show-column
6549         options.
6550
6551         * cpperror.c (v_message): If show_column is off, don't print
6552         the column number.
6553
6554         * cppmain.c: Update for new interface.
6555         * fix-header.c: Likewise.
6556
6557 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
6558
6559         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
6560         definition.
6561         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
6562         are passed to any invocation of AR_FOR_TARGET.
6563         (AR_CREATE_FOR_TARGET): New macro.
6564         (AR_EXTRACT_FOR_TARGET): New macro.
6565         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
6566         AR_EXTRACT_FOR_TARGET.
6567         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
6568         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
6569         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
6570         AR_EXTRACT_FOR_TARGET to sub-makes.
6571
6572 2000-03-31  Neil Booth <NeilB@earthling.net>
6573
6574         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
6575         PAREN_INNER_PRIO.
6576         (_cpp_parse_expr): Check for multiple unary +/- operators.
6577         Correct priorities of ':' and '?'.  Treat ')' as having a
6578         value.  Ensure conditional expression is not void.
6579
6580 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
6581
6582         * alias.c (canon_rtx): Make it global.
6583         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
6584         equality.
6585         * cse.c (struct table_elt): Add canon_exp.
6586         (insert): Clear it.
6587         (invalidate): Canonicalize expressions only once.
6588         * rtl.h (canon_rtx): Declare.
6589
6590 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
6591
6592         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
6593         * alias.c (reg_known_value): Add comments.
6594         (init_alias_analysis): Likewise.
6595         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
6596         address.
6597         (cse_basic_block): Fix typo in comment.
6598         * emit-rtl.c: Include hashtab.h.
6599         (const_int_htab): New variable.
6600         (const_int_htab_hash): New function.
6601         (const_int_htab_eq): Likewise.
6602         (rtx_htab_mark_1): Likewise.
6603         (rtx_htab_mark): Likewise.
6604         (gen_rtx_CONST_INT): Cache all CONST_INTs.
6605         (unshare_all_rtx): Fix formatting.
6606         (init_emit_once): Initialize const_int_htab.
6607         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
6608         address.
6609         * rtl.texi: Document the fact that all CONST_INTs with the same
6610         value are shared.
6611
6612 2000-03-30  Richard Henderson  <rth@cygnus.com>
6613
6614         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
6615
6616 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
6617
6618         * configure.in: Comment out --enable-c-cpplib stanza.
6619         * configure: Regenerate.
6620
6621 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6622
6623         * expr.c (store_constructor): Properly compute displacement and
6624         alignment when offset is variable.
6625
6626         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
6627         cases of alignment in bytes.
6628
6629 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
6630
6631         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
6632         since it is used to generate c-parse.y.
6633         * objc-parse.c, objc-parse.y: Regenerated.
6634
6635         * function.c (expand_function_end): Pass alignment argument to
6636         emit_block_move in bits, not bytes.
6637
6638 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6639
6640         * expr.c (move_by_pieces_ninsns): Fix one more missing align
6641         correction.
6642
6643         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
6644
6645         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
6646         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
6647         * function.c (assign_parms): Likewise.
6648         * integrate.c (expand_inline_function): Likewise.
6649         * stmt.c (expand_decl): Likewise.
6650         (copy_rtx_and_substitute): Likewise.
6651         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
6652         (clear_by_pieces): Fix error in last change.
6653         * emit-rtl.c (init_emit): Set known registers alignment in bits.
6654         * function.h (regno_pointer_align): Now unsigned.
6655         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
6656         is in bits.
6657         * config/i386/i386.c (aligned_operand): Likewise.
6658         * config/sparc/sparc.c (mem_min_alignment): Likewise.
6659         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
6660         (unaligned_memory_operand): Likewise.
6661         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
6662         Also make alignments and sizes unsigned and some whitespace cleanup.
6663         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
6664
6665         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
6666         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
6667         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
6668         (expand_builtin_memset): Likewise, but to clear_storage.
6669         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
6670         (restore_fixed_argument_area): Likewise.
6671         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
6672         (load_register_parameters): Likewise, to emit_group_load.
6673         (expand_call): Likewise, to emit_group_store and emit_block_move.
6674         (emit_library_call_value_1): Likewise, to emit_block_move.
6675         (store_one_arg): Likewise, and to emit_push_insn.
6676         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
6677         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
6678         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
6679         (emit_block_move, emit_group_load, emit_group_store): Likewise.
6680         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
6681         (expand_assigment, store_expr, store_constructor_field): Likewise.
6682         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
6683         (store_constructor, store_field, get_inner_reference): Likewise.
6684         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
6685         (expand_expr, case COMPONENT_REF): Likewise.
6686         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
6687         and positions; reindent code.
6688         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
6689         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
6690         (assign_parms): Likewise to emit_group_store.
6691         * optabs.c (prepare_cmp_insn): Alignment is in bits.
6692         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
6693         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
6694         (expand_return): Likewise to {extract,store}_bit_field.
6695         * stor-layout.c (get_mode_alignment): Minor cleanup.
6696         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
6697         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
6698
6699 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6700
6701         * config/arm/arm.h: Undo effects of previous delta:
6702         (ASM_SPEC): Do not define.
6703         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
6704
6705         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
6706         typo.
6707
6708 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6709
6710         * cppinit.c (cpp_start_read): Call initialize_dependency_output
6711         only after reading in the primary source file.
6712
6713 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
6714
6715         * c-common.c (c_common_nodes_and_builtins): The first parameter to
6716         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
6717         or a reference to a va_list.
6718         * builtins.c (stabilize_va_list): Simplify now we don't have to
6719         work around C array address decay.
6720         * c-typeck.c (convert_for_assignment): Handle assignment to
6721         a reference parameter by taking the address of the RHS.
6722         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
6723         (va_copy): Likewise.
6724         (__va_copy): Likewise.
6725         * ginclude/varargs.h (va_start): Likewise.
6726         (__va_copy): Likewise.
6727
6728 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
6729
6730         * i386/djgpp.h: Remove extraneous "+".
6731
6732         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
6733
6734         * calls.c (expand_call): Fix typo in last change.
6735
6736 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
6737
6738         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
6739         been expanded.
6740
6741 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6742
6743         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
6744         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
6745         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
6746         * tree.c (bit_position, byte_position): Likewise.
6747         * tree.h: Declare new functions.
6748
6749 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6750
6751         * config/arm/arm.c: Minor formatting changes/
6752         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
6753         already defined.
6754         (ASM_SPEC): Define if not already defined.
6755
6756 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6757
6758         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
6759         _cpp_calc_hash.
6760
6761 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
6762
6763         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
6764         value, don't output it as unsigned.
6765
6766 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
6767
6768         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
6769
6770 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6771
6772         * c-common.c (c_common_nodes_and_builtins): Don't special case
6773         cplus_mode when declaring builtin bzero/bcmp, always avoid
6774         prototype arguments.
6775
6776 2000-03-29  Bruce Korb  <bkorb@gnu.org>
6777
6778         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
6779         to a non-file
6780
6781 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6782
6783         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
6784         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
6785         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
6786         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
6787         (save_fixed_argument_area, restore_fixed_argument_area):
6788         conditionize by #ifdef REG_PARM_STACK_SPACE only.
6789         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
6790         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
6791         (precompute_register_parameters): Avoid #ifdefs on
6792         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
6793         (stire_one_args): Likewise.
6794         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
6795         (emit_library_call_value_1): Likewise.
6796         (compute_argument_block_size): Align to STACK_BOUNDARY only for
6797         ACCUMULATE_OUTGOING_ARGS.
6798         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
6799         value.
6800         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
6801         (use_crosses_set_p): Likewise.
6802         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
6803         #define ACCUMULATE_OUTGOING_ARGS 1.
6804         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
6805         frames.
6806         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
6807         constants.
6808         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
6809         (TARGET_SWITCHES): Add push-args, no-push-args,
6810         accumulate-outgoing-args and no-accumulate-outgoing-args.
6811         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
6812         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
6813         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
6814         and PUSH_ROUNDING.
6815         (emit_push_insn): Likewise.
6816         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6817         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
6818         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6819         (STACK_DYNAMIC_OFFSET): Define correctly for both
6820         ACCUMULATE_OUTGOING_ARGS and normal mode.
6821         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
6822         * tm.texi (PUSH_ARGS): Document.
6823         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
6824
6825 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6826
6827         * flags.h (flag_optimize_sibling_calls): Declare.
6828         * calls.c (expand_call): Fail sibcall when
6829         !flag_optimize_sibling_calls
6830         * invoke.texi (flag_optimize_sibling_calls): Document.
6831         * toplev.c (flag_optimize_sibling_calls): New global variable.
6832         (f_options): Add flag_optimize_sibling_calls.
6833         (rest_of_compilation): Conditionize
6834         optimize_sibling_and_tail_recursive_calls by
6835         flag_optimize_sibling_calls.
6836         (main): Set flag_optimize_sibling_calls for -O2.
6837         * stmt.c (expand_return): Conditionize tail recursion by
6838         flag_optimize_sibling_calls.
6839
6840 2000-03-29  Richard Henderson  <rth@cygnus.com>
6841
6842         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
6843         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
6844
6845 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
6846
6847         * except.c (add_eh_table_entry): Mark type_info's as referenced.
6848
6849 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6850
6851         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
6852         is given.
6853         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
6854         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
6855         * config/rs6000/aix.h: then modified likewise.
6856
6857 2000-03-28  Richard Henderson  <rth@cygnus.com>
6858
6859         * rtl.h: Redistribute enum reg_note documentation.
6860         Kill trailing whitespace.
6861         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
6862         Kill trailing whitespace.
6863
6864 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
6865
6866         * cppfiles.c (hash_IHASH): Just return i->hash.
6867         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
6868         htab_find_with_hash.
6869         (cpp_read_file): Likewise.
6870         (find_include_file): Likewise.  Properly initialize
6871         ih->nshort.  Share ih->name and ih->nshort if possible.
6872         * cpphash.c (_cpp_calc_hash): New function.
6873         (hash_HASHNODE): Just return h->hash.
6874         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
6875         htab_find_with_hash.
6876         * cpphash.h: Prototype _cpp_calc_hash.
6877         * cppinit.c (initialize_builtins): Provide a valid hash
6878         to _cpp_make_hashnode, using _cpp_calc_hash.
6879
6880         * cpphash.c (collect_expansion): # is not a special character
6881         in object-like macros.  In -traditional mode, /**/ is not
6882         token paste at the beginning or end of the line.
6883         * cpplib.c (do_include, do_import, do_include_next): If
6884         parse_include fails, return immediately.
6885
6886 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
6887
6888         * config/arm/arm.md (return peepholes): Update to reflect the new
6889         call insn patterns.
6890         * config/arm/arm.c (arm_volatile_func): Also check
6891         current_function_nothrow.
6892         (output_return_instruction, output_func_prologue): Use it.
6893         (arm_output_epilogue, arm_expand_prologue): Likewise.
6894
6895 2000-03-27  Tom Tromey  <tromey@cygnus.com>
6896
6897         * gcc.c (handle_braces): In {x*...} case, break out of loop if
6898         switch is found.
6899
6900 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6901
6902         * expr.c (store_constructor): SIZE now signed.
6903         For EXPR_SIZE, don't evaluate size; just needed if constant.
6904         * fold-const.c (fold): Fix a number of cases when folded tree is
6905         wrong type.
6906         * function.c (flush_addressof): Reenable.
6907         * tree.h (flush_addressof): Likewise.
6908         * toplev.c (independent_decode_option): Look at strings_processed.
6909         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
6910
6911 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
6912
6913         * sibcall.c (indentify_call_return_value): Find last call in the chain;
6914         Allow stack adjustment after function call.
6915
6916         * regmove.c (struct csa_memlist): Make mem field rtx *.
6917         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
6918         (try_apply_stack_adjustment): Replace whole MEM rtx.
6919         (combine_stack_adjustments_for_block): Update calls
6920         to record_one_stack_ref.
6921
6922 2000-03-28  Neil Booth  <NeilB@earthling.net>
6923
6924         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
6925         '\\' rather than a null character, so nulls are not special.  Fix
6926         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
6927         speed trigraph conversion.
6928         (_cpp_init_input_buffer): Initialize trigraph map.
6929
6930 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
6931
6932         * config/i386/i386.c (output_387_binary_op): Correct intel
6933         mode assembly output, and add spaces after commas in AT&T
6934         output.  Correct Unixware assembler comment.  Document input
6935         constraints.  Comment fp operations.  Reduce profligate buffer
6936         size.  Remove extraneous abort.  Localize temp var.
6937         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
6938         (output_fix_trunc): Add spaces after commas in assembly output.
6939
6940 2000-03-27  Richard Henderson  <rth@cygnus.com>
6941
6942         * i386-protos.h (ix86_match_ccmode): Declare.
6943         * i386.c (ix86_match_ccmode): New.
6944         (ix86_expand_fp_compare): Update for pattern renames.
6945         (ix86_expand_strlensi_unroll_1): Likewise.
6946         * i386.h (EXTRA_CC_MODES): Add CCZ.
6947         (SELECT_CC_MODE): Use it for EQ/NE zero.
6948         * i386.md (cmpsi_ccz_1): New.
6949         (cmpqi_ccz_1): New.
6950         (*testsi_ccz_1): New.
6951         (testqi_ccz_1): New.
6952         (cmpsi_ccno_1): Rename from cmpsi_0.
6953         (testsi_ccno_1): Rename from testsi_1.
6954         (testqi_ccno_1): Rename from testqi_1.
6955         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
6956         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
6957         (*cmphi_0): Use ix86_match_ccmode.
6958         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
6959         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
6960         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
6961         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
6962         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
6963         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
6964         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
6965         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
6966         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
6967         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
6968         (appropriate peepholes): Likewise.
6969         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
6970         (*subsi_3, *subhi_3, *subqi_3): Remove.
6971         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
6972         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
6973         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
6974         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
6975         (x86_shift_adj_1): Use CCZ.
6976         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
6977
6978 2000-03-27  Stan Cox  <scox@cygnus.com>
6979
6980         * resource.h (mark_resource_type): New.
6981         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
6982         find_free_register): Use mark_resource_type.
6983         (mark_set_resources): Change include_delayed_effects
6984         to mark_resource_type.
6985         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
6986         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
6987         Use mark_resource_type.
6988
6989 2000-03-27  Richard Henderson  <rth@cygnus.com>
6990
6991         * i386.md (call_pop_0, call_value_pop_0): New.
6992         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
6993         (call_value_pop_1): Likewise.
6994         (call_0, call_value_0): New.
6995         (call_1, call_value_1): Remove constraint from unused arg.
6996
6997 2000-03-27  Nick Clifton  <nickc@cygnus.com>
6998
6999         * invoke.texi (Spec Files): Document new spec % command created by
7000         Tom Tromey's recent patch.
7001
7002 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
7003
7004         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
7005         if not defined.
7006
7007 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7008
7009         * expr.c (expand_assignment): Fix typo in last change.
7010
7011         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
7012
7013 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7014
7015         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
7016         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
7017         and DECL_INLINE if FUNCTION_DECL.
7018         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
7019         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
7020         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
7021         (combine_parm_decls): Likewise.
7022         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
7023         * print-tree.c (print_node): Likewise.
7024         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
7025         DECL_TRANSPARENT_UNION on proper decl types.
7026         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
7027         * stor-layout.c (layout_decl): Only check DECL_PACKED and
7028         DECL_BIT_FIELD of FIELD_DECL.
7029         * tree.h (DECL_RESULT_FLD): New macro.
7030
7031         * expr.c (expand_assignment): Add code to handle variable-sized
7032         BLKmode case.
7033
7034 2000-03-26  Richard Henderson  <rth@cygnus.com>
7035
7036         * calls.c (expand_call): Pass parms not original exp to
7037         optimize_tail_recursion.  Mind return value instead of looking
7038         for a barrier.
7039         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
7040         call_expr.  Move checks for call_expr and current_function_decl ...
7041         (expand_return): ... here.
7042
7043 2000-03-26  Tom Tromey  <tromey@cygnus.com>
7044
7045         * gcc.c (handle_braces): Recognize `%{<S}' construct.
7046         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
7047         defines.
7048         (process_command): Use them.
7049         (check_live_switch): Likewise.
7050         (give_switch): Skip ignored switches.
7051
7052 2000-03-26  Jan Hubicka  <jh@suse.cz>
7053
7054         * jump.c (jump_optimize_1): Fix typo in elide optimizations
7055         for minimal jump pass test.
7056
7057 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
7058
7059         * integrate.c (function_cannot_inline_p): Do inline functions that
7060         return `void'.
7061
7062 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7063
7064         * stor-layout.c (layout_type, set_sizetype): early_type_list is
7065         now a list of TREE_LIST entries, not types.
7066         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
7067
7068         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
7069         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
7070         int_bit_position.
7071         * config/mips/mips.c (function_arg): Likewise; also remove cast
7072         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
7073         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
7074         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
7075         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
7076         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
7077         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
7078         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
7079         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
7080         num_adjusts now unsigned.
7081         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
7082         * config/sparc/sparc.c (struct function_arg_record_value_parms):
7083         NREGS now unsigned.
7084         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
7085         as is BITPOS variable; use host_integerp and int_bit_position.
7086         (function_arg_record_value_2): Likewise.
7087         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
7088         Variable REGNO now unsigned.
7089         (function_arg_record_value): NREGS now unsigned.
7090
7091 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
7092
7093         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
7094
7095 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7096
7097         * Rework fields used to describe positions of bitfields and
7098         modify sizes to be unsigned and use HOST_WIDE_INT.
7099         * alias.c (reg_known_value_size): Now unsigned.
7100         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
7101         (really_start_incremental_init): Use bitsize_zero_node.
7102         (push_init_level, pop_init_level, output_init_element): Likewise.
7103         Use bitsize_unit_node and bitsize_one_node.
7104         (output_pending_init_elements, process_init_element): Likewise.
7105         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
7106         (make_extraction): Position and length HOST_WIDE_INT and unsigned
7107         HOST_WIDE_INT, respectively.
7108         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
7109         (num_sign_bit_copies): Returns unsigned.
7110         BITWIDTH now unsigned; rework arithmetic.
7111         Remove recursive call from arg to MAX.
7112         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
7113         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
7114         REGNO now unsigned.
7115         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
7116         (find_split_point, expand_compound_operation, make_extraction): LEN
7117         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
7118         (make_field_assignment): Likewise.
7119         (combine_simplify_rtx): Add cast.
7120         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
7121         (force_to_mode): WIDTH now unsigned; add cast.
7122         (if_then_else_cond): SIZE now unsigned.
7123         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
7124         (extended_count): Now returns unsigned.
7125         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
7126         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
7127         (simplify_comparison): MODE_WIDTH now unsigned.
7128         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
7129         (mark_used_regs_combine): Likewise; rework arithmetic.
7130         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
7131         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
7132         (record_promoted_value): REGNO now unsigned.
7133         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
7134         (get_last_value): REGNO now unsigned.
7135         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
7136         (reg_dead_regno, reg_dead_endregno): Now unsigned.
7137         (remove_death): Arg REGNO now unsigned.
7138         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
7139         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
7140         now unsigned.
7141         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
7142         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
7143         (struct cse_reg_info): REGNO now unsigned.
7144         (cached_regno): Now unsigned.
7145         (REGNO_QTY_VALID_P): Add cast.
7146         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
7147         (remove_invalid_regs): Likewise.
7148         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
7149         as are variables END and I.
7150         (get_cse_reg_info, insert): Likewise.
7151         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
7152         (canon_hash): Likewise.
7153         (insert_regs, lookup_for_remove): REGNO now unsigned.
7154         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
7155         New variable RN.
7156         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
7157         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
7158         * emit-rtl.c (subreg_realpart_p): Add cast.
7159         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
7160         (operand_subword_force): Arg I is now unsigned.
7161         * except.c (eh_regs): Variable I is now unsigned.
7162         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
7163         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
7164         length is unsigned HOST_WIDE_INT; likewise for internal variables.
7165         (store_split_bit_field, extract_fixed_bit_field): Likewise.
7166         (extract_split_bit_field, store_bit_field, extract_bit_field):
7167         Likewise.
7168         * expr.c (store_constructor_fields, store_constructor, store_field):
7169         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
7170         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
7171         (do_jump): Likewise.
7172         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
7173         MAX_SIZE is now unsigned.
7174         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
7175         (emit_group_store): Likewise.
7176         (emit_move_insn): I now unsigned.
7177         (store_constructor): Use host_integerp, tree_low_cst, and
7178         bitsize_unit_node.
7179         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
7180         Rework all calculations to use trees and new fields.
7181         * expr.h (promoted_input_arg): Regno now unsigned.
7182         (store_bit_field, extract_bit_field): Adjust types of pos and size.
7183         (mark_seen_cases): Arg is HOST_WIDE_INT.
7184         * flow.c (verify_wide_reg_1): REGNO now unsigned.
7185         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
7186         precisions and alignments are unsigned.
7187         (optimize_bit_field_compare, fold_truthop): Likewise.
7188         (int_const_binop): Adjust threshold for size_int_type_wide call.
7189         (fold_convert): Likewise.
7190         (size_int_type_wide): Make table larger and fix thinko that only
7191         had half of table used.
7192         (all_ones_mask_p, fold): Precisions are unsigned.
7193         * function.c (put_reg_info_stack): REGNO is unsigned.
7194         (instantiate_decl): Size is HOST_WIDE_INT.
7195         (instantiate_virtual_regs): I is unsigned.
7196         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
7197         (promoted_input_arg): REGNO is unsigned.
7198         * function.h (struct function): x_max_parm_reg is now unsigned.
7199         * gcse.c (max_gcse_regno): Now unsigned.
7200         (struct null_pointer_info): min_reg and max_reg now unsigned.
7201         (lookup_set, next_set): REGNO arg now unsigned.
7202         (compute_hash_table): REGNO and I now unsigned.
7203         (handle_avail_expr): regnum_for_replacing now unsigned.
7204         (cprop_insn): REGNO now unsigned.
7205         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
7206         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
7207         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
7208         * hard-reg-set.h (reg_class_size): Now unsigned.
7209         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
7210         * jump.c (mark_modified_reg): I now unsigned; add cast.
7211         (rtx_equal_for_thread_p): Add cast.
7212         * loop.c (max_reg_before_loop): Now unsigned.
7213         (struct_movable): REGNO now unsigned.
7214         (try_copy_prop): REGNO arg unsigned.
7215         (regs_match_p): XN and YN now unsigned.
7216         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
7217         (strength_reduce): Likewise; NREGS also unsigned.
7218         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
7219         * loop.h (struct iv_class): REGNO now unsigned.
7220         (max_reg_before_loop, first_increment_giv, last_increment_giv):
7221         Now unsigned.
7222         * machmode.h (mode_size, mode_unit_size): Now unsigned.
7223         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
7224         * optabs.c (expand_binop): I and NWORDS now unsigned.
7225         (expand_unop): I now unsigned.
7226         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
7227         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
7228         * real.c (significand_size): Now returns unsigned.
7229         * real.h (significand_size): Likewise.
7230         * regclass.c (reg_class_size): Now unsigned.
7231         (choose_hard_reg_mode): Both operands now unsigned.
7232         (record_reg_classes): REGNO and NR now unsigned.
7233         (reg_scan): NREGS now unsigned.
7234         (reg_scan_update): old_max_regno now unsigned.
7235         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
7236         * reload.c (find_valid_class): BEST_SIZE now unsigned.
7237         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
7238         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
7239         Likewise for variable R.
7240         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
7241         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
7242         (find_equiv_reg): Add casts.
7243         (regno_clobbered_p): Arg REGNO now unsigned.
7244         * reload.h (struct reload): NREGS now unsigned.
7245         (refers_to_regno_for_reload_p): Regno args are unsigned.
7246         (regno_clobbered_p): Likewise.
7247         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
7248         (compute_use_by_pseudos): REGNO now unsigned.
7249         (find_reg): I and J now unsigned, new variable K, and change loop
7250         variables accordingly; THIS_NREGS now unsigned.
7251         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
7252         (spill_hard_reg): REGNO arg now unsigned; add casts.
7253         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
7254         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
7255         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
7256         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
7257         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
7258         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
7259         (emit_reload_insns): REGNO now unsigned.
7260         (reload_cse_move2add): Add cast.
7261         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
7262         and rework loop.
7263         * resource.c (mark_referenced_resources, mark_set_resources): New
7264         variable R; REGNO and LAST_REGNO now unsigned.
7265         (mark_target_live_regs): J and REGNO now unsigned.
7266         * rtl.c (mode_size, mode_unit_size): Now unsigned.
7267         * rtl.h (union rtunion_def): New field rtuint.
7268         (XCUINT): New macro.
7269         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
7270         (operand_subword, operand_subword_force): Word number is unsigned.
7271         (choose_hard_reg_mode): Operands are unsigned.
7272         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
7273         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
7274         (regno_use_in, combine_instructions, remove_death): Likewise.
7275         (reg_scan, reg_scan_update): Likewise.
7276         (extended_count): Return is unsigned.
7277         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
7278         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
7279         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
7280         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
7281         (reg_reg_last_1): FIRS and LAST now unsigned.
7282         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
7283         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
7284         now unsigned.
7285         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
7286         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
7287         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
7288         (replace_regs): Arg NREGS now unsigned.
7289         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
7290         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
7291         (simplify_binary_operation): Likewise.
7292         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
7293         THIS_LAST now unsigned.
7294         (cselib_record_set): Add cast.
7295         * ssa.c (ssa_max_reg_num): Now unsigned.
7296         (rename_block): REGNO now unsigned.
7297         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
7298         sizes now unsigned.
7299         (all_cases_count): Just return -1 not -2.
7300         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
7301         Rework tests to use trees whenever possible.
7302         Use host_integerp and tree_low_cst.
7303         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
7304         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
7305         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
7306         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
7307         (smallest_mode_for_size): Likewise.
7308         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
7309         KNOWN_ALIGN is now an alignment, so simplify code.
7310         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
7311         (start_record_layout): Renamed from new_record_layout_info.
7312         Update to new fields.
7313         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
7314         New functions.
7315         (place_union_field): Renamed from layout_union_field.
7316         Update to use new fields in rli.
7317         (place_field): Renamed from layout_field.
7318         Major rewrite to use new fields in rli; pass alignment to layout_decl.
7319         (finalize_record_size): Rework to use new fields in rli and handle
7320         union.
7321         (compute_record_mode): Rework to simplify and to use new DECL fields.
7322         (finalize_type_size): Make rounding more consistent.
7323         (finish_union_layout): Deleted.
7324         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
7325         (layout_type, case RECORD_TYPE): Call new function names.
7326         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
7327         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
7328         (get_best_mode): UNIT is now unsigned; remove casts.
7329         * tree.c (bit_position): Compute from new fields.
7330         (byte_position, int_byte_position): New functions.
7331         (print_type_hash_statistics): Cast to remove warning.
7332         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
7333         (build_index_type): Likewise; make subtype of sizetype.
7334         (build_index_2_type): Pass sizetype to build_range_type.
7335         (build_common_tree_nodes): Use size_int and bitsize_int to
7336         initialize nodes; add bitsize_{zero,one,unit}_node.
7337         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
7338         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
7339         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
7340         (DECL_FIELD_BITPOS): Deleted.
7341         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
7342         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
7343         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
7344         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
7345         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
7346         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
7347         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
7348         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
7349         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
7350         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
7351         (DECL_ALIGN): Adjust to new field in union.
7352         (DECL_OFFSET_ALIGN): New field.
7353         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
7354         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
7355         (union tree_decl): Add struct for both aligns.
7356         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
7357         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
7358         (struct record_layout_info): Rework fields to have offset
7359         alignment and byte and bit position.
7360         (start_record_layout, place_field): Renamed from old names.
7361         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
7362         (byte_position, int_byte_position): Likewise.
7363         (get_inner_reference): Change types of position and length.
7364         * unroll.c (unroll_loop): New variable R; use for some loops.
7365         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
7366         (calculate_giv_inc): Arg REGNO now unsigned.
7367         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
7368         * varasm.c (assemble_variable): Clean up handling of size using
7369         host_integerp and tree_low_cst.
7370         (decode_addr_const): Use byte, not bit, position.
7371         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
7372         use tree_low_cst and int_bit_position.
7373         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
7374
7375 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
7376
7377         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
7378         (reorder_block_def): New members eff_head and eff_end.
7379         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
7380         (verify_insn_chain): New function.
7381         (skip_insns_between_block): Add code to skip deleted insns.
7382         Check for note before using.
7383         (chain_reorder_blocks): Replace calls to skip_insns_between_block
7384         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
7385         Check for note before using.
7386         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
7387         (fixup_reorder_chain): Restructure, clean up, defect removal.
7388         (reorder_basic_blocks): Remove last_insn and references to it.
7389         Moved insn chain verification code into a new function (see above).
7390         Delete defective code that sets last insn.
7391         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
7392         all blocks.
7393
7394 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7395
7396         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
7397
7398 2000-03-24  Richard Henderson  <rth@cygnus.com>
7399
7400         * tree.c (lang_safe_for_unsave): Remove.
7401         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
7402         allowing for two levels of unsafeness.  Remove lang hook.
7403         * tree.h: Update declarations.
7404         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
7405         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
7406         Always fail sibcalls when there are pending cleanups.
7407
7408 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
7409
7410         * flow.c (propagate_block): When we delete an ADDR_VEC,
7411         also delete the BARRIER following it if there is one.
7412
7413 2000-03-24  Richard Henderson  <rth@cygnus.com>
7414
7415         * builtins.c (expand_builtin_bzero): Convert `length' argument
7416         to sizetype.
7417
7418 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
7419
7420         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
7421         comparison if regno's are equal.
7422         * calls.c (initialize_argument_informat): Add ecf_flags argument.
7423         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
7424         (expand_call): Update caller.
7425         Avoid making a sibling call if argument size of the callee is larger
7426         than argument size of the caller.
7427         Call hard_function_value with outgoing set if in sibcall pass.
7428         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
7429
7430         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
7431         Change LEAF_REGISTERS from an array initializer to actual array
7432         identifier. Move static global variable into the function.
7433         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
7434         sequences for leaf functions.
7435         * global.c (global_alloc): Likewise.
7436         * tm.texi (LEAF_REGISTERS): Update documentation.
7437
7438         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
7439         TARGET_FLAT leaf disabling hack.
7440         (LEAF_REGISTERS): Changed from an array initializer to actual array
7441         identifier to avoid duplication and remove the above hack.
7442         (FUNCTION_OK_FOR_SIBCALL): Define.
7443         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
7444         always like call attribute.
7445         (eligible_for_sibcall_delay): New attribute.
7446         (sibcall): New delay type.
7447         (sibcall, sibcall_value, sibcall_epilogue): New expands.
7448         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
7449         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
7450         * config/sparc/sparc.c (sparc_leaf_regs): New array.
7451         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
7452         New functions.
7453         (output_function_epilogue): Move part of the code into
7454         output_restore_regs.
7455         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
7456         TYPE_SIBCALL.
7457         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
7458         prototypes.
7459
7460         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
7461         until infrastructure is finished.
7462
7463 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
7464
7465         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
7466         (save_parm_insns): Not here.
7467
7468 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7469
7470         * builtins.c (expand_builtin_bzero): New function.
7471         (expand_builtin): Handle bzero.
7472
7473         * builtins.def: Add BUILT_IN_BZERO.
7474
7475         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7476         prototype & function for bzero.
7477
7478 2000-03-23  Michael Meissner  <meissner@redhat.com>
7479
7480         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
7481         change adding TARGET_FP to the TF floating point insns, except for
7482         trunctfsf2, which generates direct calls to truncdfsf2.
7483
7484 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
7485
7486         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
7487         try to protect against middle-end changes that break binary
7488         compatibility.
7489         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
7490
7491 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7492
7493         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
7494
7495 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7496
7497         * calls.c (expand_call): If TARGET is passed by reference and
7498         is readonly, write a CLOBBER.
7499
7500 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7501
7502         * builtins.c (expand_builtin): Handle bcmp.
7503
7504         * builtins.def: Add BUILT_IN_BCMP.
7505
7506         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7507         prototype & function for bcmp.
7508
7509 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
7510
7511         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
7512         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
7513         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
7514
7515 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
7516
7517         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
7518         alternative when using -fp64 -gp32.
7519
7520 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7521
7522         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
7523         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
7524         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
7525
7526         * frame.h (frame_state): Revert last change.
7527         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
7528         * libgcc2.c (throw_helper): Revert last change.
7529
7530 2000-03-22  Richard Henderson  <rth@cygnus.com>
7531
7532         * stmt.c (expand_asm_operands): Don't promote the temporary.
7533
7534 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7535
7536         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
7537         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
7538           c_get_alias_set): Likewise.
7539         * c-decl.c (duplicate_decls): Likewise.
7540         * c-typeck.c (default_conversion,build_unary_op): Likewise.
7541         * calls.c (initialize_argument_information): Likewise.
7542         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
7543         Likewise.
7544         * dwarfout.c (decl_class_context,output_type): Likewise.
7545         * expr.c (get_inner_reference): Likewise.
7546         * fold-const.c (simple_operand_p,fold): Likewise.
7547         * function.c (aggregate_value_p): Likewise.
7548         * stmt.c (expand_asm_operands): Likewise.
7549         * varasm.c (named_section): Likewise.
7550
7551 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7552
7553         Implement dwarf2 exception handling for the ARM.
7554         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
7555         (DWARF_FRAME_RETURN_COLUMN): Define.
7556         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
7557         REG_FRAME_RELATED_EXPR note.
7558         (emit_sfm): Likewise.
7559         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
7560         * dwarf2out.c (reg_save): Handle saving a register to itself.
7561         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
7562         * except.c (eh_regs): Don't use the static chain reg if it's
7563         callee-saved.
7564         * frame.h (frame_state): Add cfa_saved field.
7565         * frame.c (execute_cfa_insn): Set it.
7566         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
7567         the epilogue.
7568         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
7569         Now takes a parm.
7570         (instantiate_virtual_regs): Adjust.
7571         * tm.texi: Adjust.
7572         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7573         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7574         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
7575
7576         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
7577         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
7578
7579 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7580
7581         * builtins.def: New file.
7582
7583         * Makefile.in (TREE_H): Depend on builtins.def.
7584
7585         * builtins.c (built_in_names): Use builtins.def.
7586
7587         * tree.h (built_in_function): Likewise.
7588
7589 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
7590
7591         * tree.c (size_in_bytes): Return size_zero_node, not
7592         integer_zero_node.
7593
7594 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
7595
7596         * config/fp-bit.c (pack_d): Correct the case when a denormal
7597         is rounded up and stops being denormal.
7598
7599 2000-03-21  Richard Henderson  <rth@cygnus.com>
7600
7601         * config/alpha/alpha.c (function_arg): Check for void_type_node
7602         before using MUST_PASS_IN_STACK.
7603
7604 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
7605
7606         * regmove.c (combine_stack_adjustments_for_block): Check that
7607         the stack pointer is a valid memory address.
7608
7609 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
7610
7611         * calls.c: re-install Mar 16 emit_library_call merge.
7612
7613 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
7614
7615         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
7616         we cannot be sure that if reload_completed base register will
7617         be properly aligned.
7618
7619 2000-03-21  Richard Henderson  <rth@cygnus.com>
7620
7621         * flow.c (delete_block): Fix typo last change.
7622
7623 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
7624
7625         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
7626         not COMPLETE_TYPE_P, to check the type of the expression.
7627
7628 2000-03-21  Michael Meissner  <meissner@redhat.com>
7629
7630         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
7631         all floating point insns that just tested the macro
7632         TARGET_HAS_XFLOATING_LIBS.
7633         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
7634         used to only use the gprs.
7635
7636 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
7637
7638         * tree.h (COMPLETE_TYPE_P): New macro.
7639         (COMPLETE_OR_VOID_TYPE_P): New macro.
7640         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
7641         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
7642         * c-aux-info.c (gen_type): Use them.
7643         * c-common.c (c_expand_expr_stmt): Likewise.
7644         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
7645         grokdeclarator, grokparms, finish_struct, start_function,
7646         store_parm_decls, combine_parm_decls): Likewise.
7647         * c-parse.y (cast_expr): Likewise.
7648         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
7649         c_size_in_bytes, c_alignof, build_component_ref,
7650         build_indirect_ref, build_array_ref, convert_arguments,
7651         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
7652         * calls.c (initialize_argument_information): Likewise.
7653         * convert.c (convert_to_integer): Likewise.
7654         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
7655         * dwarfout.c (location_or_const_value_attribute,
7656         output_enumeration_type_die, output_structure_type_die,
7657         output_union_type_die, output_type): Likewise.
7658         * expr.c (safe_from_p, expand_expr): Likewise.
7659         * function.c (assign_parms): Likewise.
7660         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
7661         * tree.c (build_array_type, build_function_type,
7662         build_method_type, build_offset_type, build_complex_type): Likewise.
7663         * c-parse.c, c-parse.h: Regenerated.
7664
7665 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7666
7667         * config/c4x/rtems.h: Include config/rtems.h.
7668
7669 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
7670
7671         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
7672         decl is a FUNCTION_DECL
7673
7674 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
7675
7676         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
7677         function uses output registers.  Don't save RP for leaf functions.
7678         Do save RP even if no epilogue.
7679         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
7680         (CALL_USED_REGISTERS): Unmark in registers.
7681         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
7682         to near the middle.
7683
7684 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7685
7686         * config/rs6000/rs6000.md (bunordered): New expander.
7687         (bordered): New expander.
7688         (buneq): New expander.
7689         (bunge): New expander.
7690         (bungt): New expander.
7691         (bunle): New expander.
7692         (bunlt): New expander.
7693         (bltgt): New expander.
7694
7695         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
7696         (ccr_bit_negated_p): New function.
7697         (print_operand): For %C, generate appropriate cror for UNEQ,
7698         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
7699
7700 2000-03-20  Andreas Jaeger  <aj@suse.de>
7701
7702         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
7703         warning.
7704
7705         * tree.h (safe_for_unsave): Prototype.
7706
7707 2000-03-20  Richard Henderson  <rth@cygnus.com>
7708
7709         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
7710         (combine_stack_adjustments_for_block): Don't allow sp references
7711         in the side of a set we're not fixing up.
7712         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
7713         after life_analysis.
7714
7715 2000-03-20  Richard Henderson  <rth@cygnus.com>
7716
7717         * calls.c (expand_call): Don't bother generating tail call
7718         sequences if there are pending cleanups.  Use
7719         expand_start_target_temps/expand_end_target_temps to elide
7720         cleanups created during sibcall expansion.
7721
7722 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7723
7724         * configure.in: Set $IFS to a value if it doesn't already have one
7725         in the --enable-checking handling.
7726         * configure: Regenerate.
7727
7728 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7729
7730         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
7731         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7732         Regenerated.
7733
7734 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
7735
7736         * jump.c (delete_noop_moves): Remove code attempting to
7737         combine stack adjustments.
7738
7739 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7740
7741         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
7742         * except.c (emit_cleanup_handler): Use them.
7743         (expand_end_all_catch): Likewise.
7744         * function.c (fixup_var_refs): Likewise.
7745         (expand_function_end): Clear catch_clauses_last.
7746         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
7747         * except.h (struct eh_status): New field x_catch_clauses_last.
7748         (catch_clauses_last): New define.
7749
7750         * Makefile.in (tree.o): Depend on HASHTAB_H.
7751         * tree.c: Include hashtab.h.
7752         (struct type_hash): Remove next field.
7753         (TYPE_HASH_SIZE): Remove.
7754         (TYPE_HASH_INITIAL_SIZE): New define.
7755         (type_hash_table): Change type to htab_t.
7756         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
7757         mark_hash_entry): New functions.
7758         (init_obstacks): Allocate type hash.
7759         (type_hash_lookup): Use htab functions.
7760         (type_hash_add, mark_type_hash): Likewise.
7761         (dump_tree_statistics): Call print_type_hash_statistics.
7762
7763 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7764
7765         * rs6000/t-aix41: New file.
7766
7767         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
7768
7769 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
7770
7771         * tm.texi (Driver): Fix typos and tweak entry for
7772         INCLUDE_DEFAULTS.
7773         Move misplaced STRUCT_FORCE_BLK entry ...
7774         (Storage Layout): ... to here.
7775         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
7776
7777 2000-03-19  Richard Henderson  <rth@cygnus.com>
7778
7779         * flow.c (delete_block): Delete the addr_vec along with the block.
7780         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
7781         reference labels.
7782
7783         * fold-const.c (extract_muldiv): Apply type check for defined
7784         overflow to multiply as well as divide.
7785
7786         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
7787
7788 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7789
7790         * emit-rtl.c (remove_unncessary_notes): Check that all
7791         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
7792         associated NOTE_BLOCK.
7793         * function.h (identify_blocks): Update comments.
7794         (reorder_blocks): Declare.
7795         * function.c (identify_blocks): Don't take paramters.
7796         (reorder_blocks): Don't take parameters.
7797         * loop.h (find_loop_tree_blocks): Remove.
7798         (unroll_block_trees): Likewise.
7799         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
7800         reorder_blocks instead of unroll_block_trees.h
7801         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
7802         * stmt.c (find_loop_tree_blocks): Remove.
7803         (unroll_block_trees): Likewise.
7804         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
7805         in whole-function mode.
7806         * tree.h (reorder_blocks): Remove declaration.
7807
7808         * expr.c: Include intl.h.
7809         * Makefile.in (expr.o): Depend on intl.h.
7810
7811 2000-03-18  Richard Henderson  <rth@cygnus.com>
7812
7813         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
7814
7815 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7816
7817         * tree.h (tree_index): Remove enumerals for integer types.
7818         (integer_type_kind): New type.
7819         (integer_types): New variable.
7820         (char_type_node): Adjust.
7821         (signed_char_type_node): Likewise.
7822         (unsigned_char_type_node): Likewise.
7823         (short_integer_type_node): Likewise.
7824         (short_unsigned_type_node): Likewise.
7825         (integer_type_node): Likewise.
7826         (unsigned_type_node): Likewise.
7827         (long_integer_type_node): Likewise.
7828         (long_unsigned_type_node): Likewise.
7829         (long_long_integer_type_node): Likewise.
7830         (long_long_unsigned_type_node): Likewise.
7831         * tree.c (integer_types): New variable.
7832         (init_obstacks): Register it as a root.
7833
7834 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
7835
7836         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
7837         NEXT_INSN. Update last insn in chain.
7838
7839 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
7840
7841         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
7842         with TYPE_DECL_SUPPRESS_DEBUG set.
7843
7844 2000-03-18  Richard Henderson  <rth@cygnus.com>
7845
7846         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
7847
7848 2000-03-18  Richard Henderson  <rth@cygnus.com>
7849
7850         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
7851         care for HALF_PIC_P.
7852         (expander_call_insn_operand): Remove.
7853         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
7854         * i386.h (PREDICATE_CODES): Update.
7855         * i386.md (all call expanders): Remove predicates, remove special
7856         handling for half-pic.
7857         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
7858         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
7859         (sibcall_epilogue): New.
7860
7861 2000-03-17  Richard Henderson  <rth@cygnus.com>
7862
7863         * rtlanal.c (single_set): Reject if the parallel has anything
7864         except SET or USE or CLOBBER.
7865
7866 2000-03-17  Jeff Law  <law@cygnus.com>
7867             Richard Henderson  <rth@cygnus.com>
7868
7869         * Makefile.in (OBJS): Add sibcall.o.
7870         (sibcall.o): New.
7871         * sibcall.c: New file.
7872         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
7873         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
7874         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
7875         Emit sibcall patterns when requested.  Update all callers.
7876         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
7877         elimination seems feasable.
7878         * final.c (leaf_function_p): Sibling calls don't discount being
7879         a leaf function.
7880         * flow.c (HAVE_sibcall_epilogue): Provide default.
7881         (find_basic_blocks_1): Sibling calls don't throw.
7882         (make_edges): Make edge from sibling call to EXIT.
7883         (propagate_block): Don't remove sibcall_epilogue insns.
7884         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
7885         (sibcall_epilogue): New.
7886         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
7887         (identify_blocks_1): Likewise.  Break out from ...
7888         (identify_blocks): ... here.
7889         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
7890         (reorder_blocks): ... here.
7891         (init_function_for_compilation): Zap prologue/epilogue as varrays.
7892         (record_insns): Extend a varray instead of mallocing new memory.
7893         (contains): Read a varray not array of ints.
7894         (sibcall_epilogue_contains): New.
7895         (thread_prologue_and_epilogue_insns): Emit and record
7896         sibcall_epilogue patterns.
7897         (init_function_once): Allocate prologue/epilogue varrays.
7898         * genflags.c (gen_insn): Treat sibcall patterns as calls.
7899         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
7900         Broken out from ...
7901         (save_for_inline_nocopy): ... here.
7902         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
7903         Broken out from ...
7904         (expand_inline_function): ... here.
7905         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
7906         (subst_constants): Handle 'n' formats.
7907         * jump.c (jump_optimize_minimal): New.
7908         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
7909         optimizations if it's set.
7910         * rtl.c (copy_rtx): Do copy jump & call for insns.
7911         * rtl.h (struct rtx_def): Document use of jump and call for insns.
7912         (SIBLING_CALL_P): New.
7913         (sibcall_use_t): New.
7914         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
7915         Invoke optimize_sibling_and_tail_recursive_calls.
7916         * tree.c (lang_safe_for_unsave): New.
7917         (safe_for_unsave): New.
7918         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
7919
7920         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
7921         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
7922         (*sibcall_osf_1, *sibcall_value_osf_1): New.
7923
7924 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
7925
7926         * objc/objc-act.c (encode_method_prototype): Pass types, not
7927         PARM_DECLs, to int_size_in_bytes.
7928
7929 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
7930
7931         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
7932
7933         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
7934         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
7935
7936 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7937
7938         * Clean up usages of TREE_INT_CST_LOW.
7939         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
7940         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7941         Regenerated.
7942         * c-tree.h (min_precision): Move declaration to here.
7943         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
7944         (build_unary_op, add_pending_init): Use bit_position.
7945         (pending_init_member, process_init_element): Likewise.
7946         (really_start_incremental_init, push_init_level, pop_init_level):
7947         Don't make copies of nodes or modify them in place, use consistent
7948         types when tracking positions, and use tree routines computations.
7949         (set_init_index, output_init_element): Likewise.
7950         (output_pending_init_elements, process_init_element): Likewise.
7951         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
7952         tree_low_cst and int_bit_position; also minor cleanup.
7953         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
7954         (print_cst_octal): Precision is unsigned.
7955         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
7956         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
7957         (simple_type_align_in_bits): Result is unsigned int.
7958         Use tree_int_low_cst and host_integerp.
7959         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
7960         (field_byte_offset): Result is HOST_WIDE_INT.
7961         Change types of internal variables so alignments are unsigned int,
7962         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
7963         Use host_integerp, tree_low_cst, and int_bit_position.
7964         (add_bit_offset_attribute): Likewise.
7965         (add_data_member_location_attribute): Use tree_cst_low.
7966         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
7967         (add_bit_size_attribute): Use tree_low_cst.
7968         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
7969         * dwarfout.c: Similar changes to dwarf2out.c.
7970         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
7971         * genoutput.c (n_occurences): Return -1 for null string.
7972         (strip_whitespace): Accept null string and make into function.
7973         (scan_operands): Reflect above changes.
7974         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
7975         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
7976         * ssa.c (rename_registers): Add missing cast of arg to bzero.
7977         * tree.c (int_size_in_bytes): Check for too big to represent.
7978         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
7979         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
7980         New declarations.
7981         (min_precision): Delete from here.
7982         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
7983         and int_bit_position.
7984         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
7985         (encode_method_def): Likewise.
7986         (build_ivar_list_initializer): Use int_bit_position.
7987         (generate_shared_structures): Convert size.
7988         (encode_type, encode_complete_bitfield): Use integer_zerop.
7989         (encode_bitfield): Use tree_low_cst and int_bit_position.
7990
7991 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7992
7993         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
7994
7995 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7996
7997         * call.c (special_function_p): It is only malloc if it returns
7998         Pmode.
7999
8000 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8001
8002         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
8003         (C33_FLAG, TARGET_C3X): Add macros.
8004         (TARGET_SWITCHES): Add -m33 option.
8005         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
8006
8007 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8008
8009         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
8010         (PARALLEL_PACK_FLAG): Delete.
8011         (TARGET_SWITCHES): Update.
8012         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
8013
8014 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8015
8016         * fold-const.c (fold): Fix a few cases when the returned result
8017         is not of the same type as the input.
8018
8019 2000-03-16  Nick Clifton  <nickc@cygnus.com>
8020
8021         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
8022         warning.
8023
8024 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8025
8026         * libgcc2.h: Move prototypes above macros with the same name.
8027         Wrap some function prototypes in the conditional which indicates
8028         whether they are supported, i.e. "BITS_PER_UNIT == 8".
8029
8030 2000-03-16  Richard Henderson  <rth@cygnus.com>
8031
8032         * calls.c: Revert last two changes.
8033
8034 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
8035
8036         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
8037         has exponent 0 is a zero.
8038
8039         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
8040         HASH may already be nonzero.  Add code/mode into hash value
8041         immediately after repeat label.
8042         (cselib_lookup): Don't leave the hash table in an inconsistent
8043         state before a hash lookup operation.
8044
8045 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
8046
8047         * i386.md (all HI and QI mode non-move patterns):  Conditionize
8048         by TARGET_[HQ]IMODE_MATH.
8049         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
8050         x86_promote_qi_regs): Declare.
8051         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
8052         TARGET_PROMOTE_QI_REGS): New macros.
8053         (PROMOTE_MODE): New macro.
8054         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
8055         x86_promote_qi_regs): New global variables.
8056
8057 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
8058
8059         * calls.c (emit_library_call_value_1): Break out from ...; handle
8060         VOIDmode function calls too.
8061         (emit_library_call_value): ... here.
8062         (emit_library_call): Implement by calling emit_library_call_value_1.
8063
8064 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
8065
8066         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
8067         Update arg_space_so_far on stack adjustments.
8068         (emit_library_call, emit_library_call_value): Likewise; take into
8069         account arg_space_so_far and pending_stack_adjust when calculcating
8070         the boundary.
8071
8072 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
8073
8074         * flow.c: Move all basic block reordering code into its own file.
8075         (create_basic_block): Externalize.
8076         * bb-reorder.c: New file. Copy all basic block reordering code from
8077         flow.c to this file.
8078         (reorder_basic_blocks): Fix fencepost error in for-loop.
8079         (reorder_basic_blocks): Remove braces from single statement for-loops.
8080         * basic-block.h: Add declaration for create_basic_block.
8081         * Makefile.in: Add rules for bb-reorder.o.
8082
8083 2000-03-16  Neil Booth  <NeilB@earthling.net>
8084
8085         * cppinit.c (handle_option):  Implement #unassert directive
8086         as -A- command line option.
8087         (print_help):  Update.
8088         * cpptexi.c:  Update.
8089
8090 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8091
8092         * md.texi (Standard Names): Document `jump'.
8093
8094 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8095
8096         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
8097         gotos.
8098
8099 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
8100
8101         Merge changes from newppc-branch onto trunk.
8102
8103         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
8104
8105         * rs6000.c (toc_hash_table): Update for new hash table functions.
8106         (toc_hash_function): Likewise.
8107         (toc_hash_eq): Likewise.
8108         (toc_hash_mark_entry): Likewise.
8109         (toc_hash_mark_table): Likewise.
8110         (output_toc): Likewise.
8111         (rs6000_add_gc_roots): Likewise.
8112
8113         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8114
8115         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
8116         (AR_FLAGS_FOR_TARGET): here.  New macro.
8117
8118         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
8119
8120         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
8121         fpmem_operand) Delete.
8122         (xer_operand) New.
8123         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
8124         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
8125         (rs6000_save_machine_status, rs6000_restore_machine_status,
8126         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
8127         references to above variables.
8128         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
8129         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
8130         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
8131         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
8132         (XER_REGNO_P, XER_REGNO): New.
8133         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
8134         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
8135         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
8136         XER_REGNO_P.
8137         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
8138         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
8139         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
8140
8141         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8142
8143         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
8144         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
8145         * rs6000.h: from here.
8146
8147         * rs6000-protos.h (rs6000_select_section): Provide prototype.
8148         (rs6000_select_rtx_section): Likewise.
8149         (rs6000_encode_section_info): Likewise.
8150         (sdata_section): Likewise.
8151         (sdata2_section): Likewise.
8152         (sbss_section): Likewise.
8153         * sysv4.h (rs6000_select_section): Delete prototype.
8154         (rs6000_select_rtx_section): Likewise.
8155         (rs6000_encode_section_info): Likewise.
8156         (sdata_section): Likewise.
8157         (sdata2_section): Likewise.
8158         (sbss_section): Likewise.
8159         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
8160
8161         * sysv4.h: Delete various unnecessary #undef's and put a comment
8162         on the remaining ones.
8163         Change various comments according to coding standard.
8164
8165         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
8166
8167         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
8168         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
8169         (CR0_REGNO_P) Remove.
8170         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
8171         setup_incoming_varargs, mtcrf_operation, print_operand,
8172         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
8173         Use the above macros.
8174
8175         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
8176
8177         * config/rs6000/rs6000.md: Added a new alternative for each
8178         pattern that had a 'x' alternative but no 'y' alternative.
8179         Added a new split for each of the above patterns.
8180
8181         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
8182
8183         * aix41.h (ASM_CPU_SPEC): Delete.
8184         (CPP_CPU_SPEC): Delete.
8185
8186         * aix.h (RS6000_OUTPUT_BASENAME): Define.
8187         (ASM_OUTPUT_LABEL): Define.
8188         (ASM_GLOBALIZE_LABEL): Define.
8189         (STRIP_NAME_ENCODING): Define.
8190         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
8191         (STRIP_NAME_ENCODING): Don't define.
8192         (ASM_OUTPUT_LABEL): Don't define.
8193         (ASM_GLOBALIZE_LABEL): Don't define.
8194         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
8195         names, and ASM_OUTPUT_LABEL to output labels, rather than
8196         asm_fprintf.
8197         (ASM_OUTPUT_LABEL): Define.
8198         (ASM_OUTPUT_INT): Use assemble_name.
8199         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
8200         (STRIP_NAME_ENCODING): Don't undefine first.
8201         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
8202         ELF.
8203         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
8204         specified with 'asm' even with -fleading-underscore.
8205         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
8206         (output_epilog): Likewise.
8207         (output_toc): Likewise.
8208         * tramp.asm: Handle -fleading-underscore correctly.
8209
8210         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
8211         -mminimal-toc.
8212         (nonlocal_goto_receiver): Delete.
8213         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
8214
8215         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
8216         (SET_ASM_OP): Define.
8217         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
8218
8219         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
8220         (ASM_LONG): Define.
8221
8222         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
8223         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
8224
8225         * rs6000.h: Add 'u' to more constants.
8226
8227         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
8228
8229         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
8230
8231         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
8232
8233         * rs6000.c (reg_or_u_cint_operand): New function.
8234         (logical_operand): Handle 64-bit hosts.
8235         (logical_u_operand): New function.
8236         (non_logical_cint_operand): Handle 64-bit hosts.
8237         (non_logical_u_cint_operand): New function.
8238         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
8239         (PREDICATE_CODES): Define new functions.
8240         * rs6000-protos.h: Declare new functions.
8241         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
8242         (movdi_64): Bracket code intended for 64-bit hosts.  Create
8243         CONST_DOUBLE for 32-bit values.
8244         (scc insns): Generate DImode compares.
8245         (mfcr insns): Create DImode versions.
8246         (sge matchers): New patterns.
8247
8248         2000-02-15  Gabriel Paubert  <paubert@iram.es>
8249
8250         * rs6000.md: Correct instructions length attributes and
8251         constraints on unsigned compare instructions.
8252         (*ne0): Disable for PowerPC64.
8253
8254         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8255
8256         * rs6000.c (output_function_profiler): Use .long for a 32-bit
8257         quantity, fix profile1.C test failure under -fPIC.
8258
8259         * rs6000.c: Add 'u' to many constants to suppress warnings.
8260         (constant_pool_expr_1): Make static.
8261         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
8262         * rs6000.h: Add 'u' to many constants to suppress warnings.
8263
8264         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
8265         for the start of the TOC, instead of LCTOC..0.
8266         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
8267         of the TOC.
8268         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
8269         (load_toc_aix_di): Use LCTOC..1.
8270
8271         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
8272         * rs6000.c (rs6000_legitimize_address): New function from
8273         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
8274         symbols in the constant pool that really are TOC references.
8275         (print_operand_address): For ELF, write TOC offsets under
8276         -fPIC as subtractions in the insn.
8277         (output_toc): For ELF, define symbols in TOC as normal labels,
8278         to match RTL.
8279         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
8280         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
8281         (create_TOC_reference): Prototype only when RTX_CODE is defined.
8282         * rs6000.md (movsi): Only use create_TOC_reference on
8283         symbols in the constant pool that really are TOC references.
8284
8285         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
8286         * rs6000.c (rs6000_reorg): Delete.
8287         * rs6000-protos.h (rs6000_reorg): Delete.
8288
8289         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
8290
8291         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
8292
8293         * aix.h (SETUP_FRAME_ADDRESSES): Define.
8294         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
8295         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
8296         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
8297         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
8298         rs6000_aix_emit_builtin_unwind_init.
8299         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
8300         rs6000_emit_eh_toc_restore on AIX.
8301         (return_eh_si): Use r2.
8302         (return_eh_di): Use r2.
8303
8304         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
8305         since we're breaking binary compatibility anyway.
8306
8307         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8308
8309         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
8310         constant_pool_expr_p): Declare them.
8311         (constant_pool_expr_p): Declare it.
8312         * config/rs6000/rs6000.c (toc_label_name): Define.
8313         (rs6000_override_options): Set toc_label_name.
8314         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
8315         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
8316         uses_TOC): New functions.
8317         (print_operand): Delete old '*' case.
8318         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
8319         and strip off rtl for TOC before calling output_addr_const.
8320         (rs6000_emit_load_toc_table): Use toc_label_name.
8321         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
8322         the default.
8323         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
8324         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
8325         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
8326         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
8327         into explicit TOC_REGISTER offsets.
8328         (TOC_REGISTER): New macro.
8329         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
8330         TARGET_TOC to reference TOC_REGISTER.
8331         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
8332         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
8333         uses_TOC before emitting label references.
8334
8335         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8336
8337         * rs6000.md (stack_tie): Fix warning.
8338
8339         * eabi-ctors.c: Use 'asm' names for the start/end variables,
8340         to handle -fleading-underscore.
8341         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
8342         (USER_LABEL_PREFIX): New macro.
8343         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
8344         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
8345         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
8346         call-linux can use the same multilibs.
8347         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
8348         and call-linux multilibs.  Do multilib with -fleading-underscore.
8349         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
8350         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
8351         to call-aix.
8352
8353         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
8354         have MASK_SOFT_FLOAT set.
8355         (CPP_FLOAT_DEFAULT_SPEC): New macro.
8356         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
8357         CPP_FLOAT_DEFAULT_SPEC.
8358
8359         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
8360         * rs6000.md: Whitespace change.
8361         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
8362         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
8363
8364         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
8365
8366         * rs6000.md (eh_epilogue): New expander.
8367         (eh_reg_restore): New expand/split/insn combination.
8368         (return_eh_si): New insn.
8369         (return_eh_di): New insn.
8370
8371         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
8372         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
8373         * eabi-ctors.c (__do_global_ctors): Register this object's
8374         frame.  Clean up.  Call atexit() after the constructors.
8375         (__do_global_dtors): Deregister this object's frame.  Clean up.
8376         Allow for recursive calls to exit().
8377         * rs6000.c (fixuplabelno): New variable.
8378         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
8379         TARGET_RELOCATABLE, it slows down exec() under linux.
8380         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
8381
8382         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
8383         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
8384         (ASM_OUTPUT_DWARF_DELTA2): New macro.
8385         (ASM_OUTPUT_DWARF_DELTA4): New macro.
8386         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
8387         (ASM_OUTPUT_DWARF_ADDR): New macro.
8388         (ASM_OUTPUT_DWARF_DATA4): New macro.
8389         (ASM_OUTPUT_DWARF_DATA2): New macro.
8390         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
8391         (ASM_OUTPUT_DWARF_OFFSET): New macro.
8392         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
8393
8394         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
8395
8396         * rs6000.c (rs6000_sr_alias_set): New variable.
8397         (rs6000_override_options): Initialise rs6000_sr_alias_set.
8398         (rs6000_emit_stack_tie): New function.
8399         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
8400         in a way that dwarf2out can understand.
8401         (rs6000_frame_related): New function.
8402         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
8403         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
8404         Use rs6000_emit_stack_tie when needed.
8405         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
8406         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
8407         * rs6000.md (stack_tie): New insn.
8408         (return_internal_si): Allow return value to be in the count
8409         register.
8410         (return_internal_di): Likewise.
8411
8412         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
8413
8414         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
8415
8416         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
8417
8418         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
8419
8420         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
8421
8422         * rs6000.md (stmw): Use the right POWER opcode.
8423         (lmw): Likewise.
8424
8425         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8426
8427         * rs6000-protos.h: New file.
8428
8429         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
8430
8431         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
8432         warnings.
8433
8434         * sysv4.h: Likewise.
8435
8436         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
8437
8438         * ../../configure.in: Delete powerpcle-*-winnt*
8439         and powerpcle-*-pe|powerpcle-*-cygwin*.
8440         * ../../configure: Regenerated.
8441         * cygwin.h: Delete.
8442         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
8443         (TARGET_WINDOWS_NT): Delete.
8444         (ABI_NT): Delete.
8445         (CALL_NT_DLLIMPORT): Delete.
8446         Delete NT-specific code.
8447         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
8448         * win-nt.h: Delete.
8449         * t-winnt: Delete.
8450         * nt-ci.asm: Delete.
8451         * nt-cn.asm: Delete.
8452         * ntstack.asm: Delete.
8453
8454         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8455
8456         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
8457         (ASM_FILE_START): Likewise.
8458         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8459         (ASM_OUTPUT_LABELREF): Likewise.
8460         (ASM_OUTPUT_SKIP): Likewise.
8461         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
8462         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
8463         (ASM_OUTPUT_CASE_LABEL): Likewise.
8464         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8465         (ASM_OUTPUT_ASCII): Likewise.
8466
8467         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
8468
8469         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
8470         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
8471         increment rs6000_pic_labelno here.
8472         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
8473         and increment rs6000_pic_labelno here.
8474
8475         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
8476
8477         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
8478         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
8479         allocation knows (reg) is dead before the insn.
8480
8481         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
8482
8483         * rs6000.md (movsi_to_cr): Correct typo in output template.
8484
8485         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8486
8487         * rs6000.c (rs6000_pic_labelno): Always define.
8488         (rs6000_pic_func_labelno): Delete.
8489         (lmw_operation): Check for a zero base register,
8490         which doesn't mean what we want.
8491         (stmw_operation): New function.
8492         (print_operand): Define new 'l' modifier.
8493         (rs6000_stack_info): We must save all 64 bits of the registers
8494         if TARGET_POWERPC64.
8495         (rs6000_output_load_toc_table): Delete.
8496         (rs6000_emit_load_toc_table): New function.
8497         (rs6000_allocate_stack_space): Delete.
8498         (rs6000_emit_allocate_stack): New function.
8499         (rs6000_emit_prologue): New function.
8500         (output_prolog): Use rs6000_emit_prologue.
8501         (rs6000_emit_epilogue): Change a few variable names to be
8502         more accurate.  Restore all 64 bits of the registers if
8503         TARGET_POWERPC64.  Only restore the FP registers which were used
8504         if they are being saved/restored one-at-a-time.
8505         (output_mi_thunk): Delete inefficient code generation.
8506         (output_function_profiler): Don't use rs6000_output_load_toc_table.
8507         * rs6000.h: Declare rs6000_emit_load_toc_table,
8508         rs6000_allocate_stack_space, stmw_operation.  Don't declare
8509         rs6000_output_load_toc_table.
8510         * rs6000.md (elf_high): Allow register 0, but discourage it
8511         heavily.
8512         (elf_low): Support loading into register 0.
8513         (load_toc_aix_si): New pattern.
8514         (load_toc_aix_di): New pattern.
8515         (load_toc_v4_pic_si): New pattern.
8516         (load_toc_v4_pic_di): New pattern.
8517         (load_toc_v4_PIC_1): New pattern.
8518         (load_toc_v4_PIC_1b): New pattern.
8519         (load_toc_v4_PIC_2): New pattern.
8520         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
8521         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
8522         (prologue): New expander.
8523         (movesi_from_cr): New pattern.
8524         (stmw): New pattern.
8525         (save_fpregs_si): New pattern.
8526         (save_fpregs_di): New pattern.
8527
8528         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8529
8530         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
8531         (movdi): Likewise.
8532         (movhi): Likewise.
8533         (movqi): Likewise.
8534
8535         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8536
8537         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
8538         at present.
8539         (movsi_got_internal): Likewise.
8540         (movsi_got_internal+1): Likewise.
8541         (set_sp): 'unspec 7' does a SImode clobber.
8542
8543         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8544
8545         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
8546         allocate a stack temporary.
8547         (floatsidf2_internal): Likewise.
8548         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
8549         with unspec.
8550         (floatunssidf2): Don't use the fpmem "register", just
8551         allocate a stack temporary.
8552         (floatunssidf2_internal): Likewise.
8553         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
8554         with unspec.
8555         (floatsidf2_loadaddr): Delete.
8556         (floatsidf2_store1): Delete.
8557         (floatsidf2_store2): Delete.
8558         (floatsidf2_load): Delete.
8559         (fix_truncdfsi2): Don't use the fpmem "register", just
8560         allocate a stack temporary.
8561         (fix_truncdfsi2_internal_si): Delete.
8562         (fix_truncdfsi2_internal_di): Delete.
8563         (fix_truncdfsi2_internal): New insn.
8564         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
8565         (fix_truncdfsi2_store): Delete.
8566         (fix_truncdfsi2_load): Delete.
8567         (fctiwz): Produce gen_fctiwz.
8568
8569         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8570
8571         * eabi.h (INVOKE__main): Define.
8572         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
8573         specially.
8574         (rs6000_emit_prologue): Likewise.
8575         * rs6000.h (struct rs6000_stack): Don't keep track of whether
8576         this is the main program.
8577
8578         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8579
8580         * rs6000.c (rs6000_va_arg): Delete some unused variables.
8581
8582         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8583
8584         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
8585         goes after the argument.
8586
8587         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8588
8589         * rs6000.md: Document 'unspec' values used.
8590         (epilogue): New expander.
8591         (movesi_to_cr_one): New expander.
8592         (movesi_to_cr and following): New pattern.
8593         (lmw): New pattern.
8594         (return_internal_si): New pattern.
8595         (return_internal_di): New pattern.
8596         (return_and_restore_fpregs_si): New pattern.
8597         (return_and_restore_fpregs_di): New pattern.
8598         * rs6000.h: Declare new functions.
8599         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
8600         rather than rs6000_calls_p.
8601         (rs6000_makes_calls): Delete.
8602         (lmw_operation): New function.
8603         (mtcrf_operation): New function.
8604         (rs6000_emit_epilogue): New function.
8605         (output_epilog): Call rs6000_emit_epilogue and final if
8606         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
8607
8608         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8609
8610         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
8611         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
8612         * aix.h (SUBTARGET_SWITCHES): Document switches.
8613         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
8614         sched-prolog and sched-epilog the same.  Document all the
8615         switches.
8616         (TARGET_OPTIONS): No longer allow -mdebug-.
8617
8618         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8619
8620         * rs6000.h (ASM_FILE_END): Move to aix.h.
8621         (EXTRA_SECTIONS): Move to aix.h.
8622         (READONLY_DATA_SECTION): Move to aix.h.
8623         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
8624         (SELECT_SECTION): Move to aix.h.
8625         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
8626         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
8627         (LINK_REGISTER_REGNUM): New definition.
8628         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
8629         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
8630         AIX and SVR4.
8631         * sysv4.h: Delete the code between the inclusion of rs6000.h
8632         and svr4.h.
8633         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
8634         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
8635         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
8636         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
8637         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
8638         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
8639         (fix_truncdfsi2_internal_di): New pattern.
8640         (fix_truncdfsi2_store): The second arg here is Pmode too.
8641         (fix_truncdfsi2_load): The second arg here is Pmode too.
8642         (tablejumpdi): Now that switch tables hold only SImode values,
8643         gcc needs to know how to add them to the pc which is DImode.
8644         * rs6000.c (rs6000_stack_info): Use symbolic name for
8645         LINK_REGISTER_REGNUM.
8646         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
8647         (output_toc): Delete unused variables s1 and s2.
8648         (output_ascii): Use fputs not fprintf on a variable string.
8649
8650         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
8651
8652         * rs6000.c (processor_target_table): Add power3 as alias for 630.
8653         * aix43.h: Revert Aug 2 change.
8654         (HAS_INIT_SECTION): Define, not visible yet.
8655         (LD_INIT_SWITCH): Define, not visible yet.
8656         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
8657
8658         2000-01-04  Joel Sherrill (joel@OARcorp.com>
8659
8660         * config/rs6000/rtems.h: Include config/rtems.h.
8661
8662         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
8663
8664         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
8665         (SLOW_UNALIGNED_ACCESS): Define.
8666         (CASE_VECTOR_MODE): Always use 32-bit offsets.
8667         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
8668         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
8669         (toc_section): Likewise and .toc pseudo-op.
8670         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
8671         64-bit mode.
8672         (TEXT_SECTION_ASM_OP): Likewise.
8673         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
8674         32-bit offsets.
8675
8676         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
8677
8678         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
8679         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
8680         compiling libgcc2.
8681
8682         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8683
8684         * rs6000.h: Move more stuff from here...
8685         * aix.h: to here.
8686         * sysv4.h: Cleanup accordingly.
8687         * netware.h: Likewise
8688
8689         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8690
8691         * rs6000.h: Continue cleanup.
8692         * aix.h: Likewise.
8693         * lynx.h: Likewise.
8694         * netware.h: Likewise.
8695         * sol2.h: Likewise.
8696         * sysv4.h: Likewise.
8697         * win-nt.h: Likewise.
8698
8699         * rs6000.h (TARGET_SWITCHES): Add descriptions.
8700         (TARGET_OPTIONS): Likewise.
8701
8702         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
8703         (SUBTARGET_OPTIONS): Likewise.
8704
8705         * rs6000.md: Fix compile time warnings.
8706
8707         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8708
8709         vxworks patches from the Cygnus tree originally by
8710         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
8711         <vmakarov@cygnus.com>.
8712         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
8713         (ENDFILE_SPEC): Likewise.
8714         (LIB_VXWORKS_SPEC): New macro.
8715         (STARTFILE_VXWORKS_SPEC): New macro.
8716         (ENDFILE_VXWORKS_SPEC): New macro.
8717         (LINK_START_VXWORKS_SPEC): New macro.
8718         (LINK_OS_VXWORKS_SPEC): New macro.
8719         (CPP_OS_VXWORKS_SPEC): New macro.
8720         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
8721         * vxppc.h: Rewrite to use proper configuration method.
8722         * vxppcle.h: New file.
8723         * ../../configure.in: Add powerpcle-wrs-vxworks*.
8724         * ../../configure: Rebuilt.
8725
8726         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8727
8728         Lots of changes to rs6000.h, sysv4.h, aix.h,
8729         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
8730         with the aim that rs6000.h is the first header
8731         included and the others override it.
8732         * aix.h: New file.
8733
8734         * x-aix41-gld: Remove.
8735         * x-aix43: Remove.
8736         * x-aix41: Remove target-specific switches, and don't specify
8737         -Wl,-bbigtoc as we don't need it any more.
8738         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
8739         Use t-aix43 for AIX 4.3 and above.
8740         * ../../configure: Regenerated.
8741
8742         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
8743         options, that don't do anything yet.
8744         (MASK_SCHED_PROLOG): New macro.
8745         (MASK_SCHED_EPILOG): New macro.
8746         (TARGET_SCHED_PROLOG): New macro.
8747         (TARGET_SCHED_EPILOG): New macro.
8748
8749         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8750
8751         * rs6000.c: Correct comment, the `minimal' TOCs are actually
8752         one per translation unit, not one per function.
8753         (output_toc): Also do duplicate constant elimination
8754         for per-translation-unit TOCs.
8755
8756         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
8757         a comment explaining _exactly_ when this pattern gets used.
8758         (builtin_setjmp_receiver): New pattern for better clarity.
8759         (init_v4_pic): Move it into a section dealing with TOC registers.
8760
8761         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
8762
8763         * rs6000.c (toc_hash_table): New variable.
8764         (rs6000_hash_constant): New function.
8765         (toc_hash_function): New function.
8766         (toc_hash_eq): New function.
8767         (toc_hash_mark_entry): New function.
8768         (toc_hash_mark_table): New function.
8769         (output_toc): Don't output duplicate TOC entries in
8770         a single file.
8771         (rs6000_add_gc_roots): Add the hash table as a GC root.
8772         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
8773         where they clearly shouldn't be.  This may need to be fixed
8774         later when there is a GNU ar for AIX.
8775         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
8776         Don't define BOOT_LDFLAGS as it is now not necessary.
8777
8778         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
8779
8780         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
8781         for va_list on AIX.  Use unsigned_char_type_node rather than
8782         constructing our own version on svr4.
8783
8784         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
8785
8786         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
8787         since patently it's not.
8788
8789         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
8790
8791         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
8792         define_expand/define_insn pair, and handle restore of the
8793         SVR4 -fpic register.
8794
8795 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
8796
8797         * acconfig.h (HAVE_GAS_WEAK): New define.
8798         * configure.in (assembler weak support): Check for .weak support.
8799         * config.in, configure: Rebuilt.
8800         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
8801         HAVE_GAS_WEAK is defined.
8802
8803 2000-03-15  Nick Clifton  <nickc@cygnus.com>
8804
8805         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
8806         asm_fprintf().
8807
8808 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
8809
8810         * cppfiles.c (open_include_file): New function.
8811         (find_include_file, cpp_read_file): Use it.
8812
8813 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8814
8815         * cpphash.c (dump_hash_helper): Take the slot, not the element.
8816
8817 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
8818
8819         * flow.c (verify_flow_info): Check for unconditional return.
8820
8821 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
8822
8823         * config/ia64/ia64.md (restore_stack_nonlocal): New.
8824         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
8825         (__ia64_restore_stack_nonlocal): New.
8826         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
8827
8828 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8829
8830         * cpphash.c (collect_formal_parameters): Do not complain about
8831         parameter names that just start with `__VA_ARGS__'.
8832
8833 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
8834
8835         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
8836         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
8837         * i386.c (pentiumpro_cost): Set mul cost to 4.
8838         (x86_use_movx): Set for PPro.
8839
8840 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
8841
8842         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
8843         STACK_BOUNDARY for empty frames now.
8844
8845 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
8846
8847         * stor-layout.c (layout_union): Remove.
8848         (layout_union_field): New function, split out from layout_union.
8849         (finish_union_layout): Likewise.
8850         (layout_field): Handle unions by calling layout_union_field.
8851         (finish_record_layout): Handle unions.
8852         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
8853         QUAL_UNION_TYPE handling.
8854
8855 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
8856
8857         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
8858         end of basic block is jump_insn, not barrier; use create_basic_block
8859         instead of creating basic block by hand.
8860
8861 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
8862
8863         * flow.c (reorder_basic_blocks): Account for barriers when writing
8864         over NEXT_INSN (last_bb->end).
8865         (verify_flow_info): Add check for missing barriers.
8866
8867 2000-03-14  Greg McGary  <gkm@gnu.org>
8868
8869         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
8870         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
8871         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
8872         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
8873         __unbounded, __unbounded__): New keywords.
8874         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
8875         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
8876         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
8877
8878 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
8879
8880         * cselib.h: New file.
8881         * alias.c: Include "cselib.h".
8882         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
8883         MEMs as two new arguments.
8884         (get_addr): New static function.
8885         (find_base_term): Handle VALUEs.
8886         (memrefs_conflict_p): Likewise.
8887         (true_dependence): Call get_addr on the addresses.
8888         Call fixed_scalar_and_varying_struct_p with addresses that have been
8889         passed through get_addr and canon_rtx.
8890         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
8891         with true_dependence.
8892         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
8893         * loop.c: Include "cselib.h".
8894         (load_mems): Process extended basic block that enters the loop with
8895         cselib.  Use that information to change initialization of the shadow
8896         register so that a constant equivalence is seen by later passes.
8897         * reload1.c: Include "cselib.h".
8898         (reload_cse_invalidate_regno): Delete function.
8899         (reload_cse_mem_conflict_p): Likewise.
8900         (reload_cse_invalidate_mem): Likewise.
8901         (reload_cse_invalidate_rtx): Likewise.
8902         (reload_cse_regno_equal_p): Likewise.
8903         (reload_cse_check_clobber): Likewise.
8904         (reload_cse_record_set): Likewise.
8905         (reg_values): Delete static variable.
8906         (invalidate_regno_rtx): Likewise.
8907         (reload_cse_delete_noop_set): New static function.
8908         (reload_cse_simplify): New static function, broken out of
8909         reload_cse_regs_1.
8910         (reload_cse_noop_set_p): Delete unused argument INSN.
8911         Just call rtx_equal_for_cselib_p on set source and destination.
8912         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
8913         reload_cse_delete_noop_set.  Delete code to keep track of values; use
8914         cselib functions instead.  Delete code to push/pop obstacks.
8915         (reload_cse_simplify_set): Use cselib to find equivalent values.
8916         Delete code to push/pop obstacks.
8917         (reload_cse_simplify_operands): Likewise.
8918         * rtl.def (VALUE): New rtx code.
8919         * rtl.h (union rtunion_def): New elt rt_cselib.
8920         (X0CSELIB, CSELIB_VAL_PTR): New macros.
8921         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
8922         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
8923         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
8924         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
8925         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
8926         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
8927         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
8928         cselib_record_set, cselib_record_sets): New static functions.
8929         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
8930         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
8931         references_value_p): New functions.
8932         (MAX_USELESS_VALUES, REG_VALUES): New macros.
8933         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
8934         n_useless_values, reg_values, callmem, cselib_obstack,
8935         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
8936         New static variables.
8937         * varray.h (union varray_data_tag): New elt te.
8938         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
8939         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
8940         dependencies.
8941
8942 2000-03-14  Nick Clifton  <nickc@cygnus.com>
8943
8944         * gcc.c (do_spec_1): Catch the case where %* is used in a
8945         substitution pattern, but it has not been initialised.
8946         Issue a meaningful error message if an unrecognised operator
8947         is encountered in a spec string.
8948
8949 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
8950
8951         * function.c (prepare_function_start): Correctly initialize
8952         cfun->stack_alignment_needed.
8953
8954 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
8955
8956         * cppfiles.c (find_include_file): Don't assume nshort is a
8957         substring of name.
8958
8959 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
8960
8961         * configure.in (hppa configurations): Add pa32-regs.h to the
8962         list of tm files as appropriate.
8963         * configure: Rebuilt.
8964         * pa.c (compute_frame_size): Remove explicit knowledge about FP
8965         register numbering.
8966         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
8967         (fmpyaddoperands, fmpysuboperands): Likewise.
8968         * pa.h: Remove various definitions which depend on knowing
8969         how registers are numbered.
8970         * pa32-regs.h: New file with PA32 register numbering specific
8971         definitions.
8972
8973 2000-03-14  Richard Henderson  <rth@cygnus.com>
8974
8975         * regmove.c (combine_stack_adjustments): New.
8976         (stack_memref_p, single_set_for_csa): New.
8977         (free_csa_memlist, record_one_stack_memref): New.
8978         (try_apply_stack_adjustment): New.
8979         (combine_stack_adjustments_for_block): New.
8980         * rtl.h (combine_stack_adjustments): Declare.
8981         * toplev.c (rest_of_compilation): Call it.
8982
8983         * i386.md: Revert 2000-01-16 change.
8984
8985 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8986
8987         * gccbug.in: Add web category, gcc specific classes.
8988
8989 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
8990
8991         * stor-layout.c (finalize_record_size): Fix typo.
8992
8993 2000-03-14  Stan Shebs  <shebs@apple.com>
8994
8995         * c-typeck.c (c_alignof): Error on incomplete types.
8996         * extend.texi (Alignment): Document this.
8997
8998 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
8999
9000         * cppfiles.c: Include mkdeps.h.
9001         (find_include_file, read_include_file): Remove _cpp_ prefix
9002         from name, make static.
9003         (_cpp_execute_include): New function, broken out of
9004         do_include.
9005
9006         * cpplib.c: Don't include mkdeps.h.
9007         (struct directive): Remove type field. Reorder entries.  The
9008         function takes only one argument.
9009         (struct if_stack): Make type field an int.
9010         (directive_table): Rename to dtable.  Generate it, the
9011         prototypes of the directive handlers, and the enum for the
9012         directive numbers, from a template macro.
9013         (do_ifndef, do_include_next, do_import): New functions.
9014         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
9015         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
9016         do_ident, do_assert, do_unassert, do_sccs): Take only one
9017         argument.
9018         (do_sccs): Define always, but alter behavior based on
9019         SCCS_DIRECTIVE.
9020         (_cpp_handle_directive, consider_directive_while_skipping):
9021         Restructure for new directive table layout.
9022
9023         (pass_thru_directive): Take a directive number, not a pointer
9024         to a struct directive.
9025         (parse_include): New function, broken out of do_include.
9026         (do_include, do_import, do_include_next): Use parse_include
9027         and _cpp_execute_include.
9028         (do_elif, do_else): Test for T_ELSE specifically when checking
9029         for #elif/#else after #else.
9030         (parse_ifdef): New function, broken out of do_ifdef.
9031         (validate_else): Expect a name arg without a leading #.
9032         (if_directive_name): Delete.
9033         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
9034         directive handlers with only one argument.
9035
9036         * cpphash.h: Update prototypes.
9037         (enum node_type): Remove entries for directives.
9038         * Makefile.in: Update dependencies.
9039
9040         * cpphash.c (dump_hash_helper): Only dump nodes of type
9041         T_MACRO.  Emit a newline after each definition.
9042
9043 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9044
9045         * gccbug.in: New file.
9046         * configure.in (all_outputs): Add gccbug.
9047         * Makefile.in (install-common): Install gccbug.
9048         (GCCBUG_INSTALL_NAME): New variable.
9049         * configure: Rebuilt.
9050
9051 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
9052
9053         * function.c (put_var_into_stack): Use type_for_mode to calculate
9054         part_type.  Use MEM_SET_IN_STRUCT_P.
9055         * expr.c (store_field): Handle CONCAT.
9056         (store_constructor): Use fields_length.
9057         * tree.c (fields_length): New fn.
9058         * tree.h: Declare it.
9059
9060 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9061
9062         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
9063         (cpplex.o): New target.
9064         * po/POTFILES.in: Add cpplex.c.
9065
9066         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
9067         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
9068         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
9069         skip_block_comment, skip_line_comment, skip_comment,
9070         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
9071         _cpp_parse_name, skip_string, parse_string,
9072         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
9073         _cpp_get_directive_token, find_position,
9074         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
9075         (maybe_macroexpand, _cpp_lex_token): New functions.
9076
9077         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
9078         parse_goto_mark): Delete.
9079         (_cpp_handle_eof): New function.
9080         (_cpp_handle_directive): Rename from handle_directive.
9081         (_cpp_output_line_command): Rename from output_line_command.
9082         (do_if, do_elif): Call _cpp_parse_expr directly.
9083         * cppfiles.c (_cpp_read_include_file): Don't call
9084         init_input_buffer here.
9085         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
9086         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
9087         here; pop the token_buffer and skip the rest of the line here.
9088         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
9089         here.
9090
9091         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
9092         Define here.
9093         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
9094         CPP_GOTO_MARK): New macros.
9095         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
9096         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
9097         _cpp_read_and_prescan, _cpp_init_input_buffer,
9098         _cpp_grow_token_buffer, _cpp_get_directive_token,
9099         _cpp_handle_directive, _cpp_handle_eof,
9100         _cpp_output_line_command): Prototype them here.
9101         * cpplib.h (enum cpp_token): Add CPP_MACRO.
9102         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
9103         quote_string, output_line_command): Remove.
9104
9105 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
9106
9107         * stmt.c (expand_end_case): RANGE may be signed, and when checking
9108         whether it is too large we must also verify that it isn't negative.
9109
9110 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
9111
9112         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
9113         (movsi_zero_liveg0): Remove.
9114         (movsf_insn_novis_liveg0): Remove.
9115         (negsi2): Remove.
9116         (negsi2_not_liveg0): Rename to negsi2.
9117         (one_cmplsi2): Remove.
9118         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
9119         (one_cmplsi2_liveg0): Remove.
9120         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
9121         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
9122         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
9123         (PREDICATE_CODES): Remove zero_operand.
9124         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
9125         TARGET_BROKEN_SAVERESTORE.
9126         (zero_operand): Remove.
9127         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
9128         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
9129         options.
9130         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9131         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
9132         TARGET_BROKEN_SAVERESTORE): Remove.
9133         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9134         Remove.
9135         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9136         Remove.
9137         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
9138         Remove.
9139
9140         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
9141
9142 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
9143
9144         * cpplib.c (do_pragma_implementation): Fix off-by-one error
9145         truncating a string.  Don't assume tokens are nul terminated.
9146         Problem noted by Andreas Jaeger <aj@suse.de>
9147
9148 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
9149
9150         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
9151         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
9152         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
9153
9154 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
9155
9156         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
9157         STRUCTURE_SIZE_BOUNDARY.
9158
9159 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
9160
9161         * tree.h (record_layout_info_s): New structure.
9162         (record_layout_info): New type.
9163         (new_record_layout_info): New function.
9164         (layout_field): Likewise.
9165         (finish_record_layout): Likewise.
9166         * stor-layout.c (layout_record): Remove.
9167         (new_record_layout_info): New function.
9168         (layout_field): New function, broken out from layout_record.
9169         (finalize_record_size): Likewise.
9170         (compute_record_mode): Likewise.
9171         (finalize_type_size): New function, broken out from layout_type.
9172         (finish_record_layout): Likewise.
9173         (layout_type): Use them.
9174
9175 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
9176
9177         * cpphash.c: Don't include version.h.
9178         (special_symbol) [case T_VERSION]: Look for the string in
9179         hp->value.cpval; don't use version_string.
9180         * cppinit.c (initialize_builtins): Set hp->value.cpval for
9181         __VERSION__ to version_string.
9182         * Makefile.in (cpphash.o): Update deps.
9183
9184 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
9185
9186         Convert cpplib to use libiberty/hashtab.c.
9187
9188         * cpplib.h (struct cpp_reader): Make hashtab and
9189         all_include_files of type 'struct htab *'.  Delete HASHSIZE
9190         and ALL_INCLUDE_HASHSIZE macros.
9191
9192         * cpphash.h: Update prototypes.
9193         (struct hashnode): Remove next, prev, and bucket_hdr members.
9194         Make length a size_t.  Add hash member.
9195         (struct ihash): Remove next member.  Add hash member.  Make
9196         name a flexible array member.
9197
9198         * cppfiles.c: Include hashtab.h.
9199         (include_hash): Delete.
9200         (IHASHSIZE): New macro.
9201         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
9202         (cpp_included): Do the hash lookup here.
9203         (_cpp_find_include_file): Rewrite.
9204         (cpp_read_file): Put the "fake" hash entry into the hash
9205         table.  Honor the control_macro, if it turns out we've seen
9206         the file before.  Don't push the buffer here.
9207         (_cpp_read_include_file): Push the buffer here.
9208         (OMODES): New macro.  Use it whenever we call open(2).
9209
9210         * cpphash.c: Include hashtab.h.
9211         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
9212         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
9213         _cpp_lookup_slot): New functions.
9214         (HASHSIZE): new macro.
9215         (hashf, _cpp_install, _cpp_delete_macro): Delete.
9216         (_cpp_lookup): Use hashtab.h routines.
9217
9218         * cppinit.c: Include hashtab.h.
9219         (cpp_reader_init): Call _cpp_init_macro_hash and
9220         _cpp_init_include_hash.  Don't allocate hashtab directly.
9221         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
9222         pfile->all_include_files.
9223         (initialize_builtins): Use _cpp_make_hashnode and
9224         htab_find_slot to add hash entries.
9225         (cpp_finish): Just call _cpp_dump_macro_hash.
9226         * cpplib.c: Include hashtab.h.
9227         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
9228         create hash entries.
9229         (do_pragma_poison, do_assert): Likewise.
9230         (do_include): Don't push the buffer here.  Don't increment
9231         system_include_depth unless _cpp_read_include_file succeeds.
9232         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
9233         or htab_remove_elt.
9234         (do_pragma_implementation): Use alloca to create copy.
9235
9236         * Makefile.in: Update dependencies.
9237
9238 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9239
9240         * cppinit.c (cl_directive_handler): More K&R fixing.
9241
9242 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
9243
9244         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
9245         STACK_BOUNDARY.
9246         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
9247
9248 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9249
9250         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
9251         Change from char[] to macros.
9252
9253 2000-03-12  Neil Booth  <NeilB@earthling.net>
9254
9255         * cppinit.c (cpp_start_read): Update indirect function
9256         call to K&R C.
9257
9258 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
9259
9260         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
9261         entry.
9262
9263         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9264         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
9265
9266 2000-03-11  Neil Booth  <NeilB@earthling.net>
9267
9268         * cppinit.c (struct pending option): Replace undef with a
9269         pointer to a directive handling routine.
9270         (struct cpp_pending): Replace separate assert_ and define_
9271         lists with one directive_ list.
9272         (new_pending_define): Rename new_pending_directive. Extra
9273         argument is the directive's handling routine.
9274         (handle_option): Update to use new_pending_directive.
9275
9276 2000-03-11  Neil Booth  <NeilB@earthling.net>
9277
9278         * cppfiles.c (file_cleanup, _cpp_find_include_file,
9279         remap_filename, _cpp_read_include_file, actual_directory,
9280         hack_vms_include_specification): Replace bcopy(), index() etc
9281         calls.  Add casts to some allocations.  Make some variables
9282         pointers to const [unsigned] char.
9283         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
9284         collect_formal_parameters): Similarly.
9285         * cppinit.c (struct pending_option, append_include_chain,
9286         cpp_options_init, cpp_reader_init, initialize_standard_includes,
9287         cpp_start_read, new_pending_define, handle_option): Similarly.
9288         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
9289         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
9290         do_pragma_implementation, detect_if_not_defined,
9291         do_ifdef, skip_if_group, cpp_get_token, parse_string,
9292         do_assert, do_unassert): Similarly.
9293         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
9294         function prototypes.
9295         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
9296
9297 2000-03-10  Richard Henderson  <rth@cygnus.com>
9298
9299         * builtins.c (expand_builtin_strlen): Revert last change.
9300         Use emit_insn_before if we're at the beginning of a sequence.
9301
9302 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
9303
9304         * builtins.c (expand_builtin_strlen): Make sure that we have something
9305         at the beginning of the sequence.
9306
9307         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
9308         deferred inlines.
9309
9310         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
9311
9312 2000-03-10  Richard Henderson  <rth@cygnus.com>
9313
9314         * except.c (can_throw): Use INTVAL on a CONST_INT.
9315         (reachable_handlers): Likewise.
9316         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
9317
9318 2000-03-10  Andreas Jaeger  <aj@suse.de>
9319
9320         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
9321         MD_STARTFILE_PREFIX since those are not needed on linux.
9322         (ASM_FILE_START): New, from mips/gnu.h.
9323
9324 2000-03-09  Richard Henderson  <rth@cygnus.com>
9325             Alex Samuel  <samuel@codesourcery.com> and others
9326
9327         * Makefile.in (ssa.o): New rule.
9328         (OBJS): Add ssa.o.
9329         (STAGESTUFF): Add *.ssa and *.ussa.
9330         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
9331         * rtl.def (PHI): New RTL expression.
9332         * rtl.h (clear_log_links): New declaration.
9333         (convert_to_ssa): Likewise.
9334         (convert_from_ssa): Likewise.
9335         * flow.c (split_edge): If the entry node falls through to the
9336         split edge's source block, split the entry edge.
9337         (clear_log_links): New function.
9338         * toplev.c (ssa_dump): New variable.
9339         (flag_ssa): Likewise.
9340         (f_options): Add "ssa".
9341         (compile_file): Create SSA dump files.
9342         (rest_of_compilation): Go to and from SSA if enabled.
9343         (decide_d_option): Handle -de for SSA dump files.
9344         * ssa.c: New file.
9345
9346 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
9347
9348         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
9349         same as VAR_DECL.
9350
9351 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
9352
9353         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
9354
9355 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
9356
9357         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
9358         (MD_STARTFILE_PREFIX_1): New macro.
9359
9360 2000-03-09  Robert Lipe  <robertl@sco.com>
9361
9362         * config/ia64/ia64.c: Include system.h.
9363
9364 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
9365
9366         * except.c (nothrow_function_p): If -fno-exceptions, just return.
9367         (init_eh_nesting_info): Likewise.
9368
9369         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
9370         (TREE_NOTHROW): Rename from TREE_RAISES.
9371         * toplev.c (rest_of_compilation): Set it.
9372         * print-tree.c (print_node): Adjust.
9373         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
9374         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
9375         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
9376         REG_EH_REGION note as appropriate.
9377         (libfunc_nothrow): New fn.
9378         (emit_library_call, emit_library_call_value): Use it.
9379         (expand_call): Check TREE_NOTHROW.
9380
9381         * varasm.c (make_decl_rtl): Skip initial '*' when setting
9382         DECL_ASSEMBLER_NAME.
9383
9384 2000-03-09  Andreas Jaeger  <aj@suse.de>
9385
9386         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
9387         (TARGET_MEM_FUNCTIONS): Define.
9388
9389 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
9390
9391         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
9392
9393         * except.c (can_throw): See through a SEQUENCE.
9394         (nothrow_function_p): New fn.
9395         * except.h: Declare it.
9396         * function.c (current_function_nothrow): New var.
9397         (prepare_function_start): Initialize it.
9398         * output.h: Declare it.
9399         * toplev.c (rest_of_compilation): Set it.
9400         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
9401
9402 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
9403
9404         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
9405         match.  (cpp_compare_defs): Count the nul separator when
9406         advancing over argument names.
9407
9408 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
9409
9410         * recog.c (preprocess_constraints): Matching constraints affect
9411         same alternative/different operand, not same operand/different
9412         alternative.
9413
9414         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
9415         register and a constant specially.
9416
9417 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9418
9419         * libgcc2.h: New file.
9420         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
9421
9422 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
9423
9424         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
9425         * configure: Regenerate.
9426         * config/ia64: New.
9427
9428 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9429
9430         * Makefile.in (LIBCPP_DEPS): New macro.
9431         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
9432         it to declare deps.
9433         * cpperror.c: Include cpphash.h.
9434         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
9435         dingleberry.
9436         (lex): Don't use CPP_WARN_UNDEF.
9437         (_cpp_parse_expr): Return an int, the truth value.
9438         * cppfiles.c: Include cpphash.h.
9439         (_cpp_merge_include_chains): Move to cppinit.c and make static.
9440         * cppinit.c (include_defaults_array): Disentangle.
9441         (cpp_cleanup): Don't free the if stack here.
9442         (cpp_finish): Pop off all buffers, not just one.
9443         * cpplib.c (eval_if_expr): Return int.
9444         (do_xifdef): Rename do_ifdef.
9445         (handle_directive): Don't use CPP_PREPROCESSED.
9446         (cpp_get_token): Don't use CPP_C89.
9447         * fix-header.c: Don't use CPP_OPTIONS.
9448
9449         * cpplib.h: Move U_CHAR, enum node_type, struct
9450         file_name_list, struct ihash, is_idchar, is_idstart,
9451         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
9452         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
9453         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
9454         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
9455         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
9456         of _cpp_simplify_pathname, _cpp_find_include_file,
9457         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
9458         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
9459         cppinit.c.
9460         Change all uses of U_CHAR to be unsigned char instead.
9461         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
9462
9463 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9464
9465         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
9466         (dwarf2out_begin_prologue): Set it.
9467         (output_call_frame_info): Don't emit EH unwind info for leaves.
9468
9469         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
9470         can occur outside of an EH region.
9471         * except.c: Correct comments about rethrow behavior.
9472         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
9473
9474 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
9475
9476         * flow.c (make_edges): Always call make_eh_edge for calls.
9477
9478 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9479
9480         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
9481         (struct cpp_buffer): Remove fname and underflow fields.
9482         (struct cpp_reader): Remove get_token field.
9483         (struct include_hash): Rename to struct ihash.  Add typedef to
9484         IHASH.
9485         (struct if_stack): Remove fname field.
9486         (IF_STACK_FRAME): Rename to IF_STACK.
9487
9488         * cpperror.c (print_containing_files): Trust that there are no
9489         macro buffers below the top file buffer.
9490         * cppfiles.c: Replace all references to 'struct include_hash'
9491         with 'IHASH'.  Rename initialize_input_buffer to
9492         init_input_buffer.  Don't set or reference cpp_buffer->fname,
9493         use buffer->ihash->name instead.
9494         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
9495         not CPP_NULL_BUFFER.
9496         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
9497         IF_STACK_FRAME, IHASH not struct include_hash.
9498         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
9499         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
9500         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
9501         references to cpp_buffer->fname (delete entirely, or use
9502         ->ihash->name instead) and IF_STACK->fname.
9503         (cpp_push_buffer): Don't set new->underflow.
9504         (do_include): Use cpp_file_buffer.
9505
9506         * cpphash.c (collect_formal_parameters): Remove duplicate
9507         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
9508         used as a macro argument name.  Don't append "..." to namebuf
9509         for varargs macros.  After we're done scanning, go through
9510         namebuf and make it NUL separated, not comma separated.
9511         (_cpp_compare_defs): Remove register tag from variables.
9512         Expect defn->argnames to be NUL separated.
9513         (_cpp_dump_definition): Expect defn->argnames to be NUL
9514         separated and in forward order.
9515         * cpphash.h: Update documentation of argnames field.
9516
9517 2000-03-08  Richard Henderson  <rth@cygnus.com>
9518
9519         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
9520         to fail.  Don't pre-expand the source operand.
9521
9522         * i386.md (strlensi): Initialize eoschar and align before use.
9523
9524 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9525
9526         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
9527         CONSTRUCTOR element.
9528
9529 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
9530
9531         * mips.c (mips_expand_prologue): If the last
9532         named argument is the vararg marker "va_list", treat it as
9533         an unnamed argument.
9534
9535 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
9536
9537         * dbxout.c (dbxout_parms): When correcting for promoted
9538         big-endian parameters, use the mode of the DECL_RTL rather
9539         than UNITS_PER_WORD.
9540
9541 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
9542
9543         * c-common.h (make_fname_decl): Declare.
9544         * c-common.c (make_fname_decl): Define.
9545         (declare_hidden_char_array): Remove.
9546         (declare_function_name): Use make_fname_decl.
9547         * c-decl.c (c_make_fname_decl): New function.
9548         (init_decl_processing): Set make_fname_decl.
9549
9550 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
9551
9552         * cccp.c (handle_directive): Initialize backslash_newlines_p.
9553
9554 2000-03-07  Philipp Thomas  <pthomas@suse.de>
9555
9556         * po/POTFILES.in: Remove cppalloc.c from file list.
9557
9558 2000-03-07  Steve Chamberlain  <sac@pobox.com>
9559
9560         * pj.c (pj_expand_prologue): current_function->args_info is
9561         now current_function_args_info.
9562
9563         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
9564         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
9565         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
9566
9567 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9568
9569         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
9570         output as hexadecimal rather than the default octal.
9571
9572 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9573
9574         * cpphash.c (special_symbol): Fix thinko in previous commit.
9575
9576 2000-03-07  Neil Booth  <NeilB@earthling.net>
9577
9578         * cppexp.c (struct operation, left_shift, right_shift,
9579         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
9580         "int"s to "unsigned int"s.
9581         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
9582         Similarly.
9583         * cpplib.h: Update for above.
9584         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
9585         returned from allocations.
9586
9587         * cppinit.c (opt_comp, parse_options): New functions.
9588         (handle_option): Use parse_option to parse a single command
9589         line option, that possibly takes an argument.
9590         (cpp_handle_options): Sort the array of command line options on
9591         first invocation (non-ASCII hosts only).
9592         (print_help): Update.
9593
9594 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9595
9596         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
9597         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
9598
9599         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
9600         initialized.
9601         * cppinit.c (cpp_cleanup): Free imp->nshort also.
9602
9603         * cpperror.c (cpp_print_containing_files,
9604         cpp_print_file_and_line, v_cpp_message): Rename to
9605         print_containing_files, print_file_and_line, and v_message.
9606         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
9607         to _cpp_parse_expr, parse_escape, and lex.
9608         (parse_charconst): Remove broken multibyte support.
9609         * cppfiles.c (include_hash): Make static.
9610         (cpp_included): New function.
9611         (merge_include_chains, find_include_file, finclude,
9612         simplify_pathname): Rename to _cpp_merge_include_chains,
9613         _cpp_find_include_file, _cpp_read_include_file, and
9614         _cpp_simplify_pathname.
9615         * cpphash.c (cpp_lookup, free_definition, delete_macro,
9616         cpp_install, create_definition, macroexpand, compare_defs,
9617         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
9618         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
9619         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
9620         * cppinit.c (cpp_handle_option): Rename to handle_option, make
9621         static.
9622         * cpplib.c: Remove extern prototype of cpp_parse_expr.
9623
9624         * cpphash.h: Update prototypes.
9625         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
9626
9627 2000-03-07  Andrew Haley  <aph@cygnus.com>
9628
9629         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
9630         PTRDIFF_TYPE should be based solely on Pmode.
9631         (SIZE_TYPE): ditto.
9632
9633 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9634
9635         * rtl.h (rtunion_def): Constify member `rtstr'.
9636         (emit_line_note_after, emit_line_note, emit_line_note_force,
9637         emit_note, decode_asm_operands): Constify.
9638
9639         * cse.c (canon_hash): Likewise.
9640
9641         * dbxout.c (dbxout_block): Likewise.
9642
9643         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
9644         v_warning_for_asm): Likewise.
9645
9646         * dwarfout.c (function_start_label): Likewise.
9647
9648         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
9649         emit_line_note_force): Likewise.
9650
9651         * final.c (last_filename, asm_insn_count, final_scan_insn,
9652         output_source_line): Likewise.
9653
9654         * function.h (struct emit_status): Likewise.
9655
9656         * gcse.c (hash_expr_1): Likewise.
9657
9658         * genattr.c (gen_attr, main): Likewise.
9659
9660         * genattrtab.c (struct function_unit, current_alternative_string,
9661         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
9662         attr_numeral, check_attr_test, check_attr_value,
9663         convert_set_attr_alternative, convert_set_attr,
9664         compute_alternative_mask, simplify_by_exploding, gen_attr,
9665         gen_unit): Likewise.
9666
9667         * genflags.c (gen_insn): Likewise.
9668
9669         * gengenrtl.c (type_from_format): Likewise.
9670
9671         * genopinit.c (gen_insn): Likewise.
9672
9673         * genoutput.c (n_occurrences, process_template, process_template):
9674         Likewise.
9675
9676         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9677         Likewise.
9678
9679         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9680         Likewise.
9681
9682         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
9683         ggc_set_mark, ggc_get_size): Likewise.
9684
9685         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
9686
9687         * optabs.c (init_one_libfunc): Likewise.
9688
9689         * output.h (assemble_start_function): Likewise.
9690
9691         * recog.c (decode_asm_operands): Likewise.
9692
9693         * toplev.c (rest_of_compilation): Likewise.
9694
9695         * tree.h (emit_line_note_after, emit_line_note,
9696         emit_line_note_force): Likewise.
9697
9698         * varasm.c (asm_output_bss, asm_output_aligned_bss,
9699         asm_emit_uninitialised, assemble_start_function,
9700         assemble_variable, const_hash, compare_constant_1,
9701         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
9702
9703         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
9704
9705         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
9706
9707         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
9708
9709         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
9710
9711         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
9712         arm_dllimport_name_p): Likewise.
9713
9714         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
9715         Likewise.
9716
9717         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
9718
9719         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9720
9721         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
9722         arm_mark_dllexport, arm_mark_dllimport,
9723         arm_pe_encode_section_info): Likewise.
9724
9725         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
9726         ASM_FINISH_DECLARE_OBJECT): Likewise.
9727
9728         * arm/thumb.c (thumb_function_prologue): Likewise.
9729
9730         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
9731
9732         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9733
9734         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
9735
9736         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
9737
9738         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
9739
9740         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9741
9742         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
9743         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
9744
9745         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
9746
9747         * i386/i386.c (asm_output_function_prefix): Likewise.
9748
9749         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
9750
9751         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9752
9753         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
9754
9755         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
9756         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
9757         ASM_OUTPUT_SECTION_NAME): Likewise.
9758
9759         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
9760
9761         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
9762
9763         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
9764
9765         * m32r/m32r.c (m32r_encode_section_info): Likewise.
9766
9767         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9768
9769         * mcore/mcore.c (mcore_encode_section_info): Likewise.
9770
9771         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9772
9773         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9774
9775         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9776
9777         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
9778
9779         * mips/mips.md (movdi, movsi): Likewise.
9780
9781         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9782
9783         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9784
9785         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9786
9787         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
9788         ASM_OUTPUT_ASCII): Likewise.
9789
9790         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
9791         output_mi_thunk, output_toc): Likewise.
9792
9793         * rs6000/rs6000.md (movsi): Likewise.
9794
9795         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
9796
9797         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
9798
9799         * v850/v850.c (print_operand, print_operand_address,
9800         v850_encode_data_area): Likewise.
9801
9802 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
9803
9804         * config/mips/mips.md (zero_extendsidi2): Always force operand
9805         one to memory for mips16.
9806
9807 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9808
9809         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
9810         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
9811         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
9812         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
9813         (min_precision): Result is unsigned.
9814         (add_double, neg_double, mul_double): Low word is unsigned.
9815         (lshift_double, rshift_double, lrotate_double): Likewise.
9816         (rrotate_double, div_and_round_double): Likewise.
9817         (tree_floor_log2, compare_tree_int): New functions.
9818         (preserve_rtl_expr_temps): New declaration.
9819         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
9820         (decl_attributes): Use tree_log2 to find alignment.
9821         Check for TREE_INT_CST_HIGH for format args.
9822         (min_precision): Now unsigned.
9823         Use tree_floor_log2.
9824         (truthvalue_conversion): Delete long-disabled code.
9825         * c-decl.c (finish_struct): Clean up tests on field width.
9826         (finish_function): Use compare_tree_int.
9827         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
9828         * c-typeck.c (comptypes): Use tree_int_cst_equal.
9829         (default_conversion, digest_init): Use compare_tree_int.
9830         (build_binary_op): Use integer_all_onesp and compare_tree_int.
9831         Fix type errors in forming masks.
9832         * calls.c (initialize_argument_information): Use compare_tree_int.
9833         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9834         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
9835         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
9836         (store_field): Use compare_tree_int.
9837         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
9838         (expand_expr, case ARRAY_REF): Use compare_tree_int.
9839         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
9840         (do_store_flag): Use compare_tree_int.
9841         * fold-const.c (encode, decode): Low part is always unsigned.
9842         (force_fit_type, add_double, neg_double, mul_double): Likewise.
9843         (lshift_double, rshift_double, lrotate_double): Likewise.
9844         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
9845         (fold_convert): Use compare_tree_int.
9846         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
9847         (invert_truthvalue, case INTEGER_CST): Likewise.
9848         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
9849         * mkdeps.c (deps_dummy_targets): Make I unsigned.
9850         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
9851         (lshift_double, rshift_double, lrotate_double, rrotate_double):
9852         Likewise.
9853         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
9854         (expand_end_case): Use compare_tree_int.
9855         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9856         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
9857         (layout_decl): Likewise.
9858         (layout_record, layout_union): Make sizes unsigned.
9859         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
9860         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
9861         * tree.c (struct type_hash): hashcode is unsigned.
9862         (build_type_attribute_variant, type_hash_list): Likewise.
9863         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
9864         (attribute_hash_list, build_array_type, build_method_type): Likewise.
9865         (build_complex_type): Likewise.
9866         (real_value_from_int_cst): Remove unneeded casts.
9867         (integer_all_onesp): Add casts.
9868         (tree_floor_log2, compare_tree_int): New functions.
9869         (build_index_type): Use tree_int_cst_sgn.
9870         * varasm.c (assemble_variable): Use compare_tree_int.
9871
9872 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
9873
9874         * cpphash.c (collect_expansion): Also catch ## at start of macro.
9875
9876         * varasm.c (make_decl_rtl): Don't add a number to members of
9877         local classes.
9878         (make_function_rtl): Likewise.
9879
9880 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9881
9882         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
9883         patch from 2000-01-28.
9884
9885 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
9886
9887         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
9888         filled with an insn from the jump target.
9889
9890 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9891
9892         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
9893         (c4x_external_ref): Likewise.
9894         * config/c4x/c4x.c (struct name_list): Likewise.
9895
9896 1999-12-16  Ben Collins  <bcollins@debian.org>
9897
9898         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
9899         argument to genmultilib.
9900         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
9901         the contents into the multilib.h header.
9902         * gcc.c: Declare multilib_exclusions for the specs file.
9903         (set_multilib_dir): Use it.
9904         (print_multilib_info): Likewise.
9905         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
9906         to pass to genmultilib.
9907
9908 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9909
9910         * builtins.c (built_in_class_names, built_in_names): Constify a
9911         char*.
9912
9913         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
9914         int.
9915         (_mcleanup): Ensure value matches format specifier in sprintf.
9916
9917         * cpphash.c (special_symbol): Don't needlessly cast away
9918         const-ness.
9919
9920         * cppinit.c (base_name): Delete unused prototype.
9921
9922         * mkdeps.c (deps_init): Make definition K&R safe.
9923
9924         * tree.h (built_in_class_names, built_in_names): Constify a
9925         char*.
9926
9927 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
9928
9929         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
9930         floating point instructions for epilogue delay.
9931
9932         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
9933         to gas if it supports .register pseudo.
9934
9935         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
9936         LONG_DOUBLE_TYPE_SIZE if not defined.
9937         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
9938         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
9939         * real.c: Likewise.
9940         * gengenrtl.c: Likewise.
9941         * print-rtl.c: Likewise.
9942         * rtl.c: Likewise.
9943         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
9944         MASK_LONG_DOUBLE_128.
9945         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
9946         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
9947         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
9948         (SUBTARGET_SWITCHES): Define.
9949         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
9950         with -mlong-double-128.
9951         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9952         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9953         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9954         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
9955         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
9956         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
9957         with -mlong-double-128.
9958         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9959         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9960         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9961         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
9962         TARGET_LONG_DOUBLE_128): Define.
9963         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9964         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
9965         long double on TARGET_ARCH64.
9966
9967 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
9968
9969         * function.c (free_temps_for_rtl_expr): Don't free slots
9970         that have been pushed into a higher level.
9971
9972         Revert this patch:
9973         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9974
9975 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9976
9977         * basic-block.h (ALLOCA_REG_SET): Remove.
9978         (INITIALIZE_REG_SET): New macro.
9979         * flow.c (update_life_info): Use it.
9980         (calculate_global_regs_live): Likewise.
9981         (propagate_block): Likewise.
9982         * global.c (build_insn_chain): Likewise.
9983         * haifa-sched.c (schedule_region): Likewise.
9984
9985 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
9986
9987         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
9988         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
9989         (DWARF_ARANGES_PAD_SIZE): New define.
9990         (output_aranges): Use it to pad the address range header.
9991         (DWARF_ROUND): Fix for non power of 2 rounding.
9992
9993 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
9994
9995         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
9996
9997 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9998
9999         * tree.def (RTL_EXPR): Update documentation.
10000         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
10001         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
10002         * function.c (preserve_rtl_expr_temp): New function.
10003         (preserve_rtl_expr_temps): Likewise.
10004         (preserve_rtl_expr_result): Use it.
10005
10006         Revert this patch:
10007         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
10008
10009 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
10010
10011         * regmove.c (copy_src_to_dest)  Do not create src->dest move
10012         for unchanging destination.
10013
10014 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
10015
10016         * function.h (struct sequence_stack): Remove rtl_expr.
10017         (struct emit_staus): Likewise.
10018         (seq_rtl_expr): Remove.
10019         * tree.h (free_temps_for_rtl_expr): Don't declare.
10020         (start_sequence_for_rtl_expr): Likewise.
10021         * rtl.h (preserve_rtl_expr_result): Likewise.
10022         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
10023         (start_sequence_for_rtl_expr): Remove.
10024         (push_topmost_sequence): Don't save sequence_rtl_expr.
10025         (pop_topmost_sequence): Remove comment about not restoring it.
10026         (end_sequence): Don't set seq_rtl_expr.
10027         (init_emit): Don't initialize it.
10028         (mark_sequence_stack): Don't mark it.
10029         (mark_emit_status): Likewise.
10030         * except.c (protect_with_terminate): Use
10031         start_sequence_for_rtl_expr, not start_sequence.
10032         * expr.c (expand_expr, case RTL_EXPR): Don't call
10033         preserve_rtl_expr_result or free_temps_for_rtl_expr.
10034         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
10035         (preserve_rtl_expr_result): Remove.
10036         (free_temps_for_rtl_expr): Likewise.
10037         (pop_temp_slots): Likewise.
10038         (mark_temp_slot): Don't mark the rtl_expr.
10039         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
10040         start_sequence_for_rtl_expr.
10041
10042 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
10043
10044         * mkdeps.c, mkdeps.h: New files.
10045         * po/POTFILES.in: Add them.
10046         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
10047         (cpplib.o, cppinit.o): Depend on mkdeps.h.
10048         (mkdeps.o): New target.
10049
10050         * cppfiles.c: Delete deps_output.
10051         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
10052         OBJECT_SUFFIX, and base_name.
10053         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
10054         the include hash.
10055         (initialize_dependency_output): Use deps_init,
10056         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
10057         all the unnecessary string bashing.
10058         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
10059         level.
10060         * cpplib.c (do_include): Use deps_add_dep.
10061         * cpplib.h (struct cpp_reader): Replace deps_buffer,
10062         deps_allocated_size, deps_size, deps_column members with
10063         single pointer to a struct deps.  Delete prototype of
10064         deps_output.
10065
10066         * cppinit.c: Fix thinko in previous patch.
10067
10068 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10069
10070         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
10071         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
10072         (mode_for_size_tree): New function.
10073         (layout_decl, layout_type): Call it and clean up BLKmode checks.
10074         * tree.h (mode_for_size_tree): New declaration.
10075
10076         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
10077
10078 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
10079
10080         * stmt.c (is_body_block): Move...
10081         * dwarfout.c, dwarf2out.c: ...from here.
10082         * tree.h: Declare it.
10083         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
10084         * final.c (final_start_function): Do call remove_unnecessary_notes
10085         when scheduling.
10086
10087 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
10088
10089         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
10090
10091         * cpplib.h (_dollar_ok): New macro.
10092         (is_idchar, is_idstart): Use it.
10093         (IStable): Rename to _cpp_IStable.  Declare it const if
10094         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
10095         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
10096         is_space): Update for renamed IStable.
10097
10098         * cppinit.c: Delete all references to FAKE_CONST and CAT
10099         macros. Define init_IStable as empty macro if gcc >=2.7 or
10100         C99. Change TABLE() to ISTABLE and hardcode name of table.
10101         (cpp_start_read): Don't change the IStable based on
10102         dollars_in_ident.
10103
10104         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
10105         changed.  Handle '$' for char1 correctly.
10106         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
10107
10108         * cppexp.c (tokentab2): Make const.
10109         (cpp_lex): Make toktab const.
10110         * cppinit.c (include_defaults_array): Make const.
10111         (initialize_standard_includes): Make default_include const.
10112
10113 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
10114
10115         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
10116         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
10117         (gen_decl_die): Likewise.
10118         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
10119         (output_decl): Likewise.
10120
10121         * varasm.c (make_function_rtl): If we change the name used in the
10122         rtl, update DECL_ASSEMBLER_NAME accordingly.
10123         (make_decl_rtl): Likewise.
10124
10125         * toplev.c (rest_of_compilation): Tweak formatting.
10126
10127         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
10128         remove_unnecessary_notes.
10129         (debug_ignore_block): New fn.
10130         * toplev.h: Declare it.
10131         * emit-rtl.c (remove_unncessary_notes): Call it.
10132         * dwarf2out.c (dwarf2out_ignore_block): New fn.
10133         * dwarf2out.h: Declare it.
10134         * final.c (final_start_function): Don't call remove_unnecessary_notes
10135         if we did insn scheduling.
10136
10137 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
10138
10139         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
10140         * cpplib.h: Delete SET_CPP_PEDANTIC.
10141
10142 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10143
10144         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
10145         result is a RECORD_TYPE.
10146
10147 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
10148
10149         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
10150
10151 2000-03-03  Richard Henderson  <rth@cygnus.com>
10152
10153         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
10154         addition over compliments over shifts.
10155
10156 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10157
10158         * reload1.c (reload_combine_note_use): Handle return register USEs.
10159         REG case: Handle multi-hard-register hard regs.
10160
10161 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10162
10163         * md.texi: Document use of '*' in insn pattern name.
10164
10165 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
10166
10167         * calls.c (special_function_p): operator new may not be malloc-like.
10168
10169         * gcse.c (dump_hash_table): Really fix error in last change.
10170
10171 2000-03-02  Denis Chertykov  <denisc@overta.ru>
10172
10173         * avr.c (print_operand): Use print_operand_address instead of
10174         output_addr_const.
10175         * avr/libgcc.S: Cleanup code.
10176
10177 2000-03-02  Richard Henderson  <rth@cygnus.com>
10178
10179         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
10180
10181 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
10182
10183         * tree.h (TYPE_ALIGN_UNIT): New macro.
10184
10185 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
10186
10187         * i386.c: (constant_call_address_operand): Reject CONST_INT.
10188
10189 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
10190
10191         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
10192         for the buffer.
10193         (SET_CPP_PEDANTIC): New macro.
10194         * cpplib.c (do_include): Don't bother checking system_header_p.
10195         (do_warning, do_ident, do_assert, do_unassert): Likewise.
10196         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
10197
10198         * function.h (struct expr_status): Add x_arg_space_so_far.
10199         (arg_space_so_far): New macro.
10200         * expr.c (init_expr): Initialize it.
10201         * calls.c (emit_call_1): Reset it.
10202         (compute_argument_block_size, expand_call): Use it.
10203         (expand_call, store_one_arg): Increment it.
10204
10205 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10206
10207         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
10208         a UNION_TYPE.
10209
10210 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
10211
10212         * cppfiles.c (cpp_read_file): New function.
10213
10214         * cpphash.c (collect_expansion): Make sure to reset last_token
10215         to NORM when we hit a string.  Handle trailing whitespace
10216         properly when the expansion is empty.
10217         (create_definition): Disable line commands while parsing the
10218         directive line.
10219         (dump_definition): If pfile->lineno == 0, output a line
10220         command ahead of the dump, and add a trailing newline.
10221
10222         * cppinit.c (append_include_chain): Add fifth argument, which
10223         indicates whether or not system headers are C++ aware.
10224         (initialize_standard_includes): New function,
10225         broken out of read_and_prescan.  Pass 'cxx_aware' value from
10226         the include_defaults_array on to append_include_chain.
10227         (dump_special_to_buffer): Const-ify char array.
10228         (builtin_array): Don't dump __BASE_FILE__.
10229         (cpp_start_read): Use cpp_read_file.  Reorder code for
10230         clarity.  Don't output line commands here for -D/-A/-U
10231         switches.  Don't call deps_output for files included with
10232         -include or -imacros.
10233
10234         * cpplib.c (do_define): Don't pay any attention to the second
10235         argument.
10236         (cpp_expand_to_buffer): Disable line commands while scanning.
10237         (output_line_command): Work in the file buffer.
10238         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
10239         Fix formatting of comments.  Prototype cpp_read_file.
10240
10241 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10242
10243         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
10244         reference the language-equivalent of sizetype.
10245         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
10246         * fold-const.c (size_binop, size_diffop): Put back checks.
10247         * gcse.c (dump_hash_table): Fix minor error in last change.
10248         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
10249         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
10250         all sizetypes.
10251
10252 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
10253
10254         * calls.c (expand_call)  Do not attempt to combine stack adjustments
10255         with inhibit_defer_pop set.
10256
10257 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
10258
10259         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
10260         the DECL_SIZE for a FIELD_DECL.
10261
10262 2000-03-01  Bruce Korb  <bkorb@gnu.org>
10263
10264         * fixinc/inclhack.tpl: remove unused symlinks
10265         * fixinc/README: GCC Maintainer info
10266         * fixinc/inclhack.sh: regen
10267         * fixinc/fixincl.sh: regen
10268
10269 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
10270
10271         * cpphash.c (collect_expansion): Trim trailing white space
10272         from macro definitions, but don't go past the last insertion
10273         point.
10274
10275 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
10276
10277         * i386.md (mulqi3): New pattern.
10278
10279 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
10280
10281         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
10282         token types.
10283         (struct cpp_reader): Add parsing_if_directive and
10284         parsing_define_directive flags.
10285         (struct cpp_options): Remove output_conditionals flag.
10286         (check_macro_name): Delete prototype.
10287
10288         * cpphash.h (struct macrodef): Delete.
10289         (struct reflist): Separate from struct definition.
10290         (struct definition): Remove unused fields.  Add column number.
10291         (create_definition): Returns a DEFINITION *.  Takes a
10292         cpp_reader * and an int.
10293
10294         * cpphash.c (SKIP_WHITE_SPACE): Delete.
10295         (PEEKC): Copy defn from cpplib.c.
10296         (rest_extension, REST_EXTENSION_LENGTH): Delete.
10297         (struct arg): New.
10298         (struct arglist): Simplify.
10299         (collect_expansion): Rewrite.  Get tokens by calling
10300         cpp_get_token.  Add more error checking.
10301         (collect_formal_parameters): New function, broken out of
10302         create_definition and reworked to use get_directive_token.
10303         (create_definition): All real work is now in collect_expansion
10304         and collect_formal_parameters.  do_define handles finding the
10305         macro name.  Return a DEFINITION, not a MACRODEF.
10306         (macroexpand): Replace bcopy with memcpy throughout.  Replace
10307         character-at-a-time copy loop with memcpy and pointer increments.
10308         (compare-defs): d1->argnames / d2->argnames might be null.
10309
10310         * cpplib.c (copy_rest_of_line): Delete function.
10311         (skip_rest_of_line): Do all the work ourselves.
10312         (skip_string): New function.
10313         (parse_string): Use skip_string.
10314         (get_macro_name): New function.
10315         (check_macro_name): Delete.
10316         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
10317         (cpp_skip_hspace): Use CPP_BUMP_LINE.
10318         (handle_directive): ICE if we're called on a macro buffer.
10319         (do_define): Determine macro name and type (funlike/objlike)
10320         here.  Expunge all uses of MACRODEF.
10321         (cpp_push_buffer): Set line_base to NULL.
10322         (do_undef, read_line_number): Don't worry about getting a POP token.
10323         (eval_if_expression): Set/reset parsing_if_directive around
10324         cpp_parse_expr. Don't clear only_seen_white.
10325         (skip_if_group): Remove output_conditionals logic.  Use
10326         skip_rest_of_line.
10327         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
10328         tokens under appropriate conditions.
10329         (cpp_unassert): Call do_unassert not do_assert.  Oops.
10330
10331         * cppexp.c (parse_defined): New function, break out of
10332         cpp_lex.
10333         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
10334         ourselves, with cpp_defined.
10335         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
10336
10337         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
10338         * gcc.dg/strpaste-2.c: New.
10339
10340 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
10341
10342         * fold-const.c (size_binop): Don't asert inputs are the same and
10343         have TYPE_IS_SIZETYPE set.
10344         (size_diffop): Likewise.
10345
10346 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
10347
10348         * dwarfout.c (output_block): Output abstract blocks even if they
10349         don't have TREE_ASM_WRITTEN set.
10350
10351         * calls.c (emit_library_call): Check for null REG.
10352
10353 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
10354
10355         * c-decl.c (current_function_decl): Move to toplev.c.
10356         (init_decl_processing): Don't add current_function_decl as a ggc
10357         root here.
10358         * dbxout.c (dbxout_symbol): Change return type to int.
10359         (dbxout_symbol_location, dbxout_syms): Likewise.
10360         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
10361         any locals. Use current_function_func_begin_label if set.
10362         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
10363         * dwarf2out.c (dwarf2out_begin_prologue): Set
10364         current_function_func_begin_label.
10365         * final.c (final_start_function): Reset it.
10366         * toplev.c (current_function_decl): Define it here.
10367         (current_function_func_begin_label): New variable.
10368         (main): Add both as ggc roots.
10369         * tree.h (current_function_func_begin_label): Declare.
10370
10371 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10372
10373         * gcse.c: Cleanups throughout: mostly white-space, but also
10374         some minor rearrangement of code.
10375
10376 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
10377
10378         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
10379         returns a PARALLEL.  Use emit_group_load and use_group_regs
10380         as needed.
10381         (emit_library_call_value): Similarly.
10382
10383         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
10384         * pa/quadlib.asm: Remove.
10385         * pa/quadlib.c: New file.
10386
10387         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
10388         * configure: Rebuilt.
10389
10390 2000-02-29  Philip Blundell  <pb@futuretv.com>
10391
10392         * config/arm/conix-elf.h: New file.
10393         * configure.in (arm*-*-conix*): New configuration.
10394         * configure: Regenerate.
10395
10396 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
10397
10398         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
10399         don't have TREE_ASM_WRITTEN set.
10400
10401 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10402
10403         * Eliminate DECL_FIELD_SIZE.
10404         * builtins.c (built_in_class_names, built_in_names): New variables.
10405         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
10406         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
10407         DECL_SIZE, not DECL_FIELD_SIZE.
10408         * print-tree.c (print_node): Remove code that prints extra blank
10409         lines in some cases.
10410         Properly handle inline and builtin function cases.
10411         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
10412         * tree.h (built_in_class_named, built_in_names): New declarations.
10413         (union tree_decl): Rename internal unions to u1 and u2 and change
10414         some of their components.
10415         Add new field built_in_class.
10416         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
10417         Reflect above changes.
10418         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
10419         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
10420         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
10421         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
10422
10423 2000-02-28  Dmitri Makarov  <dim@windriver.com>
10424
10425         * extend.texi: Document ARM's support for long/short calls.
10426
10427         * invoke.texi: Document ARM's -mlong-calls command line switch.
10428
10429         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
10430         (arm_encode_call_attribute): Add prototype.
10431         (arm_set_default_type_attribute): Add prototype.
10432         (arm_strip_name_encoding): Add prototype.
10433
10434         * config/arm/arm.c (arm_init_cumulative_args): replace
10435         initialisation og 'long_calls' field with initialisation of
10436         'call_cookie' field.
10437         (enum arm_pragma_enum): New enum.
10438         (arm_pragma_long_calls): New static variable.
10439         (arm_process_pragma): Also process "#pragma long_calls_off".
10440         (arm_valid_type_attribute_p): Accept short_call attribute.
10441         (arm_comp_type_attributes): Check long/short call attributes.
10442         (arm_encode_call_attribute):  New function:  Encode long_call
10443         or short_call attribute in function name.
10444         (arm_set_default_type_attributes): New function: Assign
10445         default attributes to newly defined type.
10446         (current_file_function_operand): New function: Return true if
10447         the symbol is a function which has already been compiled.
10448         (arm_is_longcall_p): New function: Return true if the
10449         indicated function should be called via a long call.
10450         (arm_get_strip_length): New function.  Returns number of
10451         prefix characters to be stripped from a function's name.
10452         (arm_strip_name_encoding): New function.  Strip prefix characters
10453         from a function's name.
10454
10455         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
10456         with 'call_cookie'.
10457         (SHORT_CALL_FAG_CHAR): Define.
10458         (LONG_CALL_FAG_CHAR): Define.
10459         (ENCODED_SHORT_CALL_ATTR_P): Define.
10460         (ENCODED_LONG_CALL_ATTR_P): Define.
10461         (ARM_NAME_ENCODING_LENGTHS): Define.
10462         (STRIP_NAME_ENCODING): Define.
10463         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
10464         (ARM_ENCODE_CALL_TYPE): Define.
10465         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
10466         (ARM_DECLARE_FUNCTION_SIZE): Define.
10467         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
10468
10469         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
10470         if a long call is needed.
10471         (call_value): Ditto.
10472         (call_symbol): Ditto.
10473
10474         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
10475         ARM_DECLARE_FUNCTION_SIZE.
10476
10477         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
10478         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
10479         (ARM_STRIP_NAME_ENCODING): Undefine.
10480         (STRIP_NAME_ENCODING): Undefine.
10481         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
10482         (ASM_DECLARE_FUNCTION_NAME): Ditto.
10483         (ASM_OUTPUT_COMMON): Ditto.
10484         (ASM_DECLARE_OBJECT_NAME): Ditto.
10485
10486         * config/arm/pe.c (arm_dllexport_name_p): Check for
10487         ARM_PE_FLAG_CHAR.
10488         (arm_dllimport_name_p): Ditto.
10489         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
10490         (arm_mark_dllimport): Ditto.
10491
10492 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10493
10494         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
10495
10496 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
10497
10498         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
10499
10500 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
10501
10502         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
10503         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
10504         NO_BUILTIN_WCHAR_TYPE is not defined.
10505         (CPP_WCHAR_TYPE): Delete.
10506         * cccp.c (main): Don't change wchar_type if cplusplus.
10507         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
10508
10509 2000-02-28  Nick Clifton  <nickc@cygnus.com>
10510
10511         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
10512
10513 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
10514
10515         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
10516         (ASM_WEAKEN_LABEL): Define.
10517
10518 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
10519
10520         * expr.c (store_constructor): Do not emit USE.
10521         * rtl.h (stupid_life_analysis): Remove.
10522
10523 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10524
10525         * function.c (number_blocks): Reset next_block_index based on
10526         what debugging format is used, not what is defined.
10527
10528         * lcm.c: Minor reformatting throughout.
10529         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
10530
10531         * toplev.c (rest_of_compilation): Account for time in
10532         optimize_mode_switching.
10533
10534         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
10535         if only marking labels.
10536
10537 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
10538
10539         * calls.c (expand_call): Attempt to combine stack adjustments with
10540         pending stack adjustments.
10541
10542 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10543
10544         * loop.c (reg_in_basic_block_p): Don't abort when falling through
10545         to the end of the function.
10546
10547 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
10548
10549         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
10550         blocks.
10551         * final.c (next_block_index): Remove.
10552         (max_block_depth): Likewise.
10553         (pending_blocks): Likewise.
10554         (init_final): Don't initialize them.
10555         (final_start_function): Don't set next_block_index.  Set up
10556         BLOCK_NUMBER.
10557         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
10558         * function.h (number_blocks): New function.
10559         * function.c (get_block_vector): New function.
10560         (identify_blocks): Use it.
10561         (reorder_blocks): Set NOTE_BLOCK.
10562         (number_blocks): New function.
10563         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
10564         * tree.h (BLOCK_NUMBER): New macro.
10565         (tree_block): Add block_num field.
10566         * dbxout.c (next_block_number): Remove.
10567         (dbxout_init): Don't set it.
10568         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
10569         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
10570         block numbers.
10571         * toplev.c (rest_of_compilation): Always call
10572         find_loop_tree_blocks.  Fix indentation.
10573         * dwarf2out.c (next_block_number): Remove.
10574         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10575         to determine block numbers.
10576         (gen_inlined_subroutine_die): Likewise.
10577         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
10578         (decls_for_scope): Don't increment next_block_number.
10579         * dwarfout.c (next_block_number): Remove.
10580         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10581         to determine block numbers.
10582         (output_inlined_subroutine_die): Likewise.
10583         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
10584         (output_decls_for_scope): Don't increment next_block_number.
10585         * sdbout.c (next_block_number): Remove.
10586         (sdbout_block): Use BLOCK_NUMBER.
10587         (sdbout_begin_block): Simplify.
10588         * xcoffout.c (next_block_number): Remove.
10589         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
10590         (xcoffout_begin_block): Don't set next_block_number.
10591         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
10592         next_block_number.
10593
10594 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10595
10596         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
10597         (expand_builtin_strcpy): Pass correct type to size_binop.
10598         (expand_builtin_strcmp): Likewise.
10599         Clean up conditional structure.
10600         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
10601         (complete_array_type): Don't use size_binop for MAXINDEX.
10602         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
10603         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
10604         (c_alignof): Use size_one_node.
10605         (build_unary_op): Pass arg of proper type to size_binop.
10606         (really_start_incremental_init, push_init_level): Use sizetype for
10607         constructor{,_bit,_unfilled}_index.
10608         (pop_init_label, output_init_element): Likewise.
10609         (output_pending_init_elements, process_init_element): Likewise.
10610         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
10611         * expr.c (store_expr): Use size_int.
10612         (store_constructor): Use proper types for size_binop args.
10613         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
10614         (expand_expr_unaligned): Likewise.
10615         (string_contant): Return object of sizetype.
10616         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
10617         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
10618         (ARGS_SIZE_TREE): Pass proper types to size_binop.
10619         * fold-const.c (int_const_binop): Refine when size_int is called.
10620         (fold_convert): Likewise.
10621         (size_int_wide): Rework to take KIND as arg, only take low order
10622         bits, handle new sizetype_tab datatype, and chain entries in
10623         size_table.
10624         (size_int_type_wide): New function.
10625         (size_binop): Validate types of arguments.
10626         (ssize_binop): Deleted.
10627         (size_diffop): New function.
10628         (extract_muldiv): Only fold division into multiplication for sizetypes.
10629         * function.c (assign_parms): Use size_diffop and make sure
10630         VAR field is of ssizetype; also pass proper type to size_binop.
10631         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
10632         (round_down): Deleted from here.
10633         * store-layout.c (sizetype_tab): Now an array.
10634         (sizetype_set, early_root_list): New variables.
10635         (variable_size): Use size_one_node.
10636         (round_up): Pass proper type to size_binop.
10637         (round_down): Moved to here and corrected as above.
10638         (layout_record): Pass proper arg types to size_binop.
10639         (layout_type): Likewise.
10640         If sizetype_set is zero, record the type just laid out.
10641         (make_unsigned_type): Don't call set_sizetype;
10642         (make_signed_type): Likewise; also, call fixup_signed_type.
10643         (initialize_sizetypes): New function.
10644         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
10645         set name of bitsizetype to "bit_size_type".
10646         Fix up type of sizes of all types made before call.
10647         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
10648         * tree.c (fix_sizetype): Deleted.
10649         (build_common_tree_nodes): Call initialize_sizetypes.
10650         (build_common_tree_nodes_2): Don't call fix_sizetype.
10651         * tree.h (TYPE_IS_SIZETYPE): New macro.
10652         (initialize_sizetype): New declaration.
10653         (enum size_type_kind): New type.
10654         (struct sizetype_tab): Deleted.
10655         (sizetype_tab): Now array; adjust sizetype macros.
10656         (size_diffop, size_int_type_wide): New functions.
10657         (size_int_wide): Change number of args and type; access macros changed.
10658         (ssize_int, sbitsize_int): New macros.
10659         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
10660         (ROUND_TYPE_SIZE_UNIT): New macro.
10661
10662 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
10663
10664         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
10665
10666 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10667
10668         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
10669         Mark as possibly unused.
10670
10671         * cse.c (cse_insn): Delete dead code involving tablejump.
10672         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
10673
10674         * Makefile.in (libcpp.a): Start by deleting it.
10675
10676 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10677
10678         * cpplib.h (enum file_change_code): Added rename_file.
10679         * cpplib.c (do_line): If a filename is given, set file_change to
10680         rename_file.
10681         (output_line_command): If file_change is rename_file, always
10682         output a # directive with the file name.
10683
10684         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
10685
10686 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
10687
10688         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
10689         when copying a PARM_DECL or RESULT_DECL.
10690
10691 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10692
10693         * fix-header.c (recognized_function): Also fix prototypes for
10694         functions taking "void".
10695
10696 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10697
10698         * reload1.c (do_output_reload): Check reg_reloaded_valid before
10699         looking at reg_reloaded_contents.
10700
10701 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
10702
10703         * Makefile.in (STMP_FIXINC): New toggle.
10704         (LIBGCC2_DEPS): Delete all references.
10705         (stmp-headers): Delete target.  All references either deleted
10706         or changed to stmp-int-headers.
10707         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
10708         (LIBCPP_OBJS): Take out cppalloc.o.
10709         (cppalloc.o): Delete target.
10710         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
10711         (gen-protos, fix-header): Link with libiberty.a.
10712         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
10713         to empty.
10714
10715         * configure.in: Remove refs to strerror.
10716         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
10717         * system.h: Take out strerror stanza.
10718
10719         * cpperror.c (my_strerror): Delete function.
10720         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
10721         * cppmain.c (main): Call xmalloc_set_program_name first thing.
10722         * cppalloc.c: Delete file.
10723         * gen-protos.c: Don't provide xrealloc.
10724
10725         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
10726         xstrerror throughout.
10727
10728 2000-02-26  Bruce Korb  <bkorb@gnu.org>
10729
10730         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
10731         match for DOS headers, too.
10732         * fixinc/inclhack.sh,fixincl.x: Regenerate.
10733
10734 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10735
10736         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
10737         is right for most ELF targets.
10738         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
10739         Let the default file use %U properly.
10740         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
10741         default.
10742
10743         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
10744         numbers.
10745
10746 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10747
10748         * toplev.c (documented_lang_options): Correct spelling error.
10749         (decode_d_option, decode_f_option, main): Likewise.
10750
10751         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
10752
10753         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
10754         to tell assembler it is permitted to expand large constants.
10755
10756 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
10757
10758         * protoize.c: (AUX_INFO_SUFFIX): New macro.
10759         (aux_info_suffix): Use.
10760         (SAVE_SUFFIX): New macro.
10761         (save_suffix): Use.
10762         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
10763         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
10764         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
10765
10766         * invoke.texi (Running Protoize): Update documentation.
10767
10768 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
10769
10770         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
10771
10772 2000-02-25  John Wehle  (john@feith.com)
10773
10774         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
10775
10776 2000-02-25  Anthony Green  <green@cygnus.com>
10777
10778         * toplev.c (rest_of_compilation): Rebuild jump labels if
10779         combine_instructions has created a new direct jump.
10780         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
10781         when appropriate.
10782         (combine_instructions): Call try_combine with new argument.
10783         Return non-null value when new direct jump instruction is created.
10784         * rtl.h: combine_instructions returns an int.
10785
10786 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
10787
10788         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
10789         jump when changing a computed jump into a jump to a known
10790         target.
10791
10792 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
10793
10794         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
10795         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
10796
10797         * i386.md (define_expand "clrstrsi"): Fix typo.
10798
10799 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
10800
10801         * rtl.texi: Fix typo.
10802
10803 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10804
10805         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
10806         UNITS_PER_WORD.  Change caller initial_elimination_offset.
10807         (rounded_frame_size): Take into account that argument pushed has
10808         changed.  Fix TARGET_ALIGN_DOUBLE problem.
10809
10810 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
10811
10812         * haifa-sched.c (schedule_block): Explain the real reason
10813         we delete REG_SAVE_NOTEs on the first insn of a block.
10814         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
10815
10816 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
10817
10818         * input.h (push_srcloc): New function.
10819         (pop_srcloc): Likewise.
10820         * toplev.c (push_srcloc): Define it.
10821         (pop_srcloc): Likewise.
10822
10823 2000-02-24  Richard Henderson  <rth@cygnus.com>
10824
10825         * flow.c (life_analysis): When collecting reg info, clear
10826         regs_ever_live.
10827
10828 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10829
10830         Fix bug exposed by reload.c no longer rounding the frame
10831         size to BIGGEST_ALIGNMENT:
10832         * sh.c (rounded_frame_size): New function.
10833         (sh_expand_prologue, sh_expand_epilogue): Use it.
10834         (initial_elimination_offset): Likewise.
10835
10836 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10837
10838         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
10839         * sh-protos.h (sh_need_epilogue): Declare.
10840         * sh.c (sh_need_epilogue_known): New static variable.
10841         (sh_need_epilogue): New function.
10842         (function_epilogue): Clear need_epilogue_known.
10843         * sh.md (return): Split into expander / insn pattern.
10844         Make the expander conditional on ! sh_need_epilogue ().
10845
10846 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
10847
10848         * machmode.h (get_mode_alignment): Declare.
10849         (GET_MODE_ALIGNMENT): Call it.
10850         * stor-layout.c (get_mode_alignment): New function. Make
10851         sure alignment is always power of 2.
10852
10853 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10854
10855         * i386.h: Remove useless definition of "I386" and misleading
10856         comment above it.
10857
10858 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10859
10860         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
10861         under which TREE_PERMANENT will be set.
10862         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
10863         build1): Use TREE_SET_PERMANENT.
10864         * print-tree.c (print_node): Don't report value of
10865         TREE_PERMANENT if ggc_p is true.
10866
10867         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
10868         decide whether to give a type a new alias set.
10869         * objc/objc-act.c (build_objc_string_object): Never copy the string.
10870         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
10871         of value of 'obstack'.
10872
10873
10874 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10875
10876         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
10877
10878 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10879
10880         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
10881         * cpplib.c (cpp_get_token): Produce them.
10882         * cppexp.c (cpp_lex): Handle them.
10883
10884 2000-02-23  Nick Clifton  <nickc@cygnus.com>
10885
10886         * config/arm/arm.c (arm_comp_type_attributes): Simply and
10887         comment tests on type attributes.
10888
10889 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10890
10891         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
10892         conform to documentation.
10893         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
10894         to check for special cases.
10895         * sh-protos.h (sh_loop_align): Declare.
10896         * sh.c (sh_loop_align): Define.
10897
10898 2000-02-22  Andrew Haley  <aph@cygnus.com>
10899
10900         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
10901         (SIZE_TYPE): Is 32 bits when using -mgp32.
10902         (PTRDIFF_TYPE): Ditto.
10903
10904 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10905
10906         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
10907
10908 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10909
10910         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
10911         BIGGEST_FIELD_ALIGNMENT a constant.
10912
10913 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
10914
10915         * dwarf2out.c (output_line_info): Put the marker for the end of
10916         the line number info at the actual end.
10917         (gen_struct_or_union_type_die): Use decl_function_context
10918         to check for local classes.
10919         * dwarfout.c (output_type): Likewise.
10920
10921 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
10922
10923         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
10924         for arguments with a mode, but no type.
10925         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
10926         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
10927         * pa/long_double.h: New file.
10928         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
10929         both have 128bit wide long doubles.
10930         * configure: Rebuilt.
10931
10932 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10933
10934         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
10935
10936         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
10937         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
10938         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
10939
10940         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
10941
10942         * integrate.c (compare_blocks, find_block): Likewise.
10943
10944         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
10945
10946         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
10947
10948         * stmt.c (stmt_status, set_file_and_line_for_stmt,
10949         expand_asm_operands): Likewise.
10950
10951 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
10952
10953         * predict.c (estimate_probability): Added the pointer heuristic to
10954         the collection of static branch predictors.
10955
10956 2000-02-21  Catherine Moore  <clm@cygnus.com>
10957
10958         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
10959         * invoke.texi (-mfix7000): Document.
10960
10961 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
10962
10963         * diagnostic.c (init_output_buffer): Make it possible to output at
10964         least 32 characters if we're given a too long prefix.
10965
10966 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
10967
10968         * varasm.c (initializer_constant_valid_p): Call
10969         lang_expand_constant to simplify the constant.
10970
10971 2000-02-20  Bruce Korb  <bkorb@gnu.org>
10972
10973         * fixinc/inclhack.def(stdio_va_list):
10974         typedef needs to be disabled.
10975         * fixinc/inclhack.sh: regen
10976         * fixinc/fixincl.x: regen
10977
10978 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
10979
10980         * print-rtl.c (print_rtx): Don't print addresses when
10981         flag_dump_unnumbered.
10982
10983 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10984
10985         * sparc.c (sparc_output_scratch_registers): Mark parameter with
10986         ATTRIBUTE_UNUSED.
10987         (sparc_va_arg, sparc_flat_output_function_prologue,
10988         sparc_flat_output_function_epilogue): Cast value to unsigned in
10989         comparison.
10990         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
10991
10992         * sparc.md: Add default case in switch.
10993
10994 2000-02-19  Richard Henderson  <rth@cygnus.com>
10995
10996         * c-typeck.c (add_pending_init): Don't abort for multiple
10997         fields at the same offset.
10998         (pending_init_member): Test the correct member.
10999
11000 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11001
11002         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
11003         instead of SImode.
11004         (start_catch_handler) : Same.
11005
11006 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
11007
11008         * Makefile.in: Have flow.o depend on $(EXPR_H)
11009
11010 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11011
11012         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
11013         * c-decl.c (duplicate_decls, finish_enum): Likewise.
11014         (finish_decl): Remove -Wlarger-than code from here.
11015         * flags.h (id_clash_len): Now int.
11016         (larger_than_size): Now HOST_WIDE_INT.
11017         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
11018         Clean up checking to see if in table.
11019         (make_bit_field_ref): Remove extra parm to bitsize_int.
11020         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
11021         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
11022         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
11023         and for computing size of decl.
11024         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
11025         Move -Wlarger-than code to here.
11026         (layout_record): Remove extra arg to bitsize_int.
11027         Set TYPE_BINFO_SIZE_UNIT.
11028         (layout_union): Remove extra arg to bitsize_int.
11029         Use proper type for size of QUAL_UNION.
11030         (layout_type): Remove extra arg to bitsize_int.
11031         * toplev.c (id_clash_len): Now int.
11032         (larger_than_size): Now HOST_WIDE_INT.
11033         (decode_W_option): Clean up id-clash and larger-than- cases.
11034         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
11035         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
11036         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
11037         (struct tree_decl): New field size_unit.
11038         (size_int_wide): No HIGH operand; NUMBER is now signed.
11039         (size_int_2): Deleted.
11040         (size_int, bitsize_int): Don't use it and rework args.
11041         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
11042
11043 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
11044
11045         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
11046
11047 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11048
11049         * invoke.texi (Warning Options): Add an explanation of why
11050         you might want the -Wfloat-equal flag.
11051
11052 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11053
11054         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
11055         * cppinit.c (new_pending_define): Add cast to avoid warning.
11056         * expmed.c (extract_bit_field): Likewise.
11057         * flow.c (enum reorder_skip_type): New type.
11058         (skip_insns_between_blcok): New it.
11059         Rework to avoid warning about possibly undefined variable.
11060         * function.c (assign_parms): Make thisparm_boundary unsigned.
11061         * genrecog.c (write_switch): Cast XWINT result to int.
11062         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
11063         * mips-tfile.c (init_file): Make two versions of FDR intializer:
11064         one for MIPS and one for Alpha.
11065         (get_tag, copy_object): Add casts to avoid warnings.
11066         * optabs.c (init_one_libfunc): Cast NAME to (char *).
11067         * reload.c (find_reloads): Make TYPE enum reload_type.
11068         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
11069         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
11070         * varasm.c (compare_constant_1): Add cast to avoid warning.
11071         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
11072         to (char *).
11073         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
11074         Cast switch operand of size to int.
11075         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
11076         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
11077         in unhandled case.
11078
11079 2000-02-18  Nick Clifton  <nickc@cygnus.com>
11080
11081         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
11082         anything for an alignment of zero.
11083
11084         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
11085         anything for an alignment of zero.
11086
11087 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
11088
11089         * gcc.texi (Bug Reporting): Refer to bugs.html.
11090         (Bug Lists): Likewise.
11091         * system.h (GCCBUGURL): New preprocessor define.
11092         * rtl.c (fancy_abort): Use it.
11093         * gcc.c (main): Likewise.
11094
11095 2000-02-18  Richard Henderson  <rth@cygnus.com>
11096
11097         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
11098         (life_analysis_1): Subsume into ...
11099         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
11100         Use update_life_info for the relaxation.
11101         (update_life_info): Update REG_BASIC_BLOCK for registers live on
11102         entry and regs_live_at_setjmp.
11103         (set_noop_p): Simplify.
11104         (notice_stack_pointer_modification_1): Renamed from s/_1//.
11105         (record_volatile_insns): Split into ...
11106         (delete_noop_moves): ... here,
11107         (notice_stack_pointer_modification): ... here,
11108         (insn_dead_p): ... and here.
11109         (propagate_block): Don't query INSN_VOLATILE.
11110         (mark_used_regs): Mind !PROP_REG_INFO.
11111         * toplev.c (rest_of_compilation): Call mark_constant_function here,
11112         not in life_analysis.
11113
11114 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
11115
11116         * loop.c (canonicalize_condition): New function,
11117         broken out of get_condition.
11118         (get_condition): Use it.
11119         * expr.h (canonicalize_condition): Prototype it.
11120
11121         * tree.h (tree_int_cst_msb): Declare.
11122         * tree.c (tree_int_cst_msb): New function.
11123
11124 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
11125
11126         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
11127         isn't set.
11128
11129         * invoke.texi (-fmessage-length=n): Document.
11130
11131 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
11132
11133         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
11134
11135 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
11136
11137         * function.c (thread_prologue_and_epilogue_insns): Put a line note
11138         after the prologue.
11139
11140 2000-02-17  Nick Clifton  <nickc@cygnus.com>
11141
11142         * config/arm/thumb.c: Replace includes of system headers with
11143         #include "system.h".
11144
11145 2000-02-16  Richard Henderson  <rth@cygnus.com>
11146
11147         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
11148         Add crtbeginS.o and crtendS.o.
11149         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
11150         (ENDFILE_SPEC): Use crtendS.o.
11151         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
11152
11153         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
11154         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
11155         shared and present.
11156         (__dso_handle): New variable.
11157         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
11158         bias to __CTOR_END__.
11159
11160 2000-02-16  Richard Henderson  <rth@cygnus.com>
11161
11162         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
11163
11164 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11165
11166         * longlong.h (__clz_tab): Declare as static to match definition.
11167
11168 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
11169
11170         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
11171         (XREF_FILE_NAME): Define.
11172
11173         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
11174         (EH_FRAME_SECTION_ASM_OP): Define.
11175         (IDENT_ASM_OP): Define.
11176         (TEXT_SECTION_ASM_OP): Define.
11177         (CPP_SPEC): Define.
11178         (CTORS_SECTION_ASM_OP): Define.
11179         (CTOR_SECTION_FUNCTION): Use it.
11180         (DTORS_SECTION_ASM_OP): Define.
11181         (DTOR_SECTION_FUNCTION): Use it.
11182
11183 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
11184
11185         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
11186         NOTE_BASIC_BLOCK.
11187
11188         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
11189         debug_bb_n): New functions.
11190         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
11191         * basic-block.h: Prototype new functions.
11192
11193 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
11194
11195         * configure.in: Add support for avr target.
11196         * configure: Rebuilt.
11197
11198         * invoke.texi: Add AVR invocation docs.
11199         * install.texi: Add information about AVR.
11200         * md.texi: Add AVR constraint letters description.
11201         * extend.texi: Add description for AVR specific attributes.
11202
11203 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
11204
11205         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
11206
11207 2000-02-16  Nick Clifton  <nickc@cygnus.com>
11208
11209         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
11210         (make_insn_raw): Move RTL check here.
11211
11212 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11213
11214         * version.c: Include gansidecl.h and version.h.
11215
11216         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
11217
11218         * configure.in (gcc_version): When setting, narrow search to
11219         lines containing `version_string'.
11220
11221         * Makefile.in (mainversion): Likewise.
11222         (GCC_H): New variable.
11223         (gcc.h): Delete target.
11224         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
11225         (version.o): Depend on version.h.
11226         (dbxout.o): Don't depend on gcc.h.
11227
11228 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11229                           Michael Meissner  <meissner@cygnus.com>
11230
11231         * md.texi (Simple Constraints): Add item about whitespace.
11232         * genoutput.c (strip_whitespace): New.
11233         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
11234         strip_whitespace for constraints.
11235         Test pointer using NULL, not 0.
11236
11237 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11238
11239         * cpplib.c (do_line): Pedwarn for #line > 32767.
11240
11241         * c-lex.c (readescape): Warn about '\x', but do not reject it.
11242
11243 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
11244
11245         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
11246         to default cpp spec.
11247         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
11248         * cpp.texi: Document __GNUC_PATCHLEVEL__.
11249         * cpp.1: Likewise.
11250
11251         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
11252         default spec.
11253
11254 2000-02-15  Denis Chertykov  <denisc@overta.ru>
11255
11256         * configure.in: Add support for avr target.
11257
11258 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11259
11260         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
11261         (sh_addr_diff_vec_mode): Don't declare.
11262         * sh.c (sh_addr_diff_vec_mode): Delete.
11263
11264 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11265
11266         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
11267
11268 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11269
11270         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
11271         (smulsi3_highpart_i): Name.
11272         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
11273         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
11274         (smulsi3_highpart, umulsi3_highpart): Likewise.
11275
11276         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
11277         correctly independent of endianness.
11278         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
11279         confuse the optimizers.
11280         (mulsidi3+1, umulsidi3+1): New define_split.
11281
11282 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
11283
11284         * config/sh/sh.md: Guard insn splits against illegal registers.
11285         * config/sh/sh.h: Correct comment about macros.
11286
11287 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11288                           Andrew MacLeod  <amacleod@cygnus.com>
11289
11290         * Makefile.in (lcm.o): Depend on insn-attr.h.
11291         * basic-block.h (optimize_mode_switching): Declare.
11292         * lcm.c (tm_p.h, insn-attr.h): #include.
11293         (seginfo, bb_info): New structs.
11294         (antic, transp, comp, delete, insert) : New file-scope static variables.
11295         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
11296         (reg_becomes_live, optimize_mode_switching): Likewise.
11297         * tm.texi: Add description of mode switching macros.
11298         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
11299
11300         * sh-protos.h (remove_dead_before_cse): Remove prototype.
11301         (fldi_ok, fpscr_set_from_mem): New prototypes.
11302         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
11303         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
11304         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
11305         (sh_flag_remove_dead_before_cse): Remove declaration.
11306         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
11307         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
11308         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
11309         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
11310         (barrier_align): Allow for JUMP_INSNS containing a parallel.
11311         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
11312         (fldi_ok): New function.
11313         (get_fpscr_rtx): Add fpscr_rtx as GC root.
11314         (emit_sf_insn): Only generate fpu switches when optimize < 1.
11315         (emit_df_insn): Likewise.
11316         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
11317         (sh_flag_remove_dead_before_cse): Delete.
11318         (get_free_reg, fpscr_set_from_mem): New functions.
11319         * sh.md (movdf, movsf): Remove no_new_pseudos code.
11320         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
11321
11322 2000-02-15  Loren Rittle  <ljrittle@acm.org>
11323
11324         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
11325
11326 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11327
11328         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
11329         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
11330
11331         * cccp.c: Include version.h and/or don't declare `version_string'.
11332         * collect2.c: Likewise.
11333         * alpha.c: Likewise.
11334         * arm/aof.h: Likewise.
11335         * arm/coff.h: Likewise.
11336         * arm/elf.h: Likewise.
11337         * arm/pe.h: Likewise.
11338         * arm/tcoff.h: Likewise.
11339         * arm/telf.h: Likewise.
11340         * arm/tpe.h: Likewise.
11341         * arm/vxarm.h: Likewise.
11342         * convex/convex.c: Likewise.
11343         * i386/dgux.c: Likewise.
11344         * i386/sun386.h: Likewise.
11345         * m88k/m88k.c: Likewise.
11346         * mcore/mcore-pe.h: Likewise.
11347         * mips/mips.h: Likewise.
11348         * romp/romp.h: Likewise.
11349         * sh/sh.c: Likewise.
11350         * cpphash.c: Likewise.
11351         * cppinit.c: Likewise.
11352         * dwarf2out.c: Likewise.
11353         * dwarfout.c: Likewise.
11354         * gcc.c: Likewise.
11355         * gcc.h: Likewise.
11356         * mips-tfile.c: Likewise.
11357         * protoize.c: Likewise.
11358         * toplev.c: Likewise.
11359         * tree.h: Likewise.
11360
11361         * version.c (version_string): Constify a char*.
11362
11363         * version.h: New file.
11364
11365 2000-02-14  Nick Clifton  <nickc@cygnus.com>
11366
11367         * configure.in: Add mcore-elf and mcore-pe targets.
11368         * configure: Regenerate.
11369
11370         * NEWS: Add note that MCore port has been contributed.
11371
11372         * invoke.texi: Document command line switches for MCore port.
11373         * install.texi: Add MCore to list of supported targets.
11374
11375 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
11376
11377         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
11378         then we will need to import the frame handling functions.
11379         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
11380         to import the frames themselves.
11381
11382 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
11383                           Jason Eckhardt  <jle@cygnus.com>
11384
11385         * basic_block.h: Added prototype for reorder_basic_blocks.
11386         * toplev.c: Changes to add -freorder-blocks and graph dump after
11387         block reordering is done.
11388         * flow.c (reorder_block_def): New structure for use during block
11389         reordering.
11390         (REORDER_BLOCK_*): New macros to access members of above structure.
11391         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
11392         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
11393         functions for block reordering.
11394
11395 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11396
11397         * gcc.texi (Passes): Fix typo.
11398         * md.texi (Standard Names): Ditto.
11399         * tm.texi (Storage Layout): Ditto.
11400
11401 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
11402
11403         * cpplib.c (do_define): Only free the old definition if it
11404         actually had one.
11405
11406 2000-02-13   Neil Booth  <NeilB@earthling.net>
11407
11408         * cppfiles.c (read_and_prescan): When emitting deferred
11409         newlines, test speccase[] again instead of checking each
11410         possible whitespace character in turn.  When we encounter \r,
11411         look behind for \n first, then ahead.
11412
11413 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
11414
11415         * cse.c (cse_altered): New internal flag.
11416         (cse_insn): Set it if we changed an insn.
11417         (cse_main): Clear cse_altered before each basic block.
11418         Only garbage collect if cse_altered is true afterward.
11419
11420 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11421
11422         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
11423
11424 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
11425
11426         * combine.c (simplify_comparison): Fix typo.
11427
11428 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
11429
11430         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
11431         consistently.
11432
11433 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11434
11435         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
11436         previously inserted node instead of root node.  Caller changed.
11437
11438 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11439
11440         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
11441
11442 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11443
11444         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
11445         __dereg_frame_dtor): Add prototype argument.
11446
11447         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
11448
11449         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
11450
11451         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
11452
11453         * gthr-vxworks.h (__gthread_once): Likewise.
11454
11455         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
11456
11457 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
11458
11459         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
11460         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
11461         stack pointer in functions w/o saved registers, output LEAVE more often
11462         on TARGET_USE_LEAVE machines.
11463
11464 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
11465
11466         * config/arm/arm.c (arm_init_cumulative_args); New function:
11467         Initlaise the CUMULATIE_ARGS strcuture for a function
11468         defintion.
11469         (arm_function_arg): New function: Determine where to place a
11470         function's argument.  Also handles deciding the function's
11471         call cookie.
11472         (current_file_function_operand): New function: Return true if
11473         the symbol is a function which has already been compiled.
11474         (arm_is_long_call_p): New function: Return true if the
11475         indicated function should be called via a long call.
11476         (arm_valid_type_attribute_p): New function: Return true if the
11477         attribute is a valid, arm specific, attribute.
11478         (arm_comp_type_attribute): New function: Return true if the
11479         two types have compatable, arm specific, attributes.
11480
11481         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
11482         structure.
11483         (FUNCTION_ARG): Redefine to call arm_function_arg.
11484         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
11485         structure field.
11486         (INIT_CUMULATIVE_ARGS): Redefine to call
11487         arm_init_cumulative_args.
11488         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
11489         field.
11490         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
11491         field.
11492         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
11493         functions.
11494         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
11495         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
11496         (COMP_TYPE_ATTRIBUTES): Define.
11497
11498         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
11499         if a long call is needed.
11500         (call_value): Call arm_is_long_call_p to decide if a long call
11501         is needed.
11502         (call_symbol): Call arm_is_long_call_p to decide if a long call
11503         is needed.
11504
11505         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
11506
11507 2000-02-11  Denis Chertykov  <denisc@overta.ru>
11508
11509         * README.AVR: New file with information about the avr ports.
11510         * config/avr: New directory with avr port files.
11511
11512 2000-02-11  Andreas Jaeger  <aj@suse.de>
11513
11514         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
11515
11516 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
11517
11518         * cpphash.c: Fix formatting, update commentary.
11519         (dump_definition): Take three separate arguments instead of a
11520         MACRODEF structure argument.
11521         * cpphash.h: Update prototype of dump_definition.
11522         * cppinit.c (cpp_finish): Update call of dump_definition.
11523
11524         * cpplib.c (do_define): Always create new hash entry with
11525         T_MACRO type.  Remove redundant check for redefinition of
11526         poisoned identifier.  Update call of dump_definition.
11527         (do_undef): Don't call check_macro_name.  Rename sym_length to
11528         len.
11529         (do_error, do_warning): Don't use copy_rest_of_line or
11530         SKIP_WHITE_SPACE.
11531         (do_warning): Don't use pedwarn for the actual warning,
11532         only the notice about its not being in the standard.  (Fixes
11533         bug with #warning in system headers.)
11534         (do_ident): Stricter argument checking - accept only a single
11535         string after #ident.  Also, macro-expand the line.
11536         (do_xifdef): Use cpp_defined.  De-obfuscate.
11537
11538         (do_pragma): Split out specific pragma handling to separate
11539         functions.  Use get_directive_token.  Update commentary.  Do
11540         not pass on #pragma once or #pragma poison to the front end.
11541         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
11542         do_pragma_default): New.
11543
11544 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
11545
11546         * jump.c (jump_optimize_1): The first operand in a relational
11547         can be a CONST_INT.
11548         * optabs.c (emit_conditional_move): Handle relationals which
11549         have a known true/false result.
11550
11551 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11552
11553         * function.c (thread_prologue_and_epilogue_insns): Don't insert
11554         a RETURN insn into a block which already ends with a jump.
11555
11556 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11557
11558         * haifa-sched.c (BUF_LEN): Increase a lot.
11559
11560 2000-02-11  Nick Clifton  <nickc@cygnus.com>
11561
11562         * configure.in: Add tm_p_file specification for thumb targets.
11563         * configure: Regenerate.
11564
11565         * config/arm/thumb-protos.h: New file: Prototypes for exported
11566         functions defined in thumb.c.
11567
11568 2000-02-11  Robert Lipe  <robertl@sco.com>
11569
11570         * Makefile.in (bootstrap-lean): Remove additional files.
11571         (bootstrap2-lean): Likewise.
11572         (VOL_FILES): List of files for above.
11573
11574 2000-02-11  Nathan Sidwell  <nathan@acm.org>
11575
11576         * cpphash.c (special_symbol): Remove spurious argument to
11577         cpp_lookup.
11578
11579 2000-02-11  Joel Sherrill (joel@OARcorp.com>
11580
11581         * configure.in: (i*86-*-rtems*): Swapped elf and coff
11582         stanzas.
11583         * configure: Rebuilt.
11584
11585 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
11586
11587         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
11588
11589 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
11590
11591         * pa.c, pa.h: Remove trigraph sequences within comments.
11592
11593 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
11594
11595         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
11596
11597 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
11598
11599         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
11600
11601 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11602
11603         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
11604
11605 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11606
11607         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
11608         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
11609         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11610         (ASM_FILE_END): Use c4x_file_end.
11611         * config/c4x/c4x.c (c4x_global_label): New function.
11612         (c4x_external_ref, c4x_file_end): Likewise.
11613
11614         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
11615         (c4x_external_ref, c4x_end_file): Likewise.
11616
11617 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
11618
11619         * cppexp.c: Don't include cpphash.h.
11620         (parse_charconst, cpp_lex): Use cpp_defined.
11621         (cpp_lex): Use get_directive_token throughout.  Remove
11622         unnecessary cases from switch.  Move assertion-handling code
11623         down to OTHER case.
11624         (cpp_parse_expr): If we see '+' or '-', check the context to
11625         determine if they are unary or binary operators.  Streamline
11626         the jumps a bit.  Do not call skip_rest_of_line.
11627
11628         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
11629         static.  Export get_directive_token.  Update commentary.
11630         (cpp_defined): New function.
11631         (do_define): Remove reference to T_PCSTRING.  Call
11632         free_definition to release memory for old definition, when
11633         redefining a macro.
11634         (eval_if_expression): Set only_seen_white to 0 before calling
11635         cpp_parse_expr.  Call skip_rest_of_line after it returns.
11636         (cpp_read_check_assertion): Don't preserve a pointer into the
11637         token buffer across a call to cpp_get_token.
11638
11639         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
11640         * cppfiles.c (redundant_include_p): Use cpp_defined.
11641         * cpphash.c (free_definition): New function.
11642         (delete_macro): Use it.  Update commentary.
11643         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
11644         free_definition.
11645         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
11646         from enum node_type.  Prototype cpp_defined and get_directive_token.
11647         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
11648
11649         * fix-header.c (check_macro_names): Use cpp_defined.
11650         (read_scan_file): Set inhibit_warnings and inhibit_errors in
11651         the options structure.
11652
11653 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11654
11655         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
11656
11657 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
11658
11659         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
11660         rather than die->die_tag.
11661
11662 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11663
11664         * combine.c (make_extraction, force_to_mode): Avoid warning on
11665         mixed-signedness conditionals.
11666         (make_field_assignment, nonzero_bits): Likewise.
11667         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
11668         (store_split_bit_field, extract_split_bit_field): Likewise.
11669         (extract_fixed_bit_field, store_bit_field,
11670         * expr.c: Change alignment to be unsigned everywhere.
11671         (move_by_pieces, store_constructor_field, store_constructor):
11672         Alignment parm is unsigned.
11673         (emit_block_move, emit_group_load, emit_group_store): Likewise.
11674         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11675         (do_compare_rtx_and_jump): Likewise.
11676         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
11677         Compare align with GET_MODE_ALIGNMENT.
11678         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
11679         (get_inner_reference): Likewise.
11680         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
11681         (expand_assignment): Local vars for alignment now unsigned.
11682         (store_constructor, store_field, expand_expr, do_jump): Likewise.
11683         (do_compare_and_jump): Likewise.
11684         (store_field): Call new function expr_align.
11685         * expr.h (emit_block_move, emit_group_load, emit_group_store):
11686         Alignment arg now unsigned.
11687         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11688         (do_compare_rtx_and_jump, store_bit_field): Likewise.
11689         (extract_bit_field): Likewise.
11690         * fold-const.c (add_double): Add cast to eliminate signedness warning.
11691         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
11692         (get_best_mode): Alignment arg is unsigned.
11693         * rtl.h (move_by_pieces): Likewise.
11694         * store-layout.c (maximum_field_alignment, set_alignment):
11695         Now unsigned.
11696         (layout_decl): Alignment arg is now unsigned.
11697         Remove unneeded casts.
11698         (layout_record, layout_union, layout_type): Remove unneeded casts.
11699         Local alignment variables now unsigned.
11700         (get_best_mode): Alignment arg now unsigned.
11701         * tree.c (expr_align): New function.
11702         * tree.h (expr_align): Likewise.
11703         (maximum_field_alignment, set_alignment): Now unsigned.
11704         (get_inner_reference): Alignment argument is now pointer to unsigned.
11705         * varasm.c (assemble_variable): Add cast to eliminate warning.
11706
11707 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
11708
11709         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
11710         then store directly into op0.
11711
11712         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
11713         the CALL_INSN, and emit the note immediately after it.
11714
11715 2000-02-10  Nick Clifton  <nickc@cygnus.com>
11716
11717         * config/arm/thumb.md (epilogue): Include a (return) in the
11718         generated insn, and emit it using emit_jump_insn not
11719         emit_insn.
11720
11721 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
11722
11723         * function.c (assign_temp): Change zero-sized arrays to size 1.
11724         * integrate.c (expand_inline_function): Do not update
11725         stack_alignment_needed
11726         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
11727         add some sanity checking, remove optimization for function with
11728         zero frame size.
11729
11730 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11731
11732         * flow.c (mark_regs_live_at_end): Delete unused variables.
11733
11734         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
11735
11736         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
11737         in macro FRAME_GROWS_DOWNWARD.
11738
11739         * stmt.c (expand_end_bindings): Delete unused variable.
11740
11741         * unroll.c (iteration_info): Mark parameter `loop' with
11742         ATTRIBUTE_UNUSED.
11743
11744 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11745
11746         * fixinc/server.c (load_data): Return NULL if the marker line is
11747         not found.
11748         (run_shell): If load_data returns NULL, retry the command once, in
11749         a new shell.
11750
11751         * configure: Rebuilt.
11752
11753 2000-02-09  Bruce Korb  <bkorb@gnu.org>
11754
11755         * gcc/fixincludes:  ** DELETED **
11756         * gcc/fixcpp:  ** DELETED **
11757         * gcc/fixinc-nt.sed:  ** DELETED **
11758         * gcc/just-fixinc:  ** DELETED **
11759         * gcc/Makefile.in:  Removed out-dated commentary
11760         * gcc/configure.in: Removed fast-fixincludes disablement.
11761         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
11762
11763 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11764         * function.c (thread_prologue_and_epilogue_insns): Uncomment
11765         last change.
11766
11767 2000-02-09  Richard Henderson  <rth@cygnus.com>
11768
11769         * jump.c (delete_insn): Don't delete user labels at -O0.
11770
11771 2000-02-09  Robert Lipe  <robertl@sco.com>
11772
11773         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
11774         Don't link with HOST_LIBS.
11775
11776 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11777
11778         * configure.in: Correct --help text for --with-dwarf2.
11779         Put tm-dwarf2.h after other tm files, if it's requested.
11780         * configure: Regenerate.
11781         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
11782         defining it.
11783
11784 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11785
11786         * cpplib.h: Provide HASHNODE typedef and forward decl of
11787         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
11788         DEFINITION, struct hashnode, struct macrodef, struct
11789         definition, scan_decls prototype, default defn of
11790         INCLUDE_LEN_FUDGE moved elsewhere.
11791
11792         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
11793         definition, and struct hashnode moved here. Remove the unused
11794         'predefined' field from struct definition.  Replace the 'args'
11795         union with its sole member.  All users updated (cpphash.c).
11796         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
11797         multiple include guard.
11798
11799         * cpphash.c (hashf): Make static; use better algorithm; drop
11800         HASHSIZE parameter; return an unsigned int.
11801         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
11802         used. Calculate HASHSIZE modulus here.
11803         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
11804         here.
11805         (create_definition): Drop PREDEFINITION parameter.
11806         * cpplib.c (do_define): Don't calculate a hash value here.
11807         Don't pass (keyword == NULL) to create_definition.
11808
11809         * scan.h: Prototype scan_decls here.
11810         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
11811         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
11812         callers of cpp_lookup and cpp_install updated.
11813
11814         * cpphash.c (macarg): Hoist all the flag diddling out of the
11815         function...
11816         (macroexpand): ... and out of the loop that calls macarg.
11817         Skip over the initial paren before macro arguments with
11818         cpp_get_non_space_token; point may be some distance before
11819         that paren.  Abort if it's not there.
11820
11821         * cpplib.c (parse_clear_mark): Delete function.
11822         (parse_set_mark, parse_goto_mark): Make static.
11823         (ACTIVE_MARK_P): New macro.
11824         (skip_block_comment, skip_line_comment): Do not bump the line
11825         if ACTIVE_MARK_P is true.
11826         (cpp_pop_buffer): The buffer to be popped may not have an
11827         active mark.
11828         (cpp_get_token): When looking for the initial paren before
11829         macro arguments, only set a mark in a file buffer, Always
11830         return to that mark before proceeding to call macroexpand or
11831         return a NAME token.
11832
11833         * cpplib.h: Remove prototypes of parse_set_mark,
11834         parse_clear_mark, parse_goto_mark.
11835         (struct cpp_options): Rename 'put_out_comments' to
11836         'discard_comments' and invert its sense.
11837         * cppinit.c, cpphash.c, cpplib.c: All users of
11838         put_out_comments changed to use discard_comments, with
11839         opposite sense.
11840
11841 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11842
11843         * function.c (thread_prologue_and_epilogue_insns): Don't delete
11844         the edge from a block that both jumps and falls through to the
11845         fallthru block.
11846
11847 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
11848
11849         * config/arm/arm.md (movsi): In PIC mode, make sure that a
11850         constant source address is legitimate.
11851
11852 2000-02-09  Philip Blundell  <pb@futuretv.com>
11853
11854         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
11855         correctly.
11856
11857         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
11858         generating PIC.
11859         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
11860
11861 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11862
11863         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
11864         ends with a newline and a NUL.  Don't be so clever manipulating
11865         strings.
11866
11867 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
11868
11869         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
11870         not to BIGGEST_ALIGNMENT.
11871
11872 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
11873
11874         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
11875         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
11876         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
11877         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
11878         * frame.c (execute_cfa_insn): Handle
11879         DW_CFA_GNU_negative_offset_extended.
11880
11881 2000-02-08  Richard Henderson  <rth@cygnus.com>
11882
11883         * flow.c (tidy_fallthru_edges): Split out from ...
11884         (delete_unreachable_blocks): ... here.
11885         (find_basic_blocks): Use it.
11886
11887 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11888
11889         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
11890
11891 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
11892
11893         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
11894         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
11895         (fix-header.o): Don't depend on cpphash.h.
11896
11897         * scan.c (hashstr): New function.
11898         * scan.h: Prototype it.
11899         * fix-header.c: Don't include cpphash.h.  Use hashstr.
11900         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
11901         hashstr.  Report hash table statistics.  Add private
11902         definition of xrealloc.
11903
11904 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11905
11906         * i386.h (TARGET_SWITCHES): Fix typo in option name.
11907
11908 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
11909
11910         * function.c (thread_prologue_and_epilogue_insns): Don't replace
11911         jumps with returns unless they are jumps to the fallthru block.
11912
11913 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
11914
11915         * i386.md (addqi3_cc): Fix contraints.
11916
11917 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11918
11919         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
11920
11921 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
11922
11923         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
11924         carriage return after a macro name.
11925
11926 2000-02-07  Fred Fish  <fnf@be.com>
11927
11928         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
11929         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
11930
11931 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
11932
11933         * cppfiles.c (deps_output): Count spacers in deps_column.
11934
11935 2000-02-07  Neil Booth  <NeilB@earthling.net>
11936
11937         * cppinit.c (initialize_dependency_output): If there is no
11938         suffix, don't try to look for known suffixes.  Use strrchr.
11939         (cpp_start_read): Remove duplicate initialization.
11940
11941 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
11942
11943         * calls.c (compute_argument_block_size): New argument
11944         preferred_stack_boundary.
11945         (expand_call): update cfun->preferred_stack_boundary, update call of
11946         compute_argument_block_size
11947         (emit_library_call): Increate cfun->preferred_stack_boundary
11948         to PREFERRED_STACK_BOUNDARY
11949         (emit_library_call_value): Likewise.
11950         * explow.c (allocate_dynamic_stack_spave): Likewise.
11951         * function.c (prepare_function_start): Set
11952         cfun->preferred_stack_boundary
11953         * function.h (struct function): Add preferred_stack_boundary field.
11954         * integrate.c (expand_inline_function): Update
11955         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
11956         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
11957         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
11958
11959 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
11960
11961         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
11962         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
11963         cpp_pedwarn, cpp_pedwarn_with_line,
11964         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
11965         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
11966         v_cpp_error_with_line, v_cpp_warning_with_line,
11967         cpp_message_from_errno, cpp_perror_with_name): Delete.
11968
11969         * cpperror.c (cpp_print_containing_files): Take starting
11970         buffer as argument.
11971         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
11972         (v_cpp_message): Now called directly by all entry points.
11973         Remove -1 case.
11974         (cpp_pfatal_with_name, cpp_message): Delete.
11975         (cpp_notice_from_errno, cpp_ice): New functions.
11976         (cpp_notice): Is now for reporting error conditions, just
11977         without an associated file.
11978         (cpp_error, cpp_error_with_line): Don't do anything if
11979         opts->inhibit_errors is on.
11980         (cpp_pedwarn_with_file_and_line): Take column argument also.
11981
11982         * cpplib.h: Update prototypes of exported functions.
11983         (struct cpp_options): Add inhibit_errors.
11984
11985         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
11986         non-error messages.  Include intl.h.
11987
11988         * cppinit.c, cppmain.c: Likewise.  Also, use
11989         cpp_notice_from_errno instead of cpp_perror_with_name or
11990         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
11991
11992         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
11993         report internal errors.
11994
11995         * cpplib.c (do_define): Switch bcopy to memcpy.
11996         Give cpp_pedwarn_with_file_and_line a dummy column argument.
11997
11998         * cpplib.c (copy_rest_of_line): Revert previous change: don't
11999         bail out early if we hit a line comment.
12000
12001 2000-02-06  Richard Henderson  <rth@cygnus.com>
12002
12003         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
12004         * basic-block.h: Declare them.
12005         * emit-rtl.h (active_insn_p): New.
12006         (next_active_insn, prev_active_insn): Use it.
12007         * rtl.h: Declare it.
12008         * function.c (emit_return_into_block): New.
12009         (thread_prologue_and_epilogue_insns): Insert return insns instead
12010         of epilogues when possible.
12011         * jump.c (jump_optimize_1): Remove code to insert a return insn
12012         on the fallthru to the exit block.
12013
12014         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
12015         and for non-empty stack frames.
12016         * i386.md (return): Expand to return-pop as needed.
12017
12018 2000-02-06  Richard Henderson  <rth@cygnus.com>
12019
12020         * simplify-rtx.c (simplify_relational_operation): Canonicalize
12021         constant to op1 for testing.
12022
12023 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12024
12025         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
12026         (fixuns_truncqfqi2): Use it.
12027
12028 2000-02-06  Richard Henderson  <rth@cygnus.com>
12029
12030         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
12031         as a TYPE_LEA insn.
12032
12033         * i386.md (widening and peepholes): Mask the constant instead of
12034         using gen_lowpart.
12035
12036 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
12037
12038         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
12039         input pointer before possibly branching off to the backslash
12040         code.
12041         * cpphash.c (macroexpand): Correctly delete \r escapes when
12042         stringifying parameters.
12043         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
12044         if we can; bail out early if we hit a line comment.
12045         (handle_directive): Treat '# 123' in an .S file just like
12046         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
12047         Return 1 for '# not_a_directive'.
12048         (get_directive_token): Pop macro buffers here, so that
12049         cpp_get_token can't sneakily move past a newline.
12050         Add sanity checks.
12051         (cpp_get_token): goto randomchar if handle_directive returns 0.
12052
12053         * cppalloc.c: Update copyright.
12054         * cpplib.c: Merge all the static function prototypes into one
12055         block.
12056         * cpplib.h: Remove #if 0 block.
12057
12058         * cpperror.c: Remove #ifdef EMACS block.
12059         * cppmain.c: Likewise.
12060         * cpphash.c: Remove #if 0 blocks.
12061         * cppinit.c: Remove #if 0 blocks, and the -lint option.
12062         * cpplib.c: Remove #if 0 blocks and code referencing
12063         pcp_inside_if or for_lint.  Remove duplicate error message.
12064         Fix error messages for #else after #else or #elif.  Reformat.
12065         Remove archaic TODO list.
12066         * cpplib.h: Remove pcp_inside_if and for_lint flags.
12067
12068 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
12069
12070         * i386/osf1elf.h: Add missing backslash to multiline string.
12071
12072 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12073
12074         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
12075
12076 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12077
12078         * Makefile.in (c-common.o): Depend on $(EXPR_H).
12079
12080         * c-common.c: Include expr.h.
12081
12082         * c-pragma.c (mark_align_stack): Add prototype.
12083
12084         * caller-save.c (add_stored_regs): Likewise.
12085
12086         * combine.c (record_promoted_value): Likewise.
12087
12088         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
12089         Likewise.
12090
12091         * cppinit.c (new_pending_define): Likewise.
12092
12093         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
12094
12095         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
12096         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
12097         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
12098         class_scope_p): Likewise.
12099
12100         * dwarf2out.h (dwarf2out_set_demangle_name_func,
12101         dwarf2out_add_library_unit_info): Likewise.
12102
12103         * ggc.h (ggc_page_print_statistics): Likewise.
12104
12105         * haifa-sched.c (propagate_deps): Likewise.
12106
12107         * reg-stack.c (next_flags_user, record_label_references): Likewise.
12108
12109         * rtl.h (set_stack_check_libfunc): Likewise.
12110
12111         * toplev.h (set_fatal_function): Likewise.
12112
12113         * toplev.c (set_fatal_function): Delete prototype.
12114
12115         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
12116
12117 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
12118
12119         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
12120         (FUNC_END): Likewise.
12121
12122 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12123
12124         * caller-save.c: Include tm_p.h.
12125
12126 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12127
12128         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
12129
12130 2000-02-04  Neil Booth  <NeilB@earthling.net>
12131
12132         * cccp.c (main): Check 'dir' for a NULL pointer before passing
12133         it to strcmp.
12134
12135 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
12136
12137         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
12138         * genflags.c: Use the max_operand_1 logic from genemit.c to
12139         calculate how many arguments gen_insn prototypes have.  Remove
12140         NO_MD_PROTOTYPES ifdefs from the generated file.
12141         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
12142         file.  Cast gen_insn initializers to insn_gen_fn.
12143         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
12144         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
12145
12146 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12147
12148         * fixinc/Makefile.in (HDR): Add machname.h.
12149         (clean): Likewise.
12150
12151 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12152
12153         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
12154         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
12155         (c4x_cpu_version): Ditto.
12156         * config/c4x/c4x-protos.h: ... here.
12157
12158 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
12159
12160         * dwarf2out.c (add_abstract_origin_attribute): Don't call
12161         gen_abstract_function on our context if we're a nested function.
12162
12163 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12164
12165         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
12166         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
12167
12168 2000-02-04  Bruce Korb  <bkorb@gnu.org>
12169
12170         * fixinc/genfixes(machname.h):
12171         Move the functionality from gen-machine.h into this file.
12172         UNdef MN_NAME_PAT if there are no names to change.
12173         Also, be a little kinder when AutoGen is not present.
12174
12175         * fixinc/Makefile.in(machname.h):
12176         Change the generation rule to use genfixes.
12177
12178         * fixinc/fixfixes.c(machine_name):
12179         machine_name_fix's functionality now dependent upon whether
12180         MN_NAME_PAT is defined.
12181
12182         * fixinc/fixtests.c(machine_name):
12183         ditto.
12184
12185         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
12186         of MN_NAME_PAT.
12187
12188         * fixinc/fixlib.h(mn_get_regexps):
12189         ditto
12190
12191         * fixinc/gen-machine.h: DELETED
12192
12193 2000-02-04  Jan Hubicka  <jh@suse.cz>
12194             Richard Henderson  <rth@cygnus.com>
12195
12196         * i386.c (SAVE_REGS_FIRST): Remove.
12197         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
12198         (ix86_compute_frame_size): Likewise.
12199         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
12200         (ix86_emit_restore_regs): Remove.
12201         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
12202         when a frame pointer is in use.
12203         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
12204         instead of pop to restore a register when profitable; emit leave
12205         when profitable.
12206         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
12207         as a TYPE_LEA insn.
12208         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
12209         * i386.md (prologue_allocate_stack): Remove.
12210         (epilogue_deallocate_stack): Remove.
12211         (pro_epilogue_adjust_stack): New.
12212
12213 2000-02-04  Richard Henderson  <rth@cygnus.com>
12214
12215         * function.c (diddle_return_value): Rework to use a callback function.
12216         Use current_function_return_rtx if it's been set up.
12217         (do_clobber_return_reg, clobber_return_register): New.
12218         (do_use_return_reg, use_return_register): New.
12219         (expand_function_end): Use them.
12220         * stmt.c (expand_null_return): Likewise.
12221         * function.h: Declare them.
12222         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
12223         (mark_reg): Change arguments as appropriate for callback.
12224         * integrate.c (expand_inline_function): Revert 19 Jan change.
12225
12226 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12227
12228         * tm.texi (Values in Registers): Fix typo: "fo" "for".
12229         (Misc): Say the scheduler, not the Haifa scheduler.
12230
12231 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
12232
12233         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
12234         when in_mem is set.  Update all callers.
12235
12236 2000-02-04  Richard Henderson  <rth@cygnus.com>
12237
12238         * i386/openbsd.h (INT_ASM_OP): Define.
12239
12240 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12241
12242         * tm.texi: Fix various typos.
12243
12244 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
12245
12246         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
12247         (MD_STARTFILE_PREFIX_1): New macro.
12248
12249 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
12250
12251         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
12252         destination when needed.
12253         (strmovsi, strsetsi): New expander.
12254         (strmovsi_1, strsetsi_1): New pattern.
12255         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
12256         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
12257         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
12258         * invoke.texi (align-stringops, inline-all-stringops): Document.
12259
12260 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
12261
12262         * i386/netbsd.h (INT_ASM_OP): Define.
12263
12264 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
12265
12266         * cpplib.h (cpp_reader): Add new flag, no_directives.
12267         * cpphash.c (macarg): Set it.
12268         * cpplib.c (handle_directive): If no_directives is on and we
12269         find a directive, issue an error and discard the line.
12270
12271 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
12272
12273         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
12274         FP constants.  Add ! TARGET_FPU check for FP constants.
12275
12276 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
12277
12278         * flow.c (find_basic_blocks): Don't kill label_value_list
12279         here.
12280         (cleanup_cfg): Kill it here.
12281
12282 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12283
12284         * expr.c (store_field): Ensure ALIGN is no stricter than the
12285         alignment of EXP.
12286
12287 2000-02-02  Richard Henderson  <rth@cygnus.com>
12288
12289         * jump.c (delete_insn): Partially revert 19 Jan change;
12290         don't convert unused code labels to notes at -O0.
12291
12292 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12293
12294         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
12295         split_all_insns to recreate REG_LABEL notes for flow2 pass.
12296
12297 2000-02-01  Richard Henderson  <rth@cygnus.com>
12298
12299         * i386.c (general_no_elim_operand): New.
12300         (nonmemory_no_elim_operand): New.
12301         (ix86_expand_move): Copy eliminable operands before a push.
12302         * i386-protos.h: Declare new functions.
12303         * i386.h (CAN_ELIMINATE): Simplify.
12304         (PREDICATE_CODES): Update.
12305         * i386.md (push insns): Don't allow eliminable register operands.
12306
12307 2000-02-01  Richard Henderson  <rth@cygnus.com>
12308
12309         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
12310         replace BLKmode with DECL_RTL's mode.
12311
12312 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
12313
12314         * frame.c (find_fde): Convert for loop to do-while so compiler
12315         sees it's always executed at least once.
12316         * libgcc2.c (BBINBUFSIZE): Kill.
12317         (__bb_init_prg): Use fgets.
12318         (__bb_exit_trace_func): Don't paste strings.
12319         * unroll.c (unroll_loop): Initialize unroll_type, not
12320         unroll_number, and tweak logic to match.
12321
12322         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
12323         all failure paths.
12324         (ix86_flags_dependant): Likewise.  Disentangle control flow.
12325         (ix86_sched_reorder): Break guts out to
12326         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
12327         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
12328         any possible use.
12329
12330         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
12331         use string concatenation.  Don't save and restore esi.
12332
12333         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
12334         (machname.h): Remove script to separate file.  Use two-step
12335         sequence so target is not created if script fails.
12336         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
12337         identifiers are defined.
12338         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
12339         an empty string, machine_name doesn't need to do anything at
12340         all.
12341         (is_cxx_header): Add more cases to regexp.
12342         * fixinc/fixlib.h: Update prototype.
12343         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
12344         mn_get_regexps.
12345         * fixinc/fixincl.c: Define NO_BOGOSITY.
12346
12347         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
12348         (hp_sysfile): Add missing comma.
12349         (math_exception): Put the wrapper ifdefs at the beginning and
12350         the end of the file.
12351         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
12352
12353 2000-02-01  Richard Henderson  <rth@cygnus.com>
12354
12355         * sparc.c (fp_zero_operand): Turn into a normal predicate.
12356         Use CONST0_RTX.  Update all callers.
12357         * sparc.h, sparc-protos.h: Update accordingly.
12358         * sparc.md (fp mov insns): Use fp_zero_operand directly
12359         where applicable.
12360
12361 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12362
12363         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
12364         example.
12365
12366 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12367
12368         * Makefile.in (specs.ready): New target.
12369         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
12370
12371 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12372
12373         * fixinc.irix: Use unique filenames for writing into /tmp,
12374         * fixinc.ptx: Likewise.
12375         * fixinc.sco: Likewise.
12376         * fixinc.svr4: Likewise.
12377         * fixinc.winnt: Likewise.
12378
12379 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12380
12381         * tsystem.h: New file.
12382
12383         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
12384         s-crtS): Depend on tsystem.h.
12385
12386         * crtstuff.c: Include tsystem.h.
12387         * frame.c: Likewise.
12388         * libgcc2.c: Likewise.
12389
12390 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
12391
12392         * builtins.c (expand_builtin_memset): Expand for variable sized
12393         lengths too.
12394
12395 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
12396
12397         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
12398         on ABI.
12399
12400 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
12401
12402         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
12403
12404         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
12405
12406 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
12407
12408         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
12409         case 3->2 combining (combining with splitting) in which 2 is CC0
12410         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
12411         checked at the begining of the function with the aid of calling
12412         function 'can_combine_p'.
12413
12414 2000-01-31  Dave Brolley  <brolley@redhat.com>
12415
12416         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
12417
12418 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
12419
12420         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
12421         new label.
12422
12423 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12424
12425         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
12426
12427         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
12428         PROTO -> PARAMS.
12429
12430 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12431
12432         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
12433         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
12434         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
12435         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
12436         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
12437         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
12438         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
12439         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
12440         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
12441         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
12442
12443         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
12444         Add %(cpp_cpu) to CPP_SPEC.
12445
12446         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
12447         Add %(cc1_cpu) to CC1_SPEC.
12448
12449 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12450
12451         * c-decl.c (c_decode_option): Accept optional numeric argument to
12452         -Wformat and set warn_format.
12453         * c-common.c: Don't emit warning about non-constant printf format
12454         string unless warn_format > 1.
12455
12456 2000-01-30  Richard Henderson  <rth@cygnus.com>
12457
12458         * alpha.md (return_internal): Allow after reload only.
12459
12460 2000-01-30  Richard Henderson  <rth@cygnus.com>
12461
12462         * i386.c (ix86_compute_frame_size): Omit padding1 if the
12463         local frame size is zero.
12464
12465 2000-01-30  Richard Henderson  <rth@cygnus.com>
12466
12467         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
12468         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
12469         * alpha.md (return): Turn into an expander.
12470         (return_internal): Don't use $26.
12471         (epilogue): Emit the return insn.
12472
12473 2000-01-30  Richard Henderson  <rth@cygnus.com>
12474
12475         * alpha.md (negtf2, abstf2): Fix word order thinko.
12476         (extendsftf2): New.
12477         (trunctfsf2): Avoid intermediate rounding errors.
12478
12479 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12480
12481         * cppfiles.c (find_position): Drop 'colp' argument, return the
12482         new line base.
12483         (read_and_prescan): Adjust to match.  Don't ever manipulate
12484         line or line_base except via find_position.
12485
12486 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12487
12488         * c-parse.in: Apply Ulrich's changes from c-parse.y.
12489         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
12490         Regenerate.
12491
12492 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12493
12494         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
12495         just print "<command line>".  If 'filename' is null or an
12496         empty string, print "<stdin>" for the filename.
12497         * cpplib.c (do_define): Don't print the 'location of the
12498         previous definition' message if we're still parsing the
12499         command line.
12500         (cpp_pedwarn_with_file_and_line): Always call
12501         cpp_file_line_for_message.
12502
12503 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
12504
12505         * flow.c (mark_regs_live_at_end): Fix typo.
12506
12507 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12508
12509         * c-common.c: Adjust variable names, comments, help strings to c99.
12510         * c-lex.c: Likewise.
12511         * c-parse.y: Likewise.
12512         * c-tree.h: Likewise.
12513         * cccp.c: Likewise.
12514         * cpplib.h: Likewise.
12515         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
12516         * cppinit.c: Likewise.
12517
12518 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12519
12520         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
12521         * c4x.c: Define the optab rtx values.
12522         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
12523         (c4x_emit_libcall): Use new optab rtx values.
12524         (c4x_emit_libcall3): Likewise.
12525         (c4x_emit_libcall_mulhi): Likewise.
12526         * c4x-protos.h: Add prototypes for optab rtx values and change
12527         prototypes for above c4x_emit_libcall functions.
12528
12529 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12530
12531         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
12532         syntax is used.
12533         (c4x_function_prologue): Use regnames intead of float_reg_names when
12534         TI syntax is used.
12535         (c4x_function_epilogue): Likewise.
12536         (c4x_print_operand): Likewise.
12537         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
12538         * c4x.md (set_high): Disable for TARGET_TI.
12539
12540 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12541
12542         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
12543         of framepointer + constant to ADDR_REGS class.
12544         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
12545         * c4x.c (std_or_reg_operand): New function.
12546         * c4x-protos.h (std_or_reg_operand): Prototype it.
12547
12548 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12549
12550         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
12551                 object names as libgcc2.c.
12552         * libgcc.S: Use newly defined names.
12553
12554 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
12555         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
12556         function.
12557         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
12558         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
12559         (FLOW_LOOP_LAST_BLOCK): Likewise.
12560
12561 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12562
12563         * basic-block.h (struct loop): New fields 'first' and 'last'.
12564         * flow.c (flow_loops_find): Compute loop->first and loop->last.
12565         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
12566         and loop->last to check for NOTE_INSN_LOOP_END.
12567
12568 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
12569
12570         * predict.c (estimate_probability): Use the new FIRST and LAST fields
12571         of the loop descriptor rather than HEADER and LATCH. Also added
12572         missing break statements as well making some coding style modifications
12573         as suggested by Michael Hayes.
12574
12575 2000-01-28  Richard Henderson  <rth@cygnus.com>
12576
12577         * flow.c (find_basic_blocks): Remove do_cleanup argument.
12578         Break out that code ...
12579         (cleanup_cfg): ... here.
12580         (commit_one_edge_insertion): Detect a return instruction being
12581         emitted to an edge.  Emit a barrier following; clear fallthru.
12582         (commit_edge_insertions): Verify CFG consistency.
12583         * function.c (expand_function_start): Kill unused variable.
12584         (expand_function_end): Likewise.
12585         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
12586         to insert the epilogue.
12587
12588         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
12589         (delete_null_pointer_checks): Likewise.
12590         * output.h: Likewise.
12591         * reg-stack.c (reg_to_stack): Likewise.
12592         * toplev.c (rest_of_compilation): Likewise.  Run
12593         thread_prologue_and_epilogue_insns after rebuilding the CFG.
12594
12595 2000-01-28  Richard Henderson  <rth@cygnus.com>
12596
12597         * Makefile.in (flow.o): Revert 24 Jan change.
12598         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
12599         FUNCTION_VALUE result to DECL_RESULT's mode.
12600
12601         * haifa-sched.c (schedule_insns): Don't recompute reg info
12602         after reload.
12603
12604 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
12605
12606         * configure.in: Make --enable-cpplib the default.
12607         * configure: Regenerate.
12608         * gcc.dg/990119-1.c: No longer expected to fail.
12609
12610 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
12611
12612         * jump.c (jump_optimize_1): Delete an optimization that is also done
12613         by merge_blocks in flow.
12614
12615 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12616
12617         * diagnostic.c (build_message_string, output_printf,
12618         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
12619         (build_location_prefix): Fix non-literal format string.
12620
12621 2000-01-27  Richard Henderson  <rth@cygnus.com>
12622
12623         * alpha.md (trunctfsf2): New.
12624
12625 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
12626
12627         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
12628
12629 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12630
12631         * cppinit.c (cpp_handle_option): Recognize C++ comments under
12632         -std=gnu89.
12633         * cpplib.c (skip_block_comment, skip_line_comment): Split code
12634         out of...
12635         (skip_comment) ... here.  Permit C++ comments in system
12636         headers always.  Warn about C++ comments in user code under
12637         -std=gnu89 -pedantic.
12638         (copy_comment): Use skip_comment.
12639         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
12640         return EOF.
12641         (consider_directive_while_skipping, do_else, do_endif): Call
12642         validate_else unconditionally.
12643         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
12644         text after the conditional in a system header.
12645         * cpplib.h (struct cpp_buffer): Add flag
12646         warned_cplusplus_comments.
12647
12648 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12649
12650         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
12651         Use unshare_all_rtl_1.
12652         (unshare_all_rtl_again): New function.
12653         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
12654
12655         * function.c (purge_addressof_1): Use unshare_all_rtl_again
12656         rather than resetting the 'used' flags ourself.
12657
12658         * toplev.c (rest_of_compilation): Add current_function_decl
12659         to the unshare_all_rtl call.
12660         * tree.h: Prototype unshare_all_rtl.
12661         * rtl.h: Prototype unshare_all_rtl_again here.
12662
12663 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12664
12665         * genoutput.c (output_prologue): Include ggc.h in generated
12666         files.
12667         * Makefile.in (insn-output.o): Depends on ggc.h.
12668
12669 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
12670             Hans-Peter Nilsson  <hp@bitrange.com>
12671
12672         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
12673         Remove redundant include of xm-ns32k.h.
12674         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
12675         Remove redundant include of xm-ns32k.h.
12676         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
12677         Remove redundant include of xm-ns32k.h.
12678         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
12679
12680         * ns32k/ns32k.h: Update comment on multiply-add instructions.
12681         (TARGET_SWITCHES): Add documentation strings.
12682         (DWARF_FRAME_REGNUM): Override default definition.
12683         (REG_CLASS_CONTENTS): Add comments.
12684         (SUBSET_P): Format to reduce line length.
12685         (SMALL_REGISTER_CLASSES): Make a run time option.
12686         (GO_IF_NONINDEXED_ADDRESS): Reformat.
12687         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
12688         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
12689         (regclass_map): fix typo in comment.
12690         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
12691         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
12692         (trace, reg_or_mem_operand): Delete, unused function.
12693         (calc_address_cost): Small offsets are cheaper than large ones.
12694         (expand_block_move): Generate more efficient code when bytes is a
12695         known at compile time.
12696         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
12697         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
12698         instead of reg_or_mem_operand.
12699
12700         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
12701         not general_operand.  Similarly use "=rm" or stricter, not "=g".
12702         For input operands, use stricter constraints than "g" if not
12703         general_operand.  Similarly use stricter predicate than
12704         "general_operand" when stricter constraints than "g" are present,
12705         except for matching constraints.
12706         (movstrsi): Use "memory_operand" for operands 0 and 1.
12707         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
12708         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
12709         not reg_or_mem_operand.
12710         (udivmoddisi4): Ditto.
12711         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
12712         Use nonimmediate_operand for operand 3, not register_operand.
12713         (udivmoddiqi4_internal): Use register_operand for operand 1, not
12714         reg_or_mem_operand.
12715
12716 2000-01-27  Fred Fish  <fnf@be.com>
12717
12718         * gthr-posix.h: Fix typo; compatibily -> compatibility.
12719         * gthr-single.h: Likewise.
12720         * gthr-solaris.h: Likewise.
12721         * gthr-vxworks.h: Likewise.
12722         * gthr-win32.h: Likewise.
12723         * gthr.h: Likewise.
12724
12725 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12726
12727         * cppinit.c: Add " (cpplib)" to end of string printed by
12728         -v / --version.
12729
12730 2000-01-27  Richard Henderson  <rth@cygnus.com>
12731
12732         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
12733         testing for a signed comparison.
12734         (alpha_emit_floatuns): New.
12735         * alpha-protos.h: Declare it.
12736         * alpha.md (floatunsdisf2, floatunsdidf2): New.
12737         (extendsfdf2): Tidy.
12738
12739 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
12740
12741         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
12742         no -g option specifying debugging format, default to -gstabs+.
12743
12744 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
12745
12746         * calls.c (special_function_p): New argument fork_or_exec.
12747         (expand_call): When profile_arc_flag is set and the function
12748         is in the fork_or_exec group, call __bb_fork_func first.
12749         * libgcc2.c, _bb module (__bb_fork_func): New function.
12750         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
12751         output file.
12752         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
12753         * tree.h (special_function_p): Update prototype.
12754
12755 2000-01-26  Richard Henderson  <rth@cygnus.com>
12756
12757         * alpha.c (alpha_split_tfmode_pair): New.
12758         * alpha-protos.h: Declare it.
12759         * alpha.md (abstf2, negtf2): New.
12760         (movtf insn): Add input G constraint.
12761         (movtf splitter): Use alpha_split_tfmode_pair.
12762
12763 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12764
12765         * i386/cygwin.h: PROTO -> PARAMS.
12766
12767 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
12768
12769         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
12770         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
12771         using _Qp_cmp/_Q_cmp and testing the return value.
12772         (print_operand): Call reverse_condition_maybe_unordered if
12773         we are handling CCFPmode or CCFPEmode.
12774         Handle ORDERED, UN* and LTGT comparisons.
12775         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
12776         if not TARGET_HARD_QUAD.
12777         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
12778         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
12779         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
12780         Adjust gen_b* calls so that they reflect return comparison of
12781         sparc_emit_float_lib_cmp.
12782
12783 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12784
12785         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
12786         incoming operands array is large enough for one more operand.
12787         (alpha_emit_xfloating_arith): Likewise.
12788
12789 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12790
12791         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
12792         file with one line and no trailing newline.
12793         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
12794         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
12795         checking if the match is on the line.
12796         * fixinc/gnu-regex.c: Provide regerror not __regerror.
12797
12798 2000-01-25  Richard Henderson  <rth@cygnus.com>
12799
12800         * sparc.c (output_cbranch): Fix accidental squashing of the
12801         fp branch pre-delay nop.
12802
12803 2000-01-25  Richard Henderson  <rth@cygnus.com>
12804
12805         * tree.def (UNNE_EXPR): Remove.
12806         * c-typeck.c (build_binary_op): Don't handle it.
12807         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
12808
12809         * rtl.def (UNNE): Remove.
12810         (LTGT): Add.
12811         * jump.c (reverse_condition): Update accordingly.
12812         (swap_condition): Likewise.
12813         (comparison_dominates_p): Handle unordered comparisons.
12814         (reverse_condition_maybe_unordered): New.
12815         * rtl.h (reverse_condition_maybe_unordered): Declare.
12816
12817         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
12818         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
12819         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
12820         * sparc.md (bltgt): New.
12821
12822 2000-01-25  Nick Clifton  <nickc@redhat.com>
12823
12824         * emit-rtl.c (emit_insn): Only check machine class insns for
12825         improper emission of a RETURN.
12826
12827 2000-01-25  Richard Henderson  <rth@cygnus.com>
12828
12829         * Makefile.in (flow.o): Depend on $(EXPR_H).
12830         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
12831         duplicate the structure of diddle_return_value for keeping regs live.
12832
12833 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12834
12835         * loop.c (current_loop_info): Delete.
12836         (consec_sets_invariant_p): Add loop argument, update callers.
12837         (get_condition_for_loop): Likewise.
12838         (count_nonfixed_reads, update_giv_derive): Likewise.
12839         (simplify_giv_expr, general_induction_var): Likewise.
12840         (consec_sets_giv, recombine_givs): Likewise.
12841         (move_movables): Delete loop_start and loop_end arguments,
12842         add loop argument, and update callers.
12843         (find_mem_givs, check_final_value): Likewise.
12844         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
12845         (loop_invariant_p): Rename from invariant_p, add loop argument, and
12846         update callers.
12847         (basic_induction_var): Add loop argument, delete loop_level argument,
12848         and update callers.
12849         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
12850         add loop argument, and update callers.
12851         (find_splittable_regs, find_splittable_givs): Likewise.
12852         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
12853         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
12854         (biv_total_increment): Delete loop_start and loop_end arguments;
12855         update callers.
12856         (precondition_loop_p): Delete loop_start and loop_info arguments;
12857         update callers.
12858         * loop.h (get_condition_for_loop): Add loop argument.
12859         (biv_total_increment): Delete loop_start and loop_end arguments.
12860         (precondition_loop_p): Delete loop_start and loop_info arguments;
12861         add loop argument.
12862         (final_biv_value): Delete loop_start and loop_end arguments;
12863         add loop argument.
12864         (final_giv_value, back_branch_in_range_p): Likewise.
12865
12866 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12867
12868         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
12869
12870 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12871
12872         * Makefile.in (c-gperf.h) : Change the "See" pointer to
12873         point to the new "generated_files" doc.
12874
12875 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12876
12877         * config/fp-bit.c (_unord_f2): Fix typo.
12878
12879 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12880
12881         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
12882         c-typeck.c, objc/objc-act.c: Remove all references to obstack
12883         functions obsoleted by GC, such as push_obstacks_nochange,
12884         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
12885         and code which existed only to decide whether or not to call
12886         them.  Remove now-unused NESTED argument from start_function;
12887         all callers changed.  Do not change behavior based on ggc_p.
12888         The use of the ixp_obstack in c-iterate.c and the util_obstack
12889         in objc/objc-act.c remain; these are not obsoleted by garbage
12890         collection.
12891         * c-tree.h: Update prototype for start_function.
12892
12893         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
12894
12895 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12896
12897         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
12898         mips16.
12899
12900 2000-01-25  Richard Henderson  <rth@cygnus.com>
12901
12902         * sparc-protos.h (select_cc_mode): Declare.
12903         * sparc.c (select_cc_mode): New.  Handle unordered compares.
12904         (output_cbranch): Always reverse via code change.  Handle
12905         unordered compares.  Factor tests and string updates.
12906         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
12907         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
12908         * sparc.md (bunordered, bordered): New.
12909         (bungt, bunlt, buneq, bunge, bunle): New.
12910
12911 2000-01-25  Richard Henderson  <rth@cygnus.com>
12912
12913         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
12914         * ggc-common.c (ggc_add_rtx_varray_root): New.
12915         (ggc_mark_rtx_varray): New.
12916         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
12917         functions down below ggc_mark_foo.
12918         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
12919
12920 2000-01-25  Richard Henderson  <rth@cygnus.com>
12921
12922         * alpha.c (secondary_reload_class): Don't allocate a secondary
12923         for integral mode memories into FLOAT_REGS.  Rearrange the more
12924         complicated memory expression inward.
12925
12926 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12927
12928         * inclhack.def: Fixes to play nicer with FreeBSD, and
12929         corrections to comments.
12930         (cxx_unready): Add select expression.
12931         (irix_sockaddr): Add bypass expression.
12932         (machine_ansi_h_va_list): New fix.
12933         (stdio_va_list): No need to edit _BSD_VA_LIST_.
12934         Split out addition of "#include <stdarg.h>" to...
12935         (stdio_stdarg_h): ... here.
12936         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
12937         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
12938         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
12939         size_t.
12940         (ultrix_ifdef): Tighten up select expression.
12941
12942         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
12943         re_ct and max_mach to avoid use of shell.  Make printed names
12944         match names in inclhack.def.  Use static copyright date.
12945         Don't count c_test and test expressions as requiring regex_t
12946         slots.  Add some commentary.
12947         * inclhack.tpl: Do not include the 'This script contains N
12948         fixup scripts' line if PROGRAM is defined.  Use static
12949         copyright date.
12950
12951 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
12952
12953         * dwarf2out.c: include "varray.h", not dyn-string.h.
12954         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
12955         (addr_const_to_string, addr_to_string): Lose.
12956         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
12957         (struct dw_val_struct): val_addr is now an rtx.
12958         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
12959         (used_rtx_varray): New varray.
12960         (dwarf2out_init): Initialize it.
12961         (save_rtx): New fn.
12962         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
12963         addr_to_string.
12964         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
12965         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
12966         * Makefile.in (dwarf2out.o): Update dependencies.
12967
12968 2000-01-24  Richard Henderson  <rth@cygnus.com>
12969
12970         * i386.c (i386_dwarf_output_addr_const): New.
12971         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
12972
12973         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
12974         if defined.
12975         * dwarfout.c (output_mem_loc_descriptor): Likewise.
12976         * i386.c (i386_simplify_dwarf_addr): New.
12977         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
12978
12979 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
12980
12981         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
12982         TYPE_STUB_DECL is NULL.
12983
12984 2000-01-24  Richard Henderson  <rth@cygnus.com>
12985
12986         * builtins.c (expand_tree_builtin): Move ...
12987         * c-common.c (expand_tree_builtin): ... here.
12988
12989 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12990
12991         * loop.h (LOOP_INFO): New accessor macro.
12992         * basic-block.h (struct loop): Rename field `info' to `aux'.
12993         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
12994         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
12995         * unroll.c (loop_iterations, unroll_loop): Likewise.
12996
12997 2000-01-24  Christopher Faylor <cgf@cygnus.com>
12998
12999         * config/i386/t-cygwin: Accomodate new winsup directory layout
13000         when searching for include files.
13001
13002 2000-01-24  Richard Henderson  <rth@cygnus.com>
13003
13004         * rtl.def: Add unordered fp comparisions.
13005         * tree.def: Likewise.
13006         * tree.h: Add ISO C 9x unordered fp comparision builtins.
13007
13008         * builtins.c (expand_tree_builtin): New function.
13009         * c-typeck.c (build_function_call): Use it.
13010         (build_binary_op): Support unordered compares.
13011         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
13012
13013         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
13014         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
13015         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
13016         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
13017         * jump.c (reverse_condition): Don't abort for UNLE etc, but
13018         return UNKNOWN.
13019         (swap_condition): Handle unordered compares.
13020         (thread_jumps): Check can_reverse before reversing.
13021         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
13022         reversed for FP.
13023
13024         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
13025         setcc is present before acking for cmp_optab.  Update all callers.
13026         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
13027         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
13028         * expr.c (expand_expr): Likewise.  Support unordered compares.
13029         (do_jump, do_store_flag): Likewise.
13030         * expr.h (enum libfunc_index): Add unordered compares.
13031
13032         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
13033         (DPBIT_FUNCS): Add _unord_df.
13034         * config/fp-bit.c (_unord_f2): New.
13035         * fp-test.c (main): Try unordered compare builtins.
13036
13037         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
13038         * alpha.c (alpha_comparison_operator): Check mode properly.
13039         (alpha_swapped_comparison_operator): Likewise.
13040         (signed_comparison_operator): Likewise.
13041         (alpha_fp_comparison_operator): New.
13042         (alpha_emit_conditional_branch): Handle unordered compares.
13043         * alpha.h (PREDICATE_CODES): Update.
13044         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
13045         (bunordered, bordered): New.
13046
13047 2000-01-24  Richard Henderson  <rth@cygnus.com>
13048
13049         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
13050         * alpha.md (movtf): New expander, insn, and splitter.
13051
13052 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
13053
13054         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
13055         dead registers.
13056
13057 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13058
13059         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
13060         (FIXED_REGISTERS, CALL_USED_REGISTERS,
13061          REG_ALLOC_ORDER): Add frame pointer
13062         (FRAME_POINTER_REGNUM): Set to 20
13063         (HARD_FRAME_POINTER_REGNUM): New macro.
13064         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
13065         to HARD_FRAME_POINTER.
13066         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
13067         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
13068         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
13069         (HI_REGISTER_NAMES): Add "frame".
13070         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
13071         (debug_reg): Handle FRAME_POINTER_REGNUM.
13072         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
13073         GENERAL_REGS and INDEX_REGS.
13074         * i386.c (SAVED_REGS_FIRST): new macro.
13075         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
13076         (ix86_decompose_address, memory_address_length): Likewise.
13077         (regclass_map): Add frame pointer.
13078         (call_insn_operand): Handle frame_pointer_rtx.
13079         (reg_no_sp_operand): Likewise.
13080         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
13081         (print_operand, legitimize_pic_address): Fix formating.
13082         (ix86_compute_frame_size): Make static, update prototype, new
13083         parameters padding1, padding2, use ix86_nsaved_regs, use
13084         stack_alignment_needed.
13085         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
13086         to HARD_FRAME_POINTER_REGNUM conversions.
13087         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
13088         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
13089         (print_reg): Abort on FRAME_POINTER_REGNUM
13090
13091 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
13092
13093         * i386.h (PREDICATE_CODES): Add aligned_operand.
13094         * i386.c (aligned_operand): New function.
13095         (ix86_aligned_p): Kill.
13096         * i386.md (movhi_1): Emit mov for aligned operands.
13097         (promoting peep2s): Use aligned_operand.
13098
13099 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
13100
13101         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
13102         expression to allow underscores in macro names.
13103         (fix_char_macro_defines): Increment scanning pointer.
13104
13105 2000-01-23  Richard Henderson  <rth@cygnus.com>
13106
13107         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
13108         * alpha/osf5.h: New file.
13109         * configure.in (alpha-*-osf5): Add it to tm_file.
13110
13111         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
13112
13113         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
13114         (alpha_emit_xfloating_cvt, function_arg): Declare.
13115         * alpha.c (alpha_emit_conditional_branch): Call
13116         alpha_emit_xfloating_compare for TFmode compares.
13117         (alpha_lookup_xfloating_lib_func): New.
13118         (alpha_compute_xfloating_mode_arg): New.
13119         (alpha_emit_xfloating_libcall): New.
13120         (alpha_emit_xfloating_arith): New.
13121         (alpha_emit_xfloating_compare): New.
13122         (alpha_emit_xfloating_cvt): New.
13123         (print_operand): Add default abort case.
13124         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
13125         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
13126         (BIGGEST_ALIGNMENT): Increase to 128 bits.
13127         (RETURN_IN_MEMORY): True for TF/TCmode.
13128         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
13129         (FUNCTION_ARG): Move to function_arg.
13130         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
13131         (ASM_OUTPUT_LONG_DOUBLE): New.
13132         (ASM_OUTPUT_DOUBLE): Always output bits.
13133         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
13134         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
13135         (extenddftf2, trunctfdf2): New.
13136
13137 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13138
13139         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
13140         * config/sparc/sol2.h: ... here.
13141
13142 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13143
13144         * basic-block.h (struct loops): New field `levels'.
13145         * flow.c (flow_loops_level_compute): Traverse all outer loops.
13146         (flow_loop_level_compute): Initialise level to 1.
13147         (flow_loops_find): Set loops->levels.
13148         (flow_loops_dump): Print loops->levels.
13149
13150 2000-01-23  Richard Henderson  <rth@cygnus.com>
13151
13152         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
13153         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
13154
13155 2000-01-23  Richard Henderson  <rth@cygnus.com>
13156
13157         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
13158         * i386.h (DBX_REGISTER_NUMBER): Use them.
13159         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
13160         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
13161         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
13162         * i386/sequent.h: Kill incorrect comment.
13163
13164 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
13165
13166         * ggc-page.c (struct page_entry): Make `context_depth' an
13167         `unsigned short'.
13168         (struct globals): Likewise.
13169
13170 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
13171
13172         * loop.c (check_dbra_loop): When checking a loop for
13173         reversability, check the source of any stores to ensure
13174         they don't depend on an initial value.
13175
13176 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13177
13178         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
13179
13180 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
13181
13182         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
13183         'pz_scan' into scope of entire function.  Only affects
13184         compiles with -DDEBUG.
13185
13186 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
13187
13188         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
13189         section naming to that prior to 2000-01-07 patch.
13190         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
13191         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
13192         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
13193         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
13194         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
13195
13196 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
13197
13198         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
13199         constant.
13200
13201 2000-01-21  Jim Wilson  <wilson@cygnus.com>
13202
13203         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
13204         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
13205
13206 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
13207
13208         * cpphash.c (change_newlines): Delete function.
13209         (struct argdata): Delete 'newlines' and 'use_count' fields.
13210         (macroexpand): Remove code referencing those fields.
13211
13212 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13213
13214         * loop.c (loops_info): New variable.
13215         (loop_optimize): Allocate loops->array and free it on exit.
13216         Allocate memory for loops_info and assign to each loop,
13217         replacing alloca.
13218         (find_and_verify_loops): Do not allocate loops->array.
13219
13220 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
13221
13222         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
13223
13224 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
13225
13226         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
13227         pseudos if expanded after first flow.
13228         (movdi_pic_label_ref): Likewise.
13229
13230 2000-01-20  Richard Henderson  <rth@cygnus.com>
13231
13232         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
13233
13234 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
13235
13236         * Makefile.in (fixinc.sh): Depend on specs.
13237         * fixinc/Makefile.in: Add rule to create machname.h.
13238         (fixlib.o): Depend on machname.h.
13239         * fixinc/fixtests.c (machine_name): New test.
13240         * fixinc/fixfixes.c (machine_name): New fix.
13241         * fixinc/fixlib.c (mn_get_regexps): New helper function for
13242         the machine_name test and fix.
13243         * fixinc/fixlib.h: Prototype it.
13244         * fixinc/inclhack.def (machine_name): Use the C test and fix.
13245         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
13246
13247         * gcc.c (do_spec_1) [case P]: Take care not to create
13248         identifiers with three leading or trailing underscores.
13249
13250         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
13251         (fixincl): Don't specify libraries twice on link line.
13252         (gnu-regex.o): Remove special rule.
13253         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
13254         defined by config.h.  Do not define _REGEX_RE_COMP.
13255         (regcomp): Allocate and initialize a fastmap.
13256         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
13257
13258 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
13259
13260         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
13261
13262 2000-01-19  Richard Henderson  <rth@cygnus.com>
13263
13264         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
13265         arguments with BB.  Update all callers.  Tidy line wrapping.
13266
13267 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
13268
13269         * emit-rtl.c (try_split): Return last_insn if we split the
13270         last_insn.
13271
13272 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
13273
13274         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
13275         (ix86_initial_elimination_offset): Declare.
13276         * i386.c (ix86_nsaved_regs): Break out from ...
13277         (ix86_can_use_return_insn_p): ... here.
13278         (ix86_emit_save_regs): Break out from ...
13279         (ix86_expand_prologue): ... here.
13280         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
13281         out from ...
13282         (ix86_expand_epilogue): ... here.
13283         (ix86_compute_frame_size): Make static, add prototype.
13284         (ix86_initial_elimination_offset): Break out from ...
13285         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
13286
13287 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13288
13289         * recog.h (OUT_FCN): Delete.
13290
13291         * vax.md: Call `get_insn_template' instead of OUT_FCN.
13292
13293 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13294
13295         * cppalloc.c: PROTO -> PARAMS.
13296         * cpperror.c: Likewise.
13297         * cppfiles.c: Likewise.
13298         * cpplib.c: Likewise.
13299         * cpplib.h: Likewise.
13300
13301         * config/arm/arm-protos.h: PROTO -> PARAMS.
13302         * config/arm/arm.c: Likewise.
13303         * config/c4x/c4x.c: Likewise.
13304         * config/fr30/fr30-protos.h: Likewise.
13305         * config/nextstep.c: Likewise.
13306         * config/pa/pa.c: Likewise.
13307         * config/pj/pj.c: Likewise.
13308         * config/rs6000/rs6000.c: Likewise.
13309         * config/v850/v850-protos.h: Likewise.
13310         * config/v850/v850.c: Likewise.
13311
13312 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13313
13314         * i370-protos.h: New file.
13315
13316         * i370.c: Include tm_p.h.  Fix compile time warnings.
13317
13318         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
13319         warnings.
13320
13321         * i370.md: Likewise.
13322
13323 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13324
13325         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
13326         (target_isinf, target_isnan, eisnan): Mark parameter with
13327         ATTRIBUTE_UNUSED.
13328         (eiisinf): Wrap in INFINITY.
13329         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
13330         (ibmtoe): Remove unused variable `rndsav'.
13331
13332 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13333
13334         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
13335         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
13336
13337 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
13338
13339         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
13340         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
13341         (fix_char_macro_defines, fix_char_macro_uses): New functions.
13342
13343         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
13344         Recognize Emacs mode markers also.
13345         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
13346         C++ comments in C++ headers.  Call is_cxx_header only if
13347         necessary.
13348
13349         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
13350         bypass for ncurses.
13351         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
13352         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
13353         ... these, which use the new C fixes.
13354         (math_exception): Escape literal '+' in bypass expression.
13355
13356         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
13357         Regenerate.
13358
13359 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
13360
13361         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
13362         inside the MEM.
13363
13364 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13365
13366         * loop.c (loop_optimize): Allocate loop_info structure for each loop
13367         prior to calling scan_loop.
13368
13369 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13370
13371         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
13372         (split_branches, calc_live_regs): Likewise.
13373
13374 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13375
13376         * sh.md (fpu_single, fp_mode): New attributes.
13377
13378 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13379
13380         * loop.c (current_loop_info): Renamed from loop_info_data
13381         and changed to a pointer.
13382         (loop_optimize): Allocate loop_info structure for each loop
13383         and initialise to zero.
13384         (scan_loop): Set current_loop_info.
13385
13386         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
13387         on iteration_var.
13388
13389 2000-01-19  Richard Henderson  <rth@cygnus.com>
13390
13391         * stupid.c: Die die die.
13392         * Makefile.in (OBJS): Remove stupid.o.
13393         (stupid.o): Likewise.
13394
13395         * except.c (emit_eh_context): Don't emit USEs for stupid.
13396         * explow.c (probe_stack_range): Likewise.
13397         * flags.h (obey_regdecls): Remove.
13398         * flow.c (find_basic_blocks): Don't run try_merge_blocks
13399         when not optimizing.
13400         (life_analysis): Limit data collection when not optimizing.
13401         (mark_regs_live_at_end): Always mark the return value registers.
13402         (mark_used_regs): Remove dummy RETURN case.
13403         (print_rtl_with_bb): Don't consult obey_regdecls.
13404         * function.c (use_variable, use_variable_after): Remove.
13405         (assign_parms): Consult optimize not obey_regdecls.
13406         (expand_function_start): Don't emit USEs for stupid.
13407         (expand_function_end): Likewise.
13408         * global.c (build_insn_chain): Export.
13409         * integrate.c (expand_inline_function): Kill return-value USE
13410         handling code.
13411         * jump.c (jump_optimize_1): Do simple jump optimizations and
13412         dead code elimination.
13413         (calculate_can_reach_end): Remove check_deleted argument.
13414         (delete_insn): Patch out insns even when not optimizing.
13415         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
13416         * rtl.h (use_variable, use_variable_after): Remove declarations.
13417         (build_insn_chain): Declare.
13418         * stmt.c (expand_value_return): Don't emit USEs for stupid.
13419         (expand_end_bindings): Likewise.
13420         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
13421         * toplev.c (obey_regdecls): Remove.
13422         (rest_of_compilation): Don't set it.  Kill stupid in favour of
13423         flow1, local-alloc, and reload.
13424         (main): Don't set obey_regdecls.
13425
13426         * config/nextstep.c (handle_pragma): Likewise.
13427
13428         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
13429
13430         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
13431
13432 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13433
13434         * alpha-protos.h: PROTO -> PARAMS.
13435         * alpha.c: Likewise.
13436         * elf.h: Likewise.
13437         * h8300.c: Likewise.
13438         * i386-protos.h: Likewise.
13439         * i386.c: Likewise.
13440         * m32r-protos.h: Likewise.
13441         * m32r.c: Likewise.
13442         * mips.c: Likewise.
13443         * mips.md: Likewise.
13444         * gmon-sol2.c: Likewise.
13445         * sparc.c: Likewise.
13446
13447 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13448
13449         * ns32k-protos.h: New file.
13450
13451         * ns32k.c: Fix compile time warnings.
13452
13453         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
13454         warnings.
13455
13456         * ns32k.md: Likewise.
13457
13458 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13459
13460         * vax-protos.h: New file.
13461
13462         * vax.c: Fix compile time warnings.
13463
13464         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
13465         warnings.
13466
13467         * vax.md: Likewise.
13468
13469         * vaxv.md: Likewise.
13470
13471 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13472
13473         * romp-protos.h: New file.
13474
13475         * romp.c: Fix compile time warnings.
13476
13477         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
13478         warnings.
13479
13480         * romp.md: Likewise.
13481
13482 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13483
13484         * we32k-protos.h: New file.
13485
13486         * we32k.c: Fix compile time warnings.
13487
13488         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
13489         warnings.
13490
13491 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13492
13493         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
13494
13495         * except.c (eh_regs): Likewise.
13496
13497         * final.c (output_operand): Likewise.
13498
13499         * fold-const.c (target_isinf, target_isnan): Likewise.
13500
13501 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13502
13503         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
13504         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
13505
13506         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
13507         when optimize_size.
13508         (clrstrsi): Rewrite.
13509         (strsethi, strsetqi): New expanders.
13510         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
13511         (cmpstrsi): Emit compare insn before cmpstrsi_1
13512         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
13513         (strlensi_1): Likewise.
13514         (cmpstrsi_1): Likewise; do not output compare.
13515         (strlen expander): Do not unroll when optimizing for size.
13516         (*subsi3_carry): Rename to subsi3_carry
13517         (addqi3_cc): New pattern.
13518         * i386.h (processor_costs): Add move_ratio field.
13519         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
13520         * i386.c (*_cost): Set move_ratio.
13521         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
13522         (x86_expand_strlensi_1): Rewrite the main loop.
13523
13524 2000-01-17  Richard Henderson  <rth@cygnus.com>
13525
13526         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
13527         * cse.c (find_comparison_args, fold_rtx): Likewise.
13528         * integrate.c (subst_constants): Likewise.
13529         * loop.c (get_condition): Likewise.
13530
13531         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
13532
13533         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
13534
13535 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13536
13537         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
13538         (RESTORE_WARN_FLAGS): Unpack it.
13539         Change semantic type of extension to ttype.
13540         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
13541         * c-parse.y, c-parse.c, objc/objc-parse.y,
13542         objc/objc-parse.c: Regenerate.
13543
13544 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
13545
13546         * fixinc/fixlib.c: Add copyright notice.
13547         (compile_re): New function.
13548         * fixinc/fixlib.h: Prototype compile_re.
13549
13550         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
13551         Use compile_re to compile regular expressions.
13552
13553         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
13554         where the pattern matched.
13555
13556         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
13557         use 'replace'.
13558         (ultrix_ansi_compat): Likewise.
13559         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
13560         add egrep test.
13561         (interactv_add2, interactv_add3): Delete.
13562         (x11_sprintf): Don't use filename glob.
13563         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
13564         Regenerate.
13565
13566 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13567
13568         * print-rtl.c: PROTO -> PARAMS.
13569         * real.c: Likewise.
13570         * reg-stack.c: Likewise.
13571         * resource.c: Likewise.
13572         * sdbout.h: Likewise.
13573         * simplify-rtx.c: Likewise.
13574         * stor-layout.c: Likewise.
13575         * stupid.c: Likewise.
13576         * xcoffout.c: Likewise.
13577         * xcoffout.h: Likewise.
13578
13579 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13580
13581         * toplev.c: PROTO -> PARAMS.
13582         * toplev.h: Likewise.
13583         * tree.c: Likewise.
13584         * tree.h: Likewise.
13585         * unroll.c: Likewise.
13586         * varasm.c: Likewise.
13587         * varray.c: Likewise.
13588         * varray.h: Likewise.
13589
13590 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13591
13592         * reload.c: PROTO -> PARAMS.
13593         * reload.h: Likewise.
13594         * reload1.c: Likewise.
13595         * reorg.c: Likewise.
13596         * resource.h: Likewise.
13597         * rtl.c: Likewise.
13598         * rtl.h: Likewise.
13599         * rtlanal.c: Likewise.
13600         * sbitmap.h: Likewise.
13601         * sdbout.c: Likewise.
13602         * stack.h: Likewise.
13603         * stmt.c: Likewise.
13604         * system.h: Likewise.
13605
13606 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13607
13608         * machmode.h: PROTO -> PARAMS.
13609         * mbchar.h: Likewise.
13610         * mips-tdump.c: Likewise.
13611         * mips-tfile.c: Likewise.
13612         * optabs.c: Likewise.
13613         * output.h: Likewise.
13614         * prefix.c: Likewise.
13615         * profile.c: Likewise.
13616         * protoize.c: Likewise.
13617         * real.h: Likewise.
13618         * recog.c: Likewise.
13619         * recog.h: Likewise.
13620         * regclass.c: Likewise.
13621         * regmove.c: Likewise.
13622         * regs.h: Likewise.
13623
13624 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13625
13626         * ggc-common.c: PROTO -> PARAMS.
13627         * ggc-page.c: Likewise.
13628         * ggc-simple.c: Likewise.
13629         * ggc.h: Likewise.
13630         * global.c: Likewise.
13631         * graph.c: Likewise.
13632         * gthr-win32.h: Likewise.
13633         * haifa-sched.c: Likewise.
13634         * halfpic.h: Likewise.
13635         * integrate.c: Likewise.
13636         * integrate.h: Likewise.
13637         * jump.c: Likewise.
13638         * lcm.c: Likewise.
13639         * local-alloc.c: Likewise.
13640         * loop.c: Likewise.
13641         * loop.h: Likewise.
13642
13643 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13644
13645         * genattr.c: PROTO -> PARAMS.
13646         * genattrtab.c: Likewise.
13647         * gencheck.c: Likewise.
13648         * gencodes.c: Likewise.
13649         * genconfig.c: Likewise.
13650         * genemit.c: Likewise.
13651         * genextract.c: Likewise.
13652         * genflags.c: Likewise.
13653         * gengenrtl.c: Likewise.
13654         * genopinit.c: Likewise.
13655         * genoutput.c: Likewise.
13656         * genpeep.c: Likewise.
13657         * genrecog.c: Likewise.
13658
13659 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
13660
13661         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
13662
13663 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13664
13665         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
13666         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
13667         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
13668         * configure, config.in: Rebuilt.
13669
13670 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
13671
13672         * config/i386/i386.md: Add peephole to merge successive stack
13673         adjusts.
13674
13675 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
13676
13677         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
13678         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
13679         when walking backwards to find all the parameter loads when
13680         the basic block ends in a call.
13681
13682 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13683
13684         * loop.c (this_loop_info): Delete.
13685         (uid_loop): Add in place of uid_loop_num.  All uses updated.
13686         (loop_number_exit_count): Delete and replace with entry in loop
13687         structure.  All uses updated.
13688         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13689         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13690         (loop_outer_loop): Likewise.
13691         (loop_invalid, loop_number_exit_labels): Likewise.
13692         (loop_used_count_register): Delete and replace with entry in
13693         loop_info structure.
13694         (find_and_verify_loops): Add loops argument.
13695         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
13696         loop_end, etc. arguments with loop structure pointer.  All callers
13697         changed.
13698         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
13699         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
13700         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
13701         (insert_bct): Likewise.
13702         (basic_induction_var): New argument level.
13703         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
13704         vtop, and cont.  Add used_count_register.
13705         (uid_loop): Delete declaration.
13706         (loop_number_exit_count): Likewise.
13707         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13708         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13709         (loop_outer_loop, loop_used_count_register): Likewise.
13710         (loop_invalid, loop_number_exit_labels): Likewise.
13711         (unroll_loop): Replace loop_start and loop_end arguments
13712         with loop structure pointer.
13713         (loop_precondition_p, loop_iterations): Likewise.
13714         Include basic-block.h.
13715         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
13716         with loop structure pointer.
13717         (loop_precondition_p, loop_iterations): Likewise.
13718         * basic-block.h (struct loop): New entries vtop, cont,
13719         cont_dominator, start, end, top, scan_start, exit_labels,
13720         exit_count.
13721         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
13722
13723 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13724
13725         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
13726
13727 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
13728
13729         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
13730
13731 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13732
13733         * pdp11-protos.h: New file.
13734
13735         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
13736         time warnings.
13737
13738         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
13739         warnings.
13740
13741         * pdp11.md: Likewise.
13742
13743         * 2bsd.h: Likewise.
13744
13745 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13746
13747         * mn10300-protos.h: New file.
13748
13749         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13750         time warnings.
13751
13752         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
13753         warnings.
13754
13755         * mn10300.md: Likewise.
13756
13757 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13758
13759         * mn10200-protos.h: New file.
13760
13761         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
13762         time warnings.
13763
13764         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
13765         warnings.
13766
13767         * mn10200.md: Likewise.
13768
13769 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13770
13771         * h8300-protos.h: New file.
13772
13773         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13774         time warnings.
13775
13776         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
13777         warnings.
13778
13779         * h8300.md: Likewise.
13780
13781 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13782
13783         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
13784         (asm_emit_uninitialised): Likewise.
13785
13786 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
13787
13788         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
13789         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
13790
13791 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13792
13793         * config/mips/mips.c (override_options): Don't turn on extra
13794         alignment for mips16.
13795
13796 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13797
13798         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
13799         eabi, and make sure queued POSTINCREMENT rtl is emitted at
13800         the right point.
13801
13802 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13803
13804         * builtins.c (PAD_VARARGS_DOWN): Define.
13805         (std_expand_builtin_va_arg): Use the above macro.
13806         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
13807         * tm.texi (Register Arguments): Document the above macro.
13808
13809 2000-01-14  Nick Clifton  <nickc@cygnus.com>
13810
13811         * emit-rtl.c (emit_insn): If checking is enabled, make sure
13812         that this function has not been used to emit a jump
13813         instruction.
13814
13815         * jump.c (return_jump_1): Cope with being passed a null rtx.
13816
13817 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13818
13819         * eh-common.h: PROTO -> PARAMS.
13820         * emit-rtl.c: Likewise.
13821         * errors.c: Likewise.
13822         * errors.h: Likewise.
13823         * except.c: Likewise.
13824         * except.h: Likewise.
13825         * explow.c: Likewise.
13826         * expmed.c: Likewise.
13827         * expr.c: Likewise.
13828         * expr.h: Likewise.
13829         * final.c: Likewise.
13830         * fix-header.c: Likewise.
13831         * flow.c: Likewise.
13832         * fold-const.c: Likewise.
13833         * function.c: Likewise.
13834         * function.h: Likewise.
13835         * gcc.c: Likewise.
13836         * gcov-io.h: Likewise.
13837         * gcov.c: Likewise.
13838         * gcse.c: Likewise.
13839
13840 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13841
13842         * sh-protos.h: New file.
13843
13844         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
13845         Add static prototypes.  Fix compile time warnings.
13846
13847         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
13848         * sh.md: Likewise.
13849         * elf.h: Likewise.
13850
13851 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13852
13853         * arc-protos.h: New file.
13854
13855         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
13856         time warnings.
13857
13858         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
13859         warnings.
13860
13861         * arc.md: Likewise.
13862
13863 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13864
13865         * dsp16xx-protos.h: New file.
13866
13867         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
13868         time warnings.
13869
13870         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
13871         warnings.
13872
13873         * dsp16xx.md: Likewise.
13874
13875 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13876
13877         * convex-protos.h: New file.
13878
13879         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
13880         time warnings.
13881
13882         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
13883         warnings.
13884
13885 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13886
13887         * elxsi-protos.h: New file.
13888
13889         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
13890         time warnings.
13891
13892         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
13893         warnings.
13894
13895         * elxsi.md: Likewise.
13896
13897 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13898
13899         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
13900         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
13901         match the comment for MIPS16.
13902
13903 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
13904
13905         * flow.c (split_edge): Do not call set_block_for_insn if we
13906         do not have a basic_block_for_insn structure.
13907
13908         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
13909         and destination functions are 32bit aligned within the trampoline.
13910         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
13911         (TRAMPOLINE_ALIGNMENT): Define.
13912
13913         * cse.c (cse_insn): When changing (set (pc) (reg)) to
13914         (set (pc) (label_ref)), verify the change creates a valid insn.
13915
13916         * fr30.c (call_operand): Tighten and rework to match rules for
13917         call RTL expressions.
13918         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
13919         * fr30.md (call patterns): Improve constraints.
13920
13921 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
13922
13923         * fr30.c (fr30_expand_epilogue): Revert last change.
13924         Use emit_jump_insn for the return insn.
13925
13926 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
13927                           Stan Cox  <scox@cygnus.com>
13928
13929         * predict.c: New file. Preliminary infrastructure work for static
13930         branch prediction and basic block reordering.
13931         * basic-block.h: Add prototype for estimate_probability.
13932         * Makefile.in: Add rules for predict.o.
13933
13934 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
13935
13936         * fixincludes (va_list): Use __not_va_list__ for the dummy.
13937         * fixinc/*: Likewise.
13938
13939 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13940
13941         * cccp.c: PROTO -> PARAMS.
13942         * cexp.y: Likewise.
13943         * collect2.c: Likewise.
13944         * combine.c: Likewise.
13945         * convert.h: Likewise.
13946         * cse.c: Likewise.
13947         * dbxout.c: Likewise.
13948         * dbxout.h: Likewise.
13949         * diagnostic.c: Likewise.
13950         * doprint.c: Likewise.
13951         * dwarf2out.c: Likewise.
13952         * dwarf2out.h: Likewise.
13953         * dwarfout.c: Likewise.
13954         * dwarfout.h: Likewise.
13955         * dyn-string.h: Likewise.
13956
13957 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13958
13959         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
13960         macro conditionals guarding use.
13961
13962         * dwarf2out.c: Include "tm_p.h".
13963
13964         * function.c (locate_and_pad_parm): Mark parameter with
13965         ATTRIBUTE_UNUSED.
13966         (expand_function_end): Likewise for variable `context'.
13967
13968         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
13969
13970 2000-01-13  Nick Clifton  <nickc@cygnus.com>
13971
13972         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
13973         register to prevent compile time warnings.
13974
13975 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
13976
13977         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
13978         to avoid -Wtraditional warning.
13979
13980 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13981
13982         * 1750a-protos.h: New file.
13983
13984         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
13985         time warnings.
13986
13987         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
13988         warnings.
13989
13990         * 1750a.md: Likewise.
13991
13992 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13993
13994         * a29k-protos.h: New file.
13995
13996         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
13997         time warnings.
13998
13999         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
14000         warnings.
14001
14002 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14003
14004         * clipper-protos.h: New file.
14005
14006         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
14007         time warnings.
14008
14009         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
14010         warnings.
14011
14012 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14013
14014         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
14015
14016 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
14017
14018         * configure.in (--enable-new-gxx-abi): New option.
14019         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
14020         * Makefile.in (GXX_ABI_FLAG): New variable.
14021         * configure: Regenerate.
14022
14023 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14024
14025         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
14026         * tm.texi (FORCE_STRUCT_BLK): Document.
14027         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
14028
14029 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
14030
14031         * config/ns32k/ns32k.md: Revert Jan 9 change.
14032
14033         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
14034         to a mode-test, if the predicate is address_operand.
14035
14036 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
14037
14038         * combine.c (if_then_else_cond): Be careful about what kinds
14039         of RTL expressions are passed to operand_subword.
14040
14041         * flow.c (split_edge): If we have to insert a new jump, make
14042         sure to associate it with a basic block.
14043
14044         * flow.c (commit_one_edge_insertion): A block with one successor
14045         can end in a JUMP_INSN that is not a simplejump.
14046
14047 2000-01-12  Robert Lipe  <robertl@sco.com>
14048
14049         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
14050         (BUILD_VA_LIST_TYPE): Define.
14051         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
14052         with crtstuff.c.
14053
14054 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
14055
14056         * cccp.c (do_pragma): Add cast to (char *).
14057
14058 2000-01-12  Richard Henderson  <rth@cygnus.com>
14059             Fred Fish  <fnf@be.com>
14060             Jason Merrill  <jason@cygnus.com>
14061
14062         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
14063         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
14064         * i386/beos-elf.h, i386/beos-pe.h: New files.
14065
14066         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
14067         * cross-make (SYSTEM_HEADER_DIR): Define using
14068         CROSS_SYSTEM_HEADER_DIR.
14069
14070         * gcc.c (LIBRARY_PATH_ENV): Provide default.
14071         (process_command): Use it.
14072         (main): Likewise.  Kill trailing = from env vars.
14073         (build_search_list): Put it back.
14074         * collect2.c (main): Use LIBRARY_PATH_ENV.
14075
14076         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
14077         * toplev.c: Use NEED_DECLARATION_ENVIRON.
14078
14079         * tm.texi (Frame Layout): Document SMALL_STACK.
14080         * c-common.c (c_common_nodes_and_builtins): Check it.
14081
14082         * system.h: Undef alloca after including glibc's <stdlib.h>,
14083         if USE_C_ALLOCA is defined.
14084
14085         * gcc.c (set_input): New fn.
14086         (main): After all input files are compiled, reset the input file
14087         info to the first.
14088
14089         * aclocal.m4 (rindex, index): If already defined, don't attempt
14090         to redefine.
14091
14092         * ginclude/varargs.h: (__va_list__): Define ifndef.
14093         * ginclude/stdarg.h: Likewise.
14094
14095         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
14096         instead of unsigned char.
14097
14098         * hash.h (true, false, boolean): Undef before enum.
14099
14100         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
14101         proper type of "HOST_WIDE_INT *", rather than their natural type of
14102         "unsigned HOST_WIDE_INT *".
14103
14104 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14105
14106         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
14107
14108         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
14109
14110         * regclass.c (choose_hard_reg_mode): Likewise.
14111
14112         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
14113
14114         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
14115
14116 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14117
14118         * c-common.c: PROTO -> PARAMS.
14119         * c-common.h: Likewise.
14120         * c-decl.c: Likewise.
14121         * c-iterate.c: Likewise.
14122         * c-lang.c: Likewise.
14123         * c-lex.c: Likewise.
14124         * c-lex.h: Likewise.
14125         * c-parse.in: Likewise.
14126         * c-pragma.c: Likewise.
14127         * c-pragma.h: Likewise.
14128         * c-tree.h: Likewise.
14129         * c-typeck.c: Likewise.
14130         * objc/objc-act.c: Likewise.
14131         * objc/objc-act.h: Likewise.
14132
14133 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14134
14135         * m88k-protos.h: New file.
14136
14137         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14138         time warnings.
14139
14140         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
14141
14142         * m88k.md: Likewise.
14143
14144         * tekXD88.h: Likewise.
14145
14146 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14147
14148         * m68k-protos.h: New file.
14149
14150         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
14151         time warnings.
14152
14153         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
14154
14155         * mot3300.h: Likewise.
14156
14157 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
14158
14159         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
14160         extract_bitlst.
14161         (extract_bitlist): Declare bitlen.
14162
14163 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
14164
14165         * cccp.c: Accept and ignore -lang-fortran.
14166
14167         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
14168         qualifiers don't match at any level of pointerness.
14169
14170 2000-01-12  Robert Lipe  <robertl@sco.com>
14171
14172         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
14173
14174 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
14175
14176         * reload1.c (reload_reg_unavailable): New static variable.
14177         (reload_reg_free_p): Test it.
14178         (reload_reg_free_for_value_p): Test it instead of
14179         reload_reg_used.
14180         (choose_reload_regs_init): Compute it.
14181
14182 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
14183
14184         * reorg.c (fill_slots_from_thread): Check modified_in_p
14185         before replacing.
14186
14187 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
14188
14189         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
14190         these nodes even if INTERNALS is not set.
14191
14192 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
14193
14194         * gcse.c (delete_null_pointer_checks_1): Cope when
14195         get_condition cannot determine the condition.
14196
14197 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
14198
14199         * toplev.h (set_message_length): Declare.
14200
14201         * diagnostic.c (obstack_chunk_alloc): Define macro.
14202         (obstack_chunk_free): Likewise.
14203         (struct output_buffer): New data structure.
14204         (vmessage): Remove.
14205         (output_maximum_width): New variable.
14206         (doing_line_wrapping, set_message_length, init_output_buffer,
14207         get_output_prefix, output_space_left, emit_output_prefix,
14208         output_newline, output_append, output_puts, dump_output,
14209         vbuild_message_string, build_message_string, build_location_prefix,
14210         voutput_notice, output_printf, line_wrapper_printf,
14211         vline_wrapper_message_with_location):  New functions. Implement
14212         automatic line wrapping.
14213         (v_message_with_decl): Make it handle automatic line wrapping.
14214         (v_error_with_file_and_line): Likewise.
14215         (v_warning_with_file_and_line): Likewise.
14216         (announce_function): Likewise.
14217         (default_print_error_function): Likewise.
14218
14219 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
14220
14221         * cpplib.h (struct cpp_options): Change lang_asm to char.
14222         Add lang_fortran.
14223         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
14224         done in cpp_handle_option now.
14225         (initialize_builtins): Take out special case code used only by
14226         __STDC_VERSION__.
14227         (cpp_handle_option): Turn off trigraphs and trigraph warnings
14228         if -traditional.  Recognize -lang-fortran and set
14229         lang_fortran, also turn off cplusplus_comments.
14230         (print_help): Document -lang-fortran.
14231         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
14232         lang_asm. Ignore all directives other than `# 123 "file"' if
14233         CPP_PREPROCESSED.
14234         (cpp_get_token): If -traditional, don't recognize directives
14235         unless the # is in column 1.
14236         (parse_string): If lang_fortran or lang_asm, silently
14237         terminate strings ('' or "") at end of line.
14238         Remove unnecessary braces.
14239
14240 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14241             Richard Henderson  <rth@cygnus.com>
14242
14243         * resource.c (mark_referenced_resources): Mark a set strict_low_part
14244         as used.
14245         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
14246         strict_low_part when possible.
14247
14248 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14249
14250         * alias.c: PROTO -> PARAMS.
14251         * basic-block.h: Likewise.
14252         * bitmap.c: Likewise.
14253         * bitmap.h: Likewise.
14254         * builtins.c: Likewise.
14255         * c-aux-info.c: Likewise.
14256         * caller-save.c: Likewise.
14257         * calls.c: Likewise.
14258
14259 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14260
14261         * Makefile.in (toplev.o): Depend on regs.h.
14262
14263         * output.h (tdesc_section): Prototype.
14264
14265         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
14266
14267         * sdbout.c: Include "tm_p.h".
14268
14269         * toplev.c: Include "regs.h".
14270
14271 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
14272
14273         * unroll.c (unroll_loop): Add EH support.
14274
14275 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14276
14277         * pa-protos.h: New file.
14278
14279         * pa.c: Include recog.h and tm_p.h.
14280         (compute_zdepwi_operands, compute_movstrsi_length,
14281         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
14282         find_addr_reg, import_milli): Add static prototypes.
14283         (pa_cpu_string, pa_arch_string): Constify a char*.
14284         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
14285         (read_only_operand): Add argument `mode'.
14286         (singlemove_string, output_move_double, output_fp_move_double,
14287         output_block_move, output_and, output_ior, output_ascii,
14288         remove_useless_addtr_insns, milli_names, output_mul_insn,
14289         output_div_insn, output_mod_insn, output_arg_descriptor,
14290         output_cbranch, output_bb, output_bvb, output_dbra, ,
14291         output_millicode_call, output_call, hppa_encode_label,
14292         output_parallel_movb, output_parallel_addb): Constify a char*.
14293         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
14294         (output_parallel_addb): Remove extra arg to `constrain_operands'
14295
14296         * pa.h:  Move all prototypes to pa-protos.h.
14297         (pa_cpu_string, pa_arch_string): Constify a char*.
14298         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
14299
14300         * pa.md: Call `function_label_operand' with mode argument.
14301         Likewise for `read_only_operand'.
14302         Fix nesting of parens in call to `symbolic_operand'.
14303
14304 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14305
14306         * i860-protos.h: New file.
14307
14308         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
14309         time warnings.
14310
14311         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
14312
14313         * i860.md: Likewise.
14314
14315 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
14316
14317         * i386.md (movstrsi expander): Rewrite.
14318         (movstrsi_1 insn): Deleted.
14319         (strmovhi, strmovqi expander): New expanders.
14320         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
14321         * i386.c (x86_single_stringop): New global variable.
14322         * i386.h (x86_single_stringop): Declare.
14323         (TARGET_SINGLE_STRINGOP): New macro.
14324
14325 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
14326
14327         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
14328         integer vararg POSTINCREMENT before the destination of the jump
14329         for the hard fp case.
14330         (function_arg_pass_by_reference): Pass a copy of CUM to
14331         FUNCTION_ARG.
14332
14333         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
14334         for CONSTANT_ADDRESS_P above while loop for subreg.
14335
14336 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
14337
14338         * flow.c (propagate_block): When a prologue/epilogue insn
14339         is marked dead, unconditionally clear libcall_is_dead and
14340         insn_is_dead, and only dump rtl if warnings aren't being
14341         suppressed.
14342
14343 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
14344
14345         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
14346         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
14347         (FIXED_REGISTERS): Set dirflag as fixed.
14348         (CALL_USED_REGISTERS): Set dirflag as used.
14349         (REG_ALLOC_ORDER): Set dirflag as last one.
14350         (DIRFLAG_REG): New macro.
14351         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
14352         (HI_REGISTER_NAMES): Add dirflag.
14353         (DEBUF_PRINT_REG): Handle dirflag.
14354         * i386.md (type attribute): New cld and str types.
14355         (length_opcode attribute): Set cld and str to 1.
14356         (memory attribute): Set str to unknown - it is not clear from the
14357         patterns.
14358         (pent_np function unit): Prefixed string operations takes 12 cycles
14359         minimally; cld takes 2 cycles.
14360         (ppro_uops attribute): Str is "many" and cld is "few".
14361         (ppro_p0 unit): Handle cld here.
14362         (k6_alux unit): Handle cld and str types.
14363         (k6_load unit): It is ocupied by str opcodes.
14364         (k6_store unit): It is ocupied by str opcodes.
14365         (athlon_decode): Str is vector decoded.
14366         (athlon_ieu): Handle str and cld.
14367         (cld pattern): New.
14368         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
14369         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
14370         cmpstrsi_nz_1 insn): Do not output cld instruction
14371
14372 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
14373
14374         * gcc.texi (G++ and GCC): Add Java and Chill.
14375         (Bug Critera): Don't list languages.
14376
14377         * gcc.texi (Incompatibilities): No longer claim most C compilers
14378         are K&R.
14379
14380         * gcc.texi (G++ and GCC): Update other front-ends list.
14381
14382 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
14383
14384         * i386.c (ix86_expand_setcc): Fix typo.
14385         (ix86_expand_movcc): Similarly.
14386
14387         * Band-aid until haifa's bitset implementation is nuked.
14388         * haifa-sched.c (extract_bitlst): New parameter for size of the
14389         bitset in bits.  All callers changed.  Avoid looking at undefined
14390         bits in the bitset.
14391         (edgeset_bitsize): New variable.
14392         (schedule_region): Initialize edgeset_bitsize.
14393
14394 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14395
14396         * Makefile.in (optabs.o): Depend on real.h
14397         (resource.o): Depend on insn-attr.h
14398
14399         * builtins.c (result_vector): Wrap prototype in macro conditions
14400         governing definition and use.
14401
14402         * c-common.c: Include tm_p.h.
14403
14404         * c-lex.c: Likewise.
14405
14406         * elfos.h: Constify a char*.
14407
14408         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
14409         (get_attr_length, shorten_branches, profile_after_prologue): Mark
14410         parameter with ATTRIBUTE_UNUSED.
14411
14412         * fold-const.c (exact_real_inverse): Wrap variable `i' in
14413         CHECK_FLOAT_VALUE.
14414
14415         * haifa-sched.c (schedule_insns): Mark parameter with
14416         ATTRIBUTE_UNUSED.
14417
14418         * optabs.c: Include real.h.
14419
14420         * real.h (ereal_atof): Add prototype arguments.
14421
14422         * resource.c: Include insn-attr.h.
14423
14424         * sdbout.c (sdbout_queue_anonymous_type,
14425         sdbout_dequeue_anonymous_types): Wrap in macro
14426         SDB_ALLOW_FORWARD_REFERENCES.
14427         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
14428         ATTRIBUTE_UNUSED.
14429
14430         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
14431
14432         * stupid.c: Include tm_p.h.
14433
14434         * tree.c (real_value_from_int_cst): Mark parameter with
14435         ATTRIBUTE_UNUSED.
14436
14437 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14438
14439         * i960-protos.h: New file.
14440
14441         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
14442         time warnings.
14443
14444         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
14445
14446 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14447
14448         * combine.c (expand_field_assignment): Do not discard SUBREGs
14449         while computing nonzero_bits.
14450
14451 2000-01-09  Nick Clifton  <nickc@cygnus.com>
14452
14453         * config/arm/arm.c: Fix compile time warnings about signed vs
14454         unsigned constants.
14455         * config/arm/arm.h: Fix compile time warnings about signed vs
14456         unsigned constants.
14457
14458 2000-01-09  Philip Blundell  <philb@gnu.org>
14459
14460         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
14461         than `ldm' with only one register.
14462         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
14463         only one register.
14464
14465         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
14466         clobbered.
14467
14468 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
14469
14470         * config/ns32k/ns32k.md (load or push effective address): Operand 1
14471         must have SImode.
14472
14473 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14474
14475         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
14476         assignment used as truth value.
14477
14478         * function.c (assign_temp): Mark parameter `dont_promote' with
14479         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
14480         PROMOTE_FOR_CALL_ONLY.
14481
14482         * genrecog.c (write_subroutine): Mark variable `operands' with
14483         ATTRIBUTE_UNUSED.
14484
14485         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
14486         ATTRIBUTE_UNUSED.
14487
14488         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
14489         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
14490
14491         * toplev.c (note_deferral_of_defined_inline_function): Likewise
14492         for `decl'.
14493
14494 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14495
14496         * config/c4x.h: Tidy up comments.
14497         * config/c4x.c: Likewise.
14498
14499 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
14500
14501         * fold-const.c (lshift_double, rshift_double): Handle
14502         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
14503
14504 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14505
14506         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
14507         in prepare_function_start().
14508
14509 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
14510
14511         * config/v850/v850.c (expand_epilogue): Interrupt functions no
14512         longer allocate extra stack for function calls.
14513
14514 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14515
14516         * config/c4x/c4x.md (*subqf3_set): Fix typo.
14517
14518 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14519
14520         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
14521
14522 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
14523
14524         * rs6000.c (processor_target_table): Add power3 as alias for 630.
14525         * aix43.h: Revert Aug 2 change.
14526         (HAS_INIT_SECTION): Define, not visible yet.
14527         (LD_INIT_SWITCH): Define, not visible yet.
14528         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
14529
14530         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
14531
14532         * collect2.c (main): Expand ld2 size further.
14533         (export_object_lst): Cast assignment to avoid warning.
14534         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
14535         (scan_prog_file, COFF): Do not collect initialization or
14536         finalization functions generated for entire shared object if
14537         init/fini support present.
14538
14539 2000-01-07  Nick Clifton  <nickc@cygnus.com>
14540
14541         * config/elfos.h: Tidy up formatting of marcos.  Make sure
14542         that .section directives are always prefixed by a tab.
14543
14544         * config/svr4.h: Add #include "elfos.h" and remove duplicate
14545         definitions.
14546
14547 2000-01-07  Matt Austern  <austern@sgi.com>
14548
14549         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
14550         expon.
14551
14552 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
14553
14554         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
14555         crtstuff.c.
14556         (crtbegin.o, s-crtS): Likewise.
14557
14558 2000-01-06  Richard Henderson  <rth@cygnus.com>
14559
14560         * alpha.md (adddi_2+1): Limit offset such that it will be
14561         loadable with a single ldah+lda pair.
14562         (adddi_2+2): Explicitly fail split if we can't make it work.
14563
14564 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
14565
14566         * protoize.c: Conditionally include unistd.h.
14567         (IS_SAME_PATH_CHAR): New macro.
14568         (IS_SAME_PATH): New macro.
14569         (CPLUS_FILE_SUFFIX): New macro.
14570         (cplus_suffix): New static variable.
14571         (is_abspath): New static function.
14572         (in_system_include_dir): Handle DOS style pathnames.
14573         (file_could_be_converted): Likewise.
14574         (file_normally_convertible): Likewise.
14575         (directory_specified_p): Likewise.
14576         (file_excluded_p): Likewise.
14577         (abspath): Likewise.
14578         (shortpath): Likewise.
14579         (referenced_file_is_newer): Likewise.
14580         (save_def_or_dec): Likewise.
14581         (do_processing): Likewise.
14582         (main): Likewise.
14583         (edit_file): Likewise. Use rename instead of link.
14584         (rename_c_file): Likewise. Don't rename syscalls file.
14585         (munge_compile_params): Define null device for DOS based systems.
14586         (process_aux_info_file): Use binary mode if appliable.
14587         (edit_file): Likewise.
14588         * invoke.texi (Running Protoize): Document C++ suffixes used.
14589
14590         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
14591         IS_DIR_SEPARATOR macros.
14592         * collect2.c: Likewise.
14593         * cppinit.c: Likewise.
14594         * dwarf2out.c: Likewise.
14595         * gcc.c: Likewise.
14596         * gcov.c: Likewise.
14597         * prefix.c: Likewise.
14598         * rtl.c: Likewise.
14599         * toplev.c: Likewise.
14600         * system.h: And move to here.
14601
14602         * prefix.c (update_path): Fix typo in variable name.
14603
14604 2000-01-06  Richard Henderson  <rth@cygnus.com>
14605
14606         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
14607         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
14608         (count_reg_sets_1, count_reg_references): Likewise.
14609         (flow_loops_level_compute): Start counting actual loop depth at 1.
14610         (flow_loops_find): Likewise.
14611         * local-alloc.c (update_equiv_regs): Likewise.
14612         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
14613
14614 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
14615
14616         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
14617         FIRST_PSEUDO_REGISTER
14618         * dwarf2out.c: Don't include frame.h
14619         * dwarfout.c: Likewise
14620         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
14621         frame.h
14622
14623 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
14624
14625         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
14626         dead registers.
14627
14628         * i386.c (movsf splitter): Fix typo in my last checkin.
14629
14630 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14631
14632         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
14633         own definition of this macro.
14634         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
14635         flag_data_sections or UNIQUE_SECTION_P are true.
14636
14637         * tm.texi (UNIQUE_SECTION): Document that it can be called for
14638         unitialised data decls.
14639
14640         * config/i386/winnt.c (i386_pe_unique_section): Cope with
14641         being called for uninitialised data.
14642
14643         * config/i386/interix.c (i386_pe_unique_section): Cope with
14644         being called for uninitialised data.
14645
14646         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
14647         for uninitialised data.
14648
14649         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
14650         for uninitialised data.
14651
14652         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
14653         for uninitialised data.
14654
14655         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
14656         (UNIQUE_SECTION_P): Always generate a unique section if
14657         flag_data_sections is true.
14658         (UNIQUE_SECTION): Also generate unique sections for
14659         uninitialised data.
14660         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
14661         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
14662         named_section().
14663
14664 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14665
14666         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
14667         SI, or DI.
14668
14669 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14670
14671         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
14672         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
14673         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
14674         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
14675         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
14676
14677         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
14678
14679 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
14680
14681         * c-decl.c (finish_enum): Simplify code to determine minimum and
14682         maximum values of the enum, and calculate the type.  Remove check
14683         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
14684         the DECL_INITIAL of each enumeration constant with a copy converted
14685         to the enumeration type.  When updating variant types, don't bother
14686         updating the type itself.
14687
14688         * c-typeck.c (build_binary_op): Simplify conditional expressions
14689         when weeding out spurious signed-unsigned warnings.  Add new
14690         spurious warning category: if the unsigned quantity is an enum
14691         and its maximum value fits in signed_type(result_type).  Update
14692         commentary.
14693         (build_conditional_expr): Warn here if one alternative is signed
14694         and the other is unsigned.
14695
14696 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14697
14698         * config/fr30/fr30.h: Remove extraneous comments.
14699
14700 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
14701
14702         * reload1.c (choose_reload_regs): When disabling a reload, also
14703         set reload_spill_index to -1.
14704
14705 2000-01-04  Joel Sherrill (joel@OARcorp.com>
14706
14707         * configure.in (m68*-*-rtemscoff*): New target, formal name for
14708         old m68*-*-rtems*.
14709         (m68*-*-rtemself*): New target.
14710         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
14711         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
14712         (sparc*-*-rtemself*): New target.
14713         (sparc*-*-rtems*): Now elf not a.out.
14714         * config/i386/rtems.h: Include config/rtems.h.
14715         * config/i386/rtemself.h: Include config/rtems.h.
14716         * config/i960/rtems.h: Include config/rtems.h.
14717         * config/m68k/rtems.h: Include config/rtems.h.
14718         * config/m68k/rtemself.h: Include config/rtems.h.
14719         * config/mips/rtems64.h: Include config/rtems.h.
14720         * config/pa/rtems.h: Include config/rtems.h.
14721         * config/rs6000/rtems.h: Include config/rtems.h.
14722         * config/sh/rtems.h: Include config/rtems.h.
14723         * config/sh/rtemself.h: Include config/rtems.h.
14724         * config/sparc/rtems.h: Include config/rtems.h.
14725         * config/sparc/rtemself.h: Include config/rtems.h
14726
14727 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
14728
14729         * final.c (shorten_branches): Correctly compute length of
14730         asms without operands.
14731
14732 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
14733
14734         * configure.in: Add pj target.
14735         * configure: Regenerate.
14736         * config/pj: New directory.
14737         * config/pj/lib1funcs.S: New file.
14738         * config/pj/linux.h: New file.
14739         * config/pj/pj.c: New file.
14740         * config/pj/pj.md: New file.
14741         * config/pj/pjl.h: New file.
14742         * config/pj/t-pj: New file.
14743         * config/pj/xm-pj.h: New file
14744
14745 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
14746
14747         * toplev.c (rest_of_compilation): Run shorten-branches before
14748         reg-stack for now.
14749
14750 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14751
14752         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
14753         macros so that they're consistent with their names.
14754         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14755         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14756
14757 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14758
14759         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
14760         modified inadvertently.
14761
14762 2000-01-04  Joel Sherrill <joel@OARcorp.com>
14763
14764         * configure.in (v850*-*-rtems*): New target.
14765         * configure: Regenerate.
14766         * config/v850/rtems.h: New file.
14767
14768 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
14769
14770         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
14771         (__gthread_key_create): Likewise.
14772         (__gthread_key_dtor):  Likewise.
14773         (__gthread_once): Fix logic.
14774         (__gthread_key_delete): Cast away constness.
14775
14776         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
14777         * invoke.texi: Document.
14778         * i386/mingw32.h (CPP_SPEC): Use.
14779         (LIBGCC_SPEC): Likewise.
14780         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
14781
14782 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14783
14784         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
14785         (HANDLE_PRAGMA_PACK): Undefine.
14786         (SLOW_UNALIGNED_ACCESS): Define.
14787
14788 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14789
14790         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14791         to default definition.
14792         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
14793         (store_fixed_bit_field): Call macro with word_mode and alignment.
14794         (extract_bit_field): Call macro with relevant mode and alignment.
14795         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14796         to default definition.
14797         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
14798         and alignment.
14799         (move_by_pieces_ninsns): Likewise.
14800         (clear_by_pieces): Likewise.
14801         (emit_push_insn): Likewise.
14802         (store_field): Call macro with relevant mode and alignment.
14803         (expand_expr): Likewise.
14804         (expand_expr_unaligned): Likewise.
14805
14806         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
14807         (SLOW_UNALIGNED_ACCESS): Define.
14808         (CASE_VECTOR_MODE): Always use 32-bit offsets.
14809         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
14810         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
14811         (toc_section): Likewise and .toc pseudo-op.
14812         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
14813         64-bit mode.
14814         (TEXT_SECTION_ASM_OP): Likewise.
14815         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
14816         32-bit offsets.
14817
14818         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
14819         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
14820         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
14821         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
14822         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
14823
14824 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
14825
14826         * regclass.c: Revert my Jan 4 change to loop cost computation.
14827
14828 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14829
14830         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
14831         compilation.
14832
14833 2000-01-04  Stan Cox  <scox@cygnus.com>
14834
14835         * haifa-sched.c (build_control_flow): Change unreachable simple
14836         loop test to check if current block has only one predecessor.
14837         (find_rgns): Initialize degree.  Use dest as degree index, not src.
14838
14839 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14840
14841         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
14842
14843         * calls.c (expand_call): Likewise for
14844         `old_stack_arg_under_construction'.
14845
14846         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
14847
14848         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
14849         `save_constant'.
14850
14851         * gcc.c (execute): Likewise for `ut' and `st'.
14852
14853         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
14854
14855         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
14856
14857         * jump.c (jump_optimize_1): Likewise for `temp2'.
14858
14859         * local-alloc.c (block_alloc): Likewise for `r1'.
14860
14861         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
14862
14863         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
14864         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
14865
14866         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
14867         and `set2'.
14868
14869         * reload.c (find_reloads): Likewise for `goal_alternative_number'
14870         and `goal_earlyclobber'.
14871
14872         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
14873
14874         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
14875
14876         * stupid.c (stupid_life_analysis): Likewise for `chain'.
14877
14878         * unroll.c (copy_loop_body): Likewise for `copy'.
14879
14880         * varasm.c (output_constructor): Likewise for `byte'.
14881
14882 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14883
14884         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
14885         all FP constants for constant->reg moves.
14886         (ix86_split_to_parts): Try to convert memory address into immediate
14887         when available in the constant pool.
14888         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
14889         moves.
14890         (LEGITIMATE_CONSTANT_P): Return 1.
14891         * i386.md (pushsf): New splitter to convert constant pool memory
14892         reference to immediate.
14893         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
14894         reload.
14895
14896 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
14897
14898         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
14899         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
14900         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
14901         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
14902         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
14903
14904 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
14905
14906         * ginclude/stdbool.h:  Support compilation as C++.
14907
14908 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14909
14910         * fold-const.c (make_range): Don't try to reverse an unbounded range.
14911
14912 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
14913
14914         * regclass.c (regclass): Properly compute loop_cost.  Adjust
14915         comments.
14916
14917         * regclass.c: Fix minor whitespace problems.
14918
14919 2000-01-03  Anthony Green  <green@cygnus.com>
14920
14921         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
14922         Restore the pic register if required.
14923
14924 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
14925
14926         * c-common.c (format_char_info): Update comment.
14927         (check_format_info): Recognize 'z' modifier in the same way 'Z'
14928         was recognized.  Emit warning for formats new in ISO C99 only
14929         if flag_isoc9x is not set.
14930
14931 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
14932
14933         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
14934
14935 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14936
14937         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
14938         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
14939         (make_compound_operation): Choose cheaper alternative between
14940         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
14941
14942         * regclass.c (op_costs): Remove global variable.
14943         (record_reg_classes): New parameter "op_costs" and "reg_pref".
14944         (record_operand_costs): Break out from ...
14945         (scan_one_insn): ... here.
14946         (dump_regclass): Make dumps nicer.
14947         (regclass): Dump preferrences choosed and changes done during passes.
14948
14949 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
14950
14951         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
14952
14953 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
14954
14955         * config/sparc/sparc.c (gen_df_reg): New function.
14956         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
14957         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
14958         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
14959         movtf_cc_reg_sp64+1): Use it.
14960
14961 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
14962
14963         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
14964         copied LABEL_DECLs.
14965
14966 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14967
14968         * config/i386/i386.c (ix86_expand_unary_operator): Function
14969         definition made void.
14970         (ix86_expand_binary_operator): Update outdated preceding comment.
14971         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
14972         prototype.
14973
14974         * config/i386/i386.c (override_options): Fix option-name typo.
14975
14976 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
14977
14978         * system.h (CEIL): Define.
14979         * builtins.c (CEIL): Remove.
14980         * expmed.c (CEIL): Likewise.
14981         * expr.c (CEIL): Likewise.
14982         * stor-layout.c (CEIL): Likewise.
14983
14984 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
14985
14986         * expr.c (store_constructor_field): Fix typo introduced with last
14987         gcc2 merge.
14988
14989 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
14990
14991         * tree.h (BINFO_N_BASETYPES): New macro.
14992
14993 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
14994
14995         * expmed.c (emit_store_flag): Prevent losing a pending stack
14996         adjust the same way we prevent losing queued increments.
14997
14998 See ChangeLog.2 for earlier changes.