OSDN Git Service

* jump.c (redirect_jump): Add delete_unused argument. Don't
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-19  Richard Henderson  <rth@cygnus.com>
2
3         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4         remove labels and code following when LABEL_NUSES goes to zero.
5         (invert_jump): Likewise.
6         (jump_optimize_1): Fix redirect/invert arguments.
7         (do_cross_jump, thread_jumps): Likewise.
8         * flow.c (split_edge): Likewise.
9         * reorg.c (optimize_skip): Likewise.
10         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
11         * profile.c (instrument_arcs): Likewise.
12         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
13         * rtl.h: Update prototypes.
14
15 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
16
17         * ssa.c (convert_from_ssa): Tell life_analysis we need death 
18         notes.
19         (make_regs_equivalent_over_bad_edges): Only look at abnormal
20         critical edges.
21
22 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
23
24         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
25         past l1 when deleting whitespace and markers.              
26
27         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
28         * cpplib.c (do_unassert): Put the list to compare against on
29         the stack.
30
31 2000-05-19  Bruce Korb  <bkorb@gnu.org>
32
33         * fixinc/README:  cleaned up old documentation
34         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
35         * fixinc/check.tpl: compute the list of needed directories
36         emit "#if defined(name)" because of conflict
37         omit machine name differences from output differences
38         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
39         (machine_name): change test text to use `sed' markers
40         * fixinc/fixincl.x: regen
41
42 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43
44         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
45         a CONSTRUCTOR.
46
47 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
48
49         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
50         it to match the current practice.
51
52 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
53
54         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
55
56 2000-05-18  Richard Henderson  <rth@cygnus.com>
57
58         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
59         * rtl.h (insn_dependant_p): Declare it.
60         * loop.c (strength_reduce): Use it.
61
62 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
63
64         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
65         16-bit and 64-bit clean-up.
66
67 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
68
69         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
70         * configure: Rebuilt.
71
72 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
73
74         * genopinit.c: Use $ for escape sequences in optab patterns.
75         Remove backslashes from optab patterns.  Change $A, $B, $C to
76         expand to (int) whatever instead of just whatever; remove
77         explicit (int) from all optab patterns.
78
79         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
80         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
81         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
82         genrecog.c: Remove private copies of xmalloc, xrealloc, and
83         xstrdup.
84
85 2000-05-18  Richard Henderson  <rth@cygnus.com>
86
87         * jump.c (jump_optimize_1): Base minimum insn count during
88         find_cross_jump on BRANCH_COST.
89
90 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
91
92         * print-rtl.c (print_rtx): Only print note line number as string
93         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
94         * final.c (final_scan_insn): Do nothing for note line number 0.
95
96 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
97
98         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
99         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
100         NOTE_INSN_DELETED_LABEL.
101
102 2000-05-18  Nick Clifton  <nickc@cygnus.com>
103
104         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
105         uninitialised data in .rodata not .bss, and do not interpret an
106         error in the initialisation value as meaning that the variable
107         should be placed in the .bss section.
108
109 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
110
111         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
112         not `$ac_cv_prog_cc_cc_c_o'.
113         * configure: Regenerated.
114
115 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
116             Richard Henderson  <rth@cygnus.com>
117
118         * c-common.h (enum c_tree_index): Add g77 type entries.
119         (g77_integer_type_node, g77_uinteger_type_node): New.
120         (g77_longint_type_node, g77_ulongint_type_node): New.
121         * c-decl.c (init_decl_processing): Initialize them.
122
123 2000-05-18  Richard Henderson  <rth@cygnus.com>
124
125         * config/h8300/h8300.md (subs patterns): Use %G to negate.
126
127         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
128         (small_power_of_two): Likewise; use exact_log2.
129         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
130         (output_adds_subs): Remove.
131         (two_insn_adds_subs_operand): New.
132         (split_adds_subs): New.
133         * config/h8300/h8300-protos.h: Update.
134         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
135         (CONST_OK_FOR_L): Match strict adds operands.
136         (CONST_OK_FOR_N): Match struct subs operands.
137         * config/h8300/h8300.md (adds_subs insns): Remove.
138         (addhi patterns): Output adds/subs directly.
139         (addsi_h8300h): Likewise.
140         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
141
142 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
143
144         * cppexp.c (parse_assertion): New.
145         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
146         (_cpp_parse_expr): Remove case '#'.  Don't set
147         parsing_if_directive.
148         * cpphash.c (collect_objlike_expansion,
149         collect_funlike_expansion, collect_params,
150         _cpp_create_definition): The list no longer has a trailing
151         VSPACE token.
152         * cpphash.h (enum node_type): Add T_ASSERTION.
153         (struct hashnode): Remove aschain, add pred.
154         (struct predicate): New.
155         Update prototypes.
156
157         * cpplex.c (expand_token_space): Handle both offset and
158         nonoffset lists.
159         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
160         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
161         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
162         _cpp_equiv_toklists): New.
163         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
164         stop at any single-character token, not just newline.
165         (_cpp_lex_token): Remove special cases for #define and #if.
166         (cpp_get_token): Expect # as a separate token type.  Remove
167         DIRECTIVE case.
168         (_cpp_get_directive_token): Remove DIRECTIVE case.
169         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
170
171         * cpplib.c (_cpp_check_directive): Set dirno and
172         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
173         (_cpp_handle_directive): Run # <number> through the same logic
174         as normal directives.
175         (do_define): Don't set parsing_define_directive.  Use
176         _cpp_scan_until.  The list does not have a VSPACE at the end.
177         (do_if): Save, clear, and restore only_seen_white around 
178         _cpp_parse_expr.
179         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
180         (do_assert, do_unassert): Rewrite.
181
182         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
183         (LIST_OFFSET): New flag.
184         (struct cpp_toklist): Replace dir_handler and dir_flags with
185         dirno and flags.
186         (struct cpp_reader): Remove parsing_if_directive and
187         parsing_define_directive.
188
189 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
190
191         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
192         following the cabs decl which terminate on the following line.
193         Add the corresponding test_text case.
194
195 2000-05-18  Neil Booth  <NeilB@earthling.net>
196
197         * cppinit.c (cpp_reader_init): Initialise col_adjust and
198         default tab stop size.
199         (no_num, OPT_ftabstop): New.
200         (handle_option): Handle "ftabstop=" command-line option.
201         (print_help): Document it.
202         * cpplex.c (COLUMN): Remove.
203         (handle_newline): Reset col_adjust.
204         (skip_whitespace): Update col_adjust as tabs encountered.
205         (_cpp_lex_line): Update to use col_adjust.  Call
206         skip_whitespace for all whitespace.
207         * cpplib.h (struct cpp_options): New member tabstop.
208         (struct cpp_reader): New member col_adjust.
209         (CPP_BUF_COL): Update.
210         (CPP_BUF_COLUMN): New.
211         * cpp.texi: Document "-ftabstop=" command line option.
212
213 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
214
215         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
216         files.
217         * configure: Rebuilt.
218
219 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
220
221         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
222
223         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
224         HOST_BITS_PER_WIDE_INT is >= 64.
225
226 2000-05-17  Richard Henderson  <rth@cygnus.com>
227
228         * jump.c (jump_optimize_1): Remove inactive but real insns
229         in jump-to-next-insn optimization.
230
231 2000-05-17  Richard Henderson  <rth@cygnus.com>
232
233         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
234         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
235         Don't call recompute_reg_usage if no_new_pseudos is true.
236         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
237         Return true if we did work; update global life information.
238         * basic-block.h (optimize_mode_switching): Update decl.
239
240 2000-05-17  Neil Booth  <neilb@earthling.net>
241
242         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
243
244 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
245
246         * cpplib.c: New feature, #pragma system_header.
247         * cpp.texi: Document special treatment of system headers, and
248         the various mechanisms to get a header that special treatment.
249
250 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
251
252         * system.h (offsetof): Define at the very end, to ensure we prefer
253         the platform's definition if available.
254
255 2000-05-16  Bruce Korb  <bkorb@gnu.org>
256
257         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
258         * fixinc/server.c: likewise
259         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
260         + #ifdef debugging code + use #def constant for
261         sub-pattern count
262         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
263         on C++ math namespace
264
265 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
266
267         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
268         Don't check the return value of sprintf.  Use asprintf to avoid
269         buffer overflows.
270
271 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
272
273         * flags.h (warn_unused_function, warn_unused_label,
274         warn_unused_parameter, warn_unused_variable, warn_unused_value):
275         Replace ``warn_unused''.
276         (set_Wunused): Add declaration.
277         * toplev.c (set_Wunused): New function.
278         (warn_unused_function, warn_unused_label, warn_unused_parameter,
279         warn_unused_variable, warn_unused_value): New variables.
280         (W_options): Add -Wunused-function, -Wunused-function,
281         -Wunused-label, -Wunused-parameter, -Wunused-variable and
282         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
283
284         * toplev.c (decode_W_option): Update -Wunused flags by calling
285         set_Wunused.
286         * c-decl.c (c_decode_option): Ditto for -Wall.
287
288         * stmt.c (expand_expr_stmt, expand_expr_stmt,
289         warn_about_unused_variables): Replace warn_unused with more
290         explicit warn_unused_value et.al.
291         * function.c (expand_function_end): Ditto.
292         * c-typeck.c (internal_build_compound_expr,
293         internal_build_compound_expr): Ditto.
294         * c-decl.c (poplevel, pop_label_level): Ditto.
295         * toplev.c (check_global_declarations): Replace warn_unused with
296         check for either warn_unused_function or warn_unused_variable.
297
298         * gcc.1, invoke.texi (Warning Options): Document
299         -Wunused-function, -Wunused-function, -Wunused-label,
300         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
301
302 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
303
304         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
305         $(srcdir), not in the current directory.
306
307 2000-05-16  Richard Henderson  <rth@cygnus.com>
308
309         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
310         assembler supports it.
311         (.fini, .init): Use a gp-relative indirect call.
312         (__do_global_dtors_aux): Preserve the gp; rebundle.
313         (__do_frame_setup): Likewise.
314         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
315         (.init): Use a gp-relative indirect call.
316         (__do_global_ctors_aux): Preserve the gp.
317
318 2000-05-16  Richard Henderson  <rth@cygnus.com>
319
320         * flow.c (commit_one_edge_insertion): Be prepared for a return
321         insn to be inserted on the edge with a normal jump.
322         * jump.c (jump_optimize_1): Don't look to create return isns.
323
324         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
325         * jump.c (jump_optimize_1): Likewise.
326         (returnjump_p): Verify the argument is a JUMP_INSN.
327         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
328
329 2000-05-16  Nick Clifton  <nickc@cygnus.com>
330
331         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
332         GET_RTX_CLASS (GET_CODE ()) == 'i'.
333         (large_insn_p): Ditto.
334         (m32r_is_insn): New function: Return true if the insn contains
335         an executable instruction.
336         (m32r_adjust_insn): Use m32r_is_insn.
337         (m32r_sched_reorder): Use m32r_is_insn.
338         (m32r_sched_variable_issue): Use m32r_is_insn.
339
340 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
341
342         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
343         VAR_DECL.
344
345         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
346
347         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
348         according to given options.
349
350 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
351
352         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
353         if X has VOIDmode either.
354         (LIMIT_RELOAD_CLASS): Similarly.
355
356         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
357         not "general_operand" to match the processor's capabilities.
358
359 2000-05-16  Bruce Korb  <bkorb@gnu.org>
360
361         * fixinc/README:  corrected return address
362         * fixinc/check.diff:  regenerate, now that test works
363         * fixinc/fixfixes.c(format_fix,format_write): reformatted
364         (char_macro_def_fix,char_macro_use_fix): corrected and
365         rewrote to use regex to parse the text
366         * fixinc/inclhack.def: more testing
367         * fixinc/fixincl.x:  regenerated
368
369         * fixinc/inclhack.def: added several "test_text" attributes
370         changed several fixes to use `c_fix = format'
371         re-alphabetized the fixes
372
373         * fixinc/check.diff: regenerate
374         * fixinc/fixincl.x: regenerate
375         * fixinc/check.tpl: added `sparc' and `netinet' to the list
376         of created dirs
377
378
379 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
380
381         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
382
383 2000-05-15  Richard Henderson  <rth@cygnus.com>
384
385         * toplev.c (rest_of_compilation): Run full jump pass before
386         find_basic_blocks of flow2.
387
388 2000-05-15  Richard Henderson  <rth@cygnus.com>
389
390         * jump.c: Fix typos and clarify commentary from last change.
391         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
392         (safe_to_remove_jump_p): Remove.
393         (condjump_label): Use pc_set.
394
395 2000-05-15  Richard Henderson  <rth@cygnus.com>
396
397         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
398         that get in the way after reload.
399         (cond_exec_process_if_block): Skip a label heading THEN block.
400
401 2000-05-15  Richard Henderson  <rth@cygnus.com>
402
403         * varasm.c (output_constant_pool): Abort instead of converting
404         (improperly) deleted labels to zero.
405
406 2000-05-16  Neil Booth  <NeilB@earthling.net>
407
408         * cpplex.c (parse_string2): Update comment.
409         (cpp_lex_line): No special assertion treatment for '('.
410         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
411         * cpplib.h (SYNTAX_ASSERT): Remove.
412
413 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
414
415         * jump.c (condjump_p):  Mark as depreached.
416         (any_condump_p): New.
417         (any_uncondump_p): New.
418         (pc_set): New.
419         (safe_to_remove_jump_p): New.
420         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
421         safe_to_remove_jump_p): Declare.
422
423 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
424
425         * calls.c: Re-install both patches reverted by last patch.
426         (struct arg_data): New field tail_call_reg.
427         (initialize_argument_information): Initialize tail_call_reg
428         (load_register_parameters): New argument flags, use
429         tail_call_reg when emiting tail call sequence.
430         (expand_call): Update call of load_register_parameters;
431         copy unadjusted_args_size to adjusted_args_size.
432
433 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
434
435         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
436         and bct_p parameters to flags.
437         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
438         * rtl.h (loop_optimize): Update prototype.
439         * toplev.c (rest_of_compilation): Update call of loop_optimize.
440
441 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
442
443         * calls.c (expand_call): Move expand_start_target_temps call after
444         start_sequence().
445
446 2000-05-15  Neil Booth  <NeilB@earthling.net>
447
448         * cpphash.c (trad_stringify, warn_trad_stringify,
449         collect_params): Make some pointers pointers to const.
450         * cpplex.c (auto_expand_name_space) Guaranteed to always
451         expand by at least one character.
452         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
453         (struct token_spelling): Use const U_CHAR * rather than PTR.
454         (expand_name_space): Fix up token pointers if name space
455         is moved when expanding.
456         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
457         parse_string2, save_comment, spell_token, cpp_output_list):
458         Update so the routines handle tokens with a direct pointer to
459         their text, rather than an offset into the token's list's namebuf.
460         (_cpp_lex_line): Rearrange for clarity.
461
462         * cpplib.c (_cpp_check_directive): Similarly.
463         (do_define): Make SYM a pointer to const.
464         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
465         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
466         (TOK_OFFSET): Delete.
467         (TOK_NAME): Update.
468
469 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
470
471         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
472         64-bit ABI.
473
474         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE 
475         into account.
476         (logical_u_operand): Delete.
477         (non_logical_cint_operand): Rewrite to take MODE into account.
478         (non_logical_u_cint_operand): Delete.
479         (boolean_operator): New function.
480         (print_operand): Add new %q operand.
481         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
482         remove logical_u_operand and non_logical_u_cint_operand,
483         update logical_operand and non_logical_cint_operand.
484         * config/rs6000/rs6000.md: Rewrite the patterns for performing
485         logical operations to use %q.
486
487         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
488         (movdi): Make similar to movsi.
489         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
490         is no such thing as a DImode CONST_DOUBLE.
491         * config/rs6000/rs6000.c (output_toc): Likewise.
492         
493         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
494         codes when old mnemonics are in use.  Print register names
495         for cc registers when requested.
496
497         * optabs.c (expand_float): Don't allow mode widening that causes
498         double rounding.
499
500         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
501         flags to their current names -maix64 and -maix32.
502
503 2000-05-14  Bruce Korb  <bkorb@gnu.org>
504
505         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
506         and/or after current text of file
507         * fixinc/fixlib.c(must_malloc):
508         * fixinc/fixlib.h(must_malloc): + reformatting
509         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
510         with usages of ``c_fix = wrap;''
511         Add several tests and use the ``c_fix = format'' fixer more.
512         * fixinc/fixincl.x: regen
513         * fixinc/check.diff: regen
514         * fixinc/check.tpl: emit the associated header with the missing
515         test message
516
517 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
518
519         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
520         variables $src and $dst.
521         
522 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
523
524         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
525         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
526         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
527         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
528         fields. 
529         (set_message_prefixing_rule): Declare.
530
531         * diagnostic.c: (current_prefixing_rule): New variable.
532         (set_message_prefixing_rule): Define.
533         (output_set_prefix): Adjust buffer->emitted_prefix_p.
534         (init_output_buffer): Adjust Initialization.
535         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
536         
537 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
538
539         * ifcvt.c (if_convert): Do not free NULL.
540
541 2000-05-12  Nick Clifton  <nickc@cygnus.com>
542
543         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
544         to move a double word value.
545         (di_operand): New function: Return true if the operand is suitbale
546         for a double word move operation.
547         (nonimmediate_di_operand): New function: Return true if the
548         operand is a DImode register or MEM.
549
550         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
551         nonimmediate_di_operand.
552
553         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
554         nonimmediate_di_operand.
555
556         * config/fr30/fr30.md (movdi): New pattern.  Required because
557         other patterns generate DImode results.
558         (movdi_insn): New pattern.
559
560 2000-05-12  Richard Henderson  <rth@cygnus.com>
561
562         * config/alpha/alpha.c (struct shadow_summary): Define
563         bitfields as type unsigned int.
564
565 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
566
567         * config/avr/t-avr: Added definition of FLOAT while generates
568         fp-bit.c
569
570         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
571         peepholes for tst+jump = sbrs/sbrc optimization.
572
573 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
574
575         * expr.c (emit_push_insn): Do not adjust stack pointer when
576         preallocating.
577
578 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
579
580         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
581         * system.h (offsetof): ... to here.
582
583 2000-05-12  Richard Henderson  <rth@cygnus.com>
584
585         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
586         * final.c (final_end_function): Use app_disable.  Rearrange note
587         handling into a switch.  Emit deleted labels.
588         (output_asm_label): Generate label strings for deleted labels.
589         * flow.c (tail_recursion_label_list): New.
590         (find_basic_blocks_1): Set label_value_list directly.  Collect list
591         of tail recursion labels from call_placeholders.  Don't add deleted
592         labels to the label value list.
593         (cleanup_cfg): Use free_EXPR_LIST_list.
594         (flow_delete_insn_chain): Turn non-removable labels into notes.
595         (flow_delete_block): Don't disable deleting the block because of
596         a non-removable label.
597         (tail_recursion_label_p): New.
598         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
599         because of a label.
600         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
601         jump table.
602         (merge_blocks): Disable a merge because of tail recursion labels.
603         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
604         Use a more accurate measure of not merging the join block.
605         (find_if_block): Don't disable conversion because of a label.
606         (find_if_case_1, find_if_case_2): Likewise.
607         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
608         element when copying.
609         (squeeze_notes): Also leave EH notes.
610         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
611         REG_LABEL notes.
612         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
613         deleting a label.
614         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
615         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
616         referring to a deleted label.  Convert tail handling to a switch.
617         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
618         for NOTE_INSN_DELETED_LABEL.
619         (NOTE): Fix commentary.
620         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
621         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
622         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
623         (LABEL_NUSES, LABEL_REFS): Likewise.
624         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
625
626 2000-05-12  Bruce Korb  <bkorb@gnu.org>
627
628         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
629         * fixinc/check.diff: updated
630         * fixinc/inclhack.def: corrected & added some test_text-s
631         * fixinc/genfixes: removed unneeded options to autogen invocation
632         * fixinc/fixincl.tpl: Specified the output file
633         * fixinc/fixfixes.c: visual appearance
634         * fixinc/fixincl.x: regenerate
635
636 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
637
638         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
639         CTRL_defn_fix): Delete.
640         (fix_char_macro_defines, fix_char_macro_uses): Rename to
641         char_macro_def_fix and char_macro_use_fix, respectively.  Put
642         them into the FIXUP_TABLE.  Get the string to search for from
643         a c_fix_arg.
644
645         (format_write): New function.
646         (format_fix): Use it.
647
648         (FIX_PROC_HEAD): Constify text parameter.
649         (machine_name_fix): Constify all char *s.
650         * fixtests.c (skip_quote): Remove double static.
651
652         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
653         ctrl_use_quotes): Update for new scheme.
654         * fixincl.x: Regenerate.
655
656 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
657
658         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
659         DWARF2_DEBUG.
660         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
661         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
662
663 2000-05-11  Robert Lipe <robertlipe@usa.net>
664
665         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
666         * fixincl.x: Regenerate.
667
668 2000-05-11  Richard Henderson  <rth@cygnus.com>
669
670         * calls.c: Revert both 05-09 patches.
671
672 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
673
674         * config/mn10300/mn10300.c (print_operand): Print FP constants in
675         hexadecimal.
676         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
677         for FP values.
678
679         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
680         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
681
682 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
683
684         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
685
686 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
687
688         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
689
690 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
691
692         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
693         * config/avr/avr.c (jump_over_one_insn_p): New function.
694         * config/avr/avr.md: New peepholes added. Output test and
695         conditional jump to "sbrc" or "sbrs" command.
696
697 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
698
699         * cppmain.c (main): Use IS_DIR_SEPARATOR.
700
701 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
702
703         * except.c (find_exception_handler_labels_1): New function.
704         (find_exception_handler_labels): Split into two functions, dive
705         into CALL_PLACEHOLDERs when looking for exception handler labels.
706
707 2000-05-11 Stan Cox <scox@cygnus.com>
708
709         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
710         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
711         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
712
713 2000-05-11  Bruce Korb  <bkorb@gnu.org>
714
715         * fixinc/fixfixes.c (double_slash_fix):  obsolete
716         (else_endif_label_fix): obsolete
717         (format_fix):  new, unused as yet
718         (main): obsolete
719         * fixinc/fixlib.h: added fix description struct for use by format_fix
720         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
721         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
722         modules.  Removed the vestiges of the script version.
723         Added support for "make check".
724         * fixinc/check.diff: base diff file (needs work!!)
725         * fixinc/check.tpl: quiet the fixup output
726         * fixinc/fixtests.c (main): obsolete
727         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
728         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
729
730 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
731
732         * toplev.c (rest_of_compilation): Remove dead code after
733         combine.
734
735 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
736
737         * cpphash.c (collect_funlike_expansion): Make "# is not
738         followed by a macro argument name" a pedwarn, not an error.
739         Preserve the # in the output.  Suppress the warning if lang_asm.
740
741 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
742
743         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
744         * configure: Rebuilt.
745
746 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
747
748         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
749
750 2000-05-10  Kazu Hirata  <kazu@hxi.com>
751
752         * combine.c (try_combine): Fix a typo.
753
754 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
755
756         * config/ia64/ia64.md (insv): Add comment.
757
758 2000-05-10  Richard Henderson  <rth@cygnus.com>
759
760         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
761         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
762         dependancies on FPBIT and DPBIT.
763
764 2000-05-10  Nick Clifton  <nickc@redhat.com>
765
766         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
767         when optimising for size.
768         (mark_used_regs:) Ditto.
769         (try_pre_increment_1): Ditto.
770
771 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
772
773         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
774         Make error message friendlier.
775
776         * cpphash.h (struct hashnode): Use struct hack for name
777         member.
778         * cpphash.c (struct hashdummy): New.
779         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
780         (make_HASHNODE): No need to set ->name pointer.  Correct
781         setting of p.
782         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
783
784 2000-05-10  Richard Henderson  <rth@cygnus.com>
785
786         * flow.c (find_basic_blocks_1): Remove any spare bb_note
787         after completion.
788
789 2000-05-10  Bruce Korb  <bkorb@gnu.org>
790
791         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
792
793 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
794
795         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
796         after we enter .debug.
797
798 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
799
800         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
801         abstract instance of a nested inline function.
802
803         * stor-layout.c (finish_record_layout): finalize_type_size
804         before laying out the pending_statics.
805
806 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
807
808         * cpplex.c (spell_token): New function.
809         (spell_string, spell_comment, spell_name): fold into
810         spell_token.    
811         (I, S): Add macros.
812         (E, H): Remove macros.
813         (save_comment): Save comment opening characters too.
814         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
815         handling.
816         * cpplib.h (I, S): Add macros.
817         (E, H): Remove macros.
818         (TTYPE_TABLE): Update entries for new speller.
819         (SYNTAX_ASSERT): Remove.
820
821 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
822
823         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
824         when removing escaped newlines.  Reverse sense of test for
825         escaped newline.
826
827 2000-05-09  Richard Henderson  <rth@cygnus.com>
828
829         * flow.c (find_basic_blocks_1): Do not delete the first
830         bb_note we run across.
831         (create_basic_block): Use reorder_insns to move an existing
832         bb_note to the correct place.
833
834 2000-05-09  Richard Henderson  <rth@cygnus.com>
835
836         * calls.c (expand_call): Increment currently_expanding_call
837         before calling optimize_tail_recursion.
838
839 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
840
841         * reload1.c (reload_combine): Fix errors in last change.
842
843 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
844
845         * gcc.c (used_arg): Skip over a semicolon at the end of the
846         split-up loop; don't break out of it.
847
848         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
849         (tree.o): Depend on output.h.
850
851         * c-decl.c (pending_invalid_xref_file,
852         current_function_prototype_file): Constify.
853         (pushdecl): Constify a local char *.
854         (define_label): Constify filename parameter.
855         * c-lex.c (init_parse): Constify parameter and return value.
856         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
857         * c-tree.h: Update prototypes.
858         * c-parse.in: Constify filename member of %union, and if_stmt_file.
859         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
860         objc/objc-parse.c: Regenerate.
861
862         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
863         * dwarfout.h: Update prototypes.
864         * expr.c (expand_expr): Constify a local char *.
865         * flags.h: Constify main_input_filename.
866         * function.c (expand_function_end): Constify filename parameter.
867         * genrecog.c (make_insn_sequence): Use a character array for
868         c_test_pos.
869         (main): Remove unused variables.
870         * input.h: Constify input_filename, main_input_filename, and
871         file_stack.name.  Update prototypes.
872         * output.h: Declare first_global_object_name and
873         weak_global_object_name here, as const char *.
874         * stmt.c (expand_asm_operands): Constify filename parameter.
875         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
876         Constify filename parameter.
877         (input_filename, main_input_filename): Constify.
878         * toplev.h: Update prototypes.
879         * tree.c: Include output.h.  Don't declare
880         first_global_object_name or weak_global_object_name.  Clean up string
881         bashing in get_file_function_name_long.
882         * tree.h (struct tree_decl): Constify filename member.
883         (input_filename): Constify.
884         Update prototypes.
885         * varasm.c (first_global_object_name, weak_global_object_name):
886         Constify.
887         (assemble_start_function, assemble_variable): Clean up string bashing.
888
889         * gcc.c: Constify all spec-related strings initialized,
890         transitively, from string constants.  Constify all strings
891         and string variables related to multilibs.
892         (set_spec, read_specs): Cast argument to free to PTR.
893         (used_arg): Do not modify multilib_matches.  Use strncmp plus
894         length comparison to compare multilib switches.
895         * genmultilib: Constify everything declared in multilib.h.
896
897 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
898
899         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
900         as deleted.
901
902 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
903
904         * config/avr/avr-protos.h (extra_constraint): change a type of
905         second argument from char to int to avoid warnings.
906         (asm_output_byte): Likewise.
907         
908         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
909         (initial_elimination_offset): Handle elimination from
910         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
911         (legitimate_address_p): Use MAX_LD_OFFSET.
912         (legitimize_address): Likewise.
913         (out_movqi_r_mr): Likewise.
914         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
915         (out_movsi_r_mr): Use MAX_LD_OFFSET.
916         (out_movsi_mr_r): Likewise.
917         (out_movqi_mr_r): Likewise.
918         (out_movhi_mr_r): Likewise.
919         (notice_update_cc): Correct CC for the ashrqi3 with the shift
920         count as CONST_INT != 6.
921         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
922         shift count is a CONSTANT_P, but not a CONST_INT.
923         (ashlhi3_out): Coding style modifications.
924         (ashlsi3_out): Likewise.
925         (ashrhi3_out): Likewise.
926         (ashrsi3_out): Likewise.
927         (lshrhi3_out): Likewise.
928         (lshrsi3_out): Likewise.
929         (ashrqi3_out): Generate shift for any known constant count without
930         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
931         but not a CONST_INT.
932         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
933         shift count is a CONSTANT_P, but not a CONST_INT. 
934         (extra_constraint): change a type of
935         second argument from char to int to avoid warnings.
936         (asm_output_byte): Likewise.
937         (asm_file_end): Output size generated commands count as a hex
938         number too.
939
940         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
941
942         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
943         removed.
944         (ashlqi3): Values of "length" attribute changed. Shift count
945         uses constraints 'n' instead of 'i'.
946         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
947         shifts without clobber register.
948         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
949         (call_insn): Correct test for which_alternative == 1 (was 0).
950         (call_value_insn): Likewise.
951         
952         * config/avr/t-avr: Remove definition of FLOAT while generates
953         fp-bit.c
954
955 2000-05-09  Bruce Korb  <bkorb@gnu.org>
956
957         * fixinc/check.tpl:  Template for checking fixes
958         * fixinc/inclhack.def:  Added 'test_text' for many fixes
959         disable hpux8_bogus_inlines on SCO
960         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
961
962 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
963
964         * calls.c (expand_call): Reorganize somewhat in order
965         to avoid unnecesary recalculation inside loop and make
966         tail call failure code cleaner.
967         
968 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
969
970         * alias.c (nonlocal_reference_p): Minor reformatting.
971         * reload.c (find_equiv_reg): Simplify logic for
972         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
973         some some reformatting.
974         * reload1.c (reload_combine): Don't assume everything in
975         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
976
977 2000-05-08  Richard Henderson  <rth@cygnus.com>
978
979         * final.c (current_insn_predicate): New.
980         (final_scan_insn): Set it.
981         * output.h (current_insn_predicate): Declare.
982
983         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
984         Attach it to call insns.
985         (cond_exec_process_if_block): Track probability for true and
986         false branches.
987         (dead_or_predicable): Likewise.
988
989         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
990         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
991         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
992         (estimate_probability, expected_value_to_br_prob): Use them.
993
994         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
995         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
996         (ia64_expand_prediction): New.
997         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
998         as needed after calls.
999         (ia64_epilogue_uses): Mark b0 used.
1000         * config/ia64/ia64.md (beq_true, beq_false): Remove.
1001         (bne_true, bne_false): Remove.
1002         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
1003         (br_true, br_false): New.  Use predicate_operator and
1004         ia64_expand_prediction.
1005         (return_true, return_false): Likewise.
1006         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
1007         (call_internal1, call_value_internal): Likewise.
1008         (call_value_internal1, call_multiple_values_internal1): Likewise.
1009
1010         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
1011
1012         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
1013
1014 2000-05-08  Richard Henderson  <rth@cygnus.com>
1015
1016         * rtlanal.c (may_trap_p): Consider old-style and volatile
1017         asms to trap.
1018
1019 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
1020
1021         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
1022
1023 2000-05-08  Richard Henderson  <rth@cygnus.com>
1024
1025         * config/ia64/ia64.h (predicate_operator): Declare.
1026
1027         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
1028         of existance.
1029
1030         * gensupport.c (process_rtx): Copy and post-process each member
1031         of the define_insn rtvec individually.
1032
1033 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
1034
1035         * cpplex.c (spell_token): New function.
1036         (TOKEN_LEN): Add 1 for whitespace.
1037         (_cpp_lex_file): Update to use spell_token.
1038         * cpplib.h (E): Remove.
1039         (TTYPE_TABLE): Update CPP_VSPACE entry.
1040
1041 2000-05-08  Richard Henderson  <rth@cygnus.com>
1042
1043         * flow.c (init_propagate_block_info): Watch out for conditional
1044         branch to next instruction, and thus one outgoing edge.
1045
1046         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
1047         for global register variables; don't special case __[CD]TOR_LIST__;
1048         mind ggc_p for string allocation.
1049
1050 2000-05-08  Nick Clifton  <nickc@cygnus.com>
1051
1052         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
1053
1054 2000-05-08  Bruce Korb  <bkorb@gnu.org>
1055
1056         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
1057         i?86-*-msdosdjgpp* no longer uses fixincludes
1058         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
1059         * fixinc/inclhack.sh:  deleted
1060         * fixinc/hackshell.tpl:  deleted
1061         * fixinc/inclhack.tpl:  deleted
1062         * fixinc/Makefile.in:  Remove dependencies on above
1063         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
1064
1065 2000-05-08  Andreas Jaeger  <aj@suse.de>
1066
1067         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
1068         support.
1069
1070 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
1071
1072         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
1073         substitutions.
1074
1075 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
1076
1077         * cpplex.c: Move new lexer definitions and prototypes
1078         to top.  Conditional include these and the code if
1079         NEW_LEXER is defined.  Rename functions whose names
1080         clash if this code included.
1081
1082 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
1083
1084         * rtl.def (COND_EXEC): Clarify.
1085
1086         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
1087         same fashion as zero_extendsidi2.
1088
1089 2000-05-06  Richard Henderson  <rth@cygnus.com>
1090
1091         * config/ia64/ia64.c (predicate_operator): New.
1092         (ia64_print_operand): Handle 'J'.
1093         (rtx_needs_barrier): Handle COND_EXEC.
1094         * config/ia64/ia64.h (BRANCH_COST): Define.
1095         (PREDICATE_CODES): Update.
1096         * config/ia64/ia64.md: Docuement used unspec values.
1097         (attr predicable): New.
1098         (movxf, movxf_internal): New.
1099         (extendsfdf2): Don't comment out nop.
1100         (floatdidf2): Remove.
1101         (truncxfsf2, truncxfdf2, floatdixf2): New.
1102         (abssi2, absdi2): Put the neg in the "true" slot.
1103         (conditional branch instructions): Mark not predicable.
1104         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
1105         (abs*_internal): Likewise.
1106         (alloc, set_bsp): Mark not predicable.
1107         (barrier, insn_group_barrier, flush_cache): Likewise.
1108         (define_cond_exec): New.
1109
1110 2000-05-06  Richard Henderson  <rth@cygnus.com>
1111
1112         * c-decl.c: Include "tm_p.h".
1113
1114         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
1115         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
1116         (ia64_expand_op_and_fetch): Declare.
1117         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
1118         (setjmp_operand): Constify variables for XSTR.
1119         (ia64_encode_section_info): Likewise.
1120         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
1121         values to int.
1122         (ia64_asm_output_external): Constify name.
1123         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
1124         (process_for_unwind_directive): Provide switch default.
1125         (ia64_expand_compare_and_swap): Remove unused variables.
1126         (ia64_expand_builtin): Likewise.
1127         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
1128         for printing.
1129
1130         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
1131         (symbolic_operand, function_operand, setjmp_operand): Likewise.
1132         (shift_count_operand, shift_32bit_count_operand): Likewise.
1133         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
1134         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
1135         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
1136         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
1137         (ia64_expand_builtin): Likewise.
1138         (call_multiple_values_operation): Make dest_regno unsigned.
1139
1140 2000-05-06  Richard Henderson  <rth@cygnus.com>
1141
1142         * rtl.def (DEFINE_COND_EXEC): New.
1143         * md.texi: Document it.
1144
1145         * gensupport.c (input_file): Remove.
1146         (struct queue_elem): Add lineno.
1147         (rtx_ready_queue): Remove.
1148         (errors): New.
1149         (predicable_default): New.
1150         (predicable_true, predicable_false): New.
1151         (define_attr_queue, define_attr_tail): New.
1152         (define_insn_queue, define_insn_tail): New.
1153         (define_cond_exec_queue, define_cond_exec_tail): New.
1154         (other_queue, other_tail): New.
1155         (queue_pattern): New.
1156         (process_rtx): Add patterns to the appropriate queues.
1157         (is_predicable, identify_predicable_attribute): New.
1158         (n_alternatives, collect_insn_data): New.
1159         (alter_predicate_for_insn, alter_test_for_insn): New.
1160         (shift_output_template, alter_output_for_insn): New.
1161         (process_one_cond_exec, process_define_cond_exec): New.
1162         (init_md_reader): Read the entire file.  Process define_cond_exec.
1163         (read_md_rtx): Return elements from the queues.
1164
1165 2000-05-06  Richard Henderson  <rth@cygnus.com>
1166
1167         * flow.c (mark_set_1): Don't update conditional life info
1168         if the register is not_dead.
1169
1170 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
1171
1172         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
1173         (mostlyclean): Also delete fixincl, fixinc.sh, and
1174         specs.ready, and make clean in the fixinc subdir.
1175
1176 2000-05-06  Richard Henderson  <rth@cygnus.com>
1177
1178         * Makefile.in (gensupport.o): Compile for the host.
1179         (host-prefix gensuuprt.o): Remove.
1180         (genflags.o): Depend on gensupport.h and OBSTACK_H.
1181         (genattrtab.o): Likewise.
1182         (gencodes.o): Depend on gensupport.h.
1183         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
1184         (genpeep.o, genattr.o, genoutput.o): Likewise.
1185
1186         * gensupport.c (obstack, rtl_obstack): New.
1187         (init_md_reader): Initialize rtl_obstack.
1188         * gensupport.h (rtl_obstack): Declare.
1189         (message_with_line): Declare.
1190
1191         * genattr.c: Remove all traces of obstack manipulation.
1192         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
1193         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
1194
1195         * genattrtab.c (obstack, rtl_obstack): Remove.
1196         (main): Don't init rtl_obstack.
1197         * genflags.c: Likewise.
1198
1199         * genrecog.c (message_with_line): Move ...
1200         * gensupport.c: ... here.
1201
1202 2000-05-06  Richard Henderson  <rth@cygnus.com>
1203
1204         * c-typeck.c (build_c_cast): Remove dead code.
1205
1206 2000-05-06  Richard Henderson  <rth@cygnus.com>
1207
1208         * flow.c (split_edge): Don't allocate global_live_at_start for
1209         the new block unless the old blocks had them as well.
1210
1211         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
1212
1213         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
1214         test_bb if a or b uses x.
1215
1216 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
1217
1218         * cpphash.h: Remove conditional #define of __extension__.
1219         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
1220         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
1221         (ENABLE_RTL_CHECKING only).
1222         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
1223         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
1224         (ENABLE_TREE_CHECKING only).
1225         * varray.h: Add __extension__ to VARRAY_CHECK macro
1226         (ENABLE_CHECKING only).
1227
1228 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
1229
1230         Use new tail-calling mechanism on ARM.
1231         * arm.md (sibcall, sibcall_value): New expands.
1232         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
1233         (tailcalling peepholes): Delete.
1234         (push_multi): Simplify.
1235         * arm.c (lr_save_eliminated): Delete definition.
1236         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
1237         (output_return_instruction): Remove checks on lr_save_eliminated.
1238         (output_arm_prologue): Remove old tail-calling code.
1239         (arm_output_epilogue): New parameter, really_return.  All callers
1240         changed.  Handle tail-calling epilogues.
1241         * arm.h (lr_save_eliminated): Delete declaration.
1242         (frame_pointer_needed): Delete declaration.
1243         * arm-protos.h (arm_output_epilogue): Adjust prototype.
1244
1245         * arm.md (is_thumb): Examine symbol thumb_code, not expression
1246         TARGET_ARM.
1247         * arm.c (thumb_code): Define it.
1248         (arm_override_options): Set it.
1249         * arm.h (thumb_code): Declare it.
1250         
1251 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
1252
1253         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
1254
1255 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
1256
1257         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
1258         bogus clobber to insns.
1259         (load_multiple_operation, store_mulitple_operation): Don't check 
1260         for it.
1261         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
1262
1263         * arm.md (and_scc, ior_scc): Add missing mode.
1264
1265         * arm.md (call_value_symbol): Remove predicate from op2.
1266
1267         * arm.h (SPECIAL_MODE_PREDICATES): Define.
1268         
1269 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1270
1271         * expr.c (get_subtarget): New function.
1272         (force_operand, expand_expr, do_store_flag): Use it.
1273
1274         * toplev.c (compile_file): Don't take strlen of NAME if null.
1275
1276 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
1277
1278         * xcoffout.c (xcoff_current_include_file,
1279         xcoff_current_function_file, xcoff_lastfile): Constify char *.
1280         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
1281         char *'.
1282         (xcoffout_declare_function): Make name 'const char *'.
1283         (xcoffout_end_epilogue): Make fname 'const char *'
1284         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
1285         xcoffout_declare_function, xcoffout_source_line): Match above.
1286
1287         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
1288         -maix64 is error.
1289         * rs6000.c (print_operand): Fix lossage typo.
1290         (output_cbranch): Remove "cr" decoration for now.
1291         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. 
1292
1293 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
1294
1295         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
1296         constant count.
1297
1298 2000-05-05  Bruce Korb  <bkorb@gnu.org>
1299
1300         * fixinc/genfixes: Improve the matching for make target names
1301
1302 2000-05-05  Catherine Moore  <clm@cygnus.com>
1303
1304         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
1305         attribute to the decl.
1306         * c-decl.c (pushdecl): Propagate the USED attribute to the 
1307         type copy.
1308
1309 2000-05-05  Richard Henderson  <rth@cygnus.com>
1310
1311         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
1312         same way emit_group_load does.
1313
1314 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
1315
1316         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
1317
1318         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
1319         (main): Likewise.
1320
1321 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
1322
1323         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
1324
1325 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
1326
1327         * config/openbsd.h (LINK_SPEC): pass correct flags to ld 
1328         to support -shared, on platforms with dynamic libraries.
1329
1330 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
1331
1332         * system.h (S_ISBLK): Provide fallback definition.
1333
1334 2000-05-05  Geoff Berry  <geoffb@bops.com>
1335
1336         * extend.texi (Extended Asm): Document inability to give asm
1337         statements access to condition codes.
1338
1339 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
1340
1341         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
1342         as arg 2 of UNIQUE_SECTION.
1343
1344 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
1345
1346         * predict.c: Remove May 4 change.
1347         * bb-reorder.c (make_reorder_chain): Do not perform block movement
1348         if we have predicted the branch at 50-50 probability.
1349
1350 2000-05-05  Richard Henderson  <rth@cygnus.com>
1351
1352         * flow.c (init_propagate_block_info): Fix merge error
1353         in HAVE_conditional_execution code.
1354
1355 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
1356
1357         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
1358         shift cycle for unknown shift count. Also generates dec + brpl.
1359         (ashlqi3_out): Don't generate dec + brpl which now generates by
1360         `out_shift_with_cnt'.
1361         (ashlhi3_out): Likewise.
1362         (ashlsi3_out): Likewise.
1363         (ashrqi3_out): Likewise.
1364         (ashrhi3_out): Likewise.
1365         (ashrsi3_out): Likewise.
1366         (lshrqi3_out): Likewise.
1367         (lshrhi3_out): Likewise.
1368         (lshrsi3_out): Likewise.
1369
1370 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
1371
1372         * gcc.c (free_split_directories): Correct typo in explanation
1373         of make_relative_prefix.
1374
1375 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
1376
1377         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
1378         comparison codes to branch_comparison_operator.
1379
1380 2000-05-04  Richard Henderson  <rth@cygnus.com>
1381
1382         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
1383
1384 2000-05-04  Richard Henderson  <rth@cygnus.com>
1385
1386         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
1387         (DPBIT_FUNCS): Remove _sf_to_usi.
1388         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
1389
1390         * ifcvt.c (noce_process_if_block): Fail if A or B modified
1391         between condition and jump.
1392
1393         * libgcc2.c (near eh_context_specific): Comment #endif string.
1394         * longlong.h: Don't use strings with embedded newlines.
1395
1396 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
1397
1398         * config/rs6000/rs6000-protos.h: Add output_cbranch.
1399         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
1400         (print_operand): Delete %t and %T codes.
1401         (output_cbranch): New function.  Support branch prediction.
1402         * config/rs6000/rs6000.md: Use output_cbranch for
1403         conditional branches and returns.
1404
1405 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
1406
1407         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
1408         * stor-layout.c (place_field): Likewise.
1409         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
1410         * expr.c (store_expr): Make align unsigned.
1411         * explow.c (plus_constant_wide): Make low words unsigned.
1412         * expmed.c (choose_multiplier): Likewise.
1413         * fold-const.c (fold):  Likewise.
1414         * tree.h (build_int_2): Likewise.
1415         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
1416         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
1417         (init_emit): Change cast to unsigned char*.
1418         * varasm.c (compare_constant_1): Add cast to char*.
1419         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
1420         * reload1.c (reload): Likewise.
1421
1422         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
1423
1424 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
1425
1426         * predict.c (estimate_probability): If no prediction was found, then
1427         predict the successor that is the next physical block (if such a
1428         successor exists).
1429
1430 2000-05-04  Richard Henderson  <rth@cygnus.com>
1431
1432         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
1433
1434 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1435
1436         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
1437
1438 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
1439
1440         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move 
1441         attribute macros from here ...
1442         (CPP_SPEC): to here.
1443         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
1444         (CPP_SPEC): Likewise.
1445         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. 
1446
1447         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
1448         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
1449
1450 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1451
1452         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
1453         
1454         * diagnostic (vbuild_message_string, build_message_string,
1455         build_location_prefix, output_get_prefix, init_output_buffer,
1456         output_notice, vline_wrapper_message_with_location,
1457         v_message_with_decl, default_print_error_function): De-constify.
1458         (set_real_maximum_length): Prototype.
1459
1460         * diagnostic.h (struct output_buffer, init_output_buffer,
1461         output_get_prefix, output_set_prefix): De-constify.
1462
1463         * function.c (init_function_start): Constify.
1464
1465         * gensupport.c (remove_constraints, process_rtx): Prototype.
1466
1467         * gthr-posix.h: Indent uses of #pragma.
1468
1469         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
1470         Prototype.
1471
1472         * predict.c (find_expected_value): Delete prototype.
1473         (expected_value_to_br_prob): Initialize variable `ev_reg'.
1474
1475         * sbitmap.h (debug_sbitmap): Prototype.
1476
1477         * ssa.c (compute_coalesced_reg_partition): Prototype.
1478
1479         * stor-layout.c (debug_rli): Prototype.
1480
1481         * tree.h (round_down): Prototype.
1482         (init_function_start): Constify.
1483
1484 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
1485
1486         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
1487         (overly conservative).  Change extern inline wrappers to
1488         static inline, define them always, use PARAMS properly.
1489         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
1490         whitespace warnings for \f and \v at the beginning of a line.
1491
1492 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
1493
1494         * haifa-sched.c (schedule_insns): Free the flow edge list when it
1495         is no longer needed
1496
1497 2000-05-04  Bruce Korb  <bkorb@gnu.org>
1498
1499         * fixincl/inclhack.def: added broken_cabs -
1500         Remove `extern double cabs' declarations from math.h
1501         * fixincl/inclhack.sh: regen
1502         * fixincl/fixincl.x: regen
1503         * fixincl/fixincl.c: Remove BOGOSITY code
1504         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
1505
1506 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1507
1508         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
1509         MEM_ALIAS_SET.
1510         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
1511         when calling MEM_COPY_ATTRIBUTES.
1512         * emit-rtl.c (operand_subword, change_address): Likewise.
1513         * explow.c (stabilize): Likewise.
1514         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
1515         * integrate.c (copy_rtx_and_substitute): Likewise.
1516         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
1517         when calling MEM_COPY_ATTRIBUTES.
1518         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
1519         Likewise.
1520         * cse.c (gen_lowpart_if_possible): Likewise.
1521         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
1522         * optabs.c (gen_move_insn): Likewise.
1523         * recog.c (validate_replace_rtx_1): Likewise.
1524         * simplify-rtx.c (add_mem_for_addr): Likewise.
1525         * stmt.c (expand_anon_union_decl): Likewise.
1526         * config/arm/arm.md: Likewise.
1527         * config/h8300/h7300.c (fix_bit_operand): Likewise.
1528         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
1529         (block_move_no_loop, block_move_sequence): Likewise.
1530         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
1531         * config/alpha/alpha.c (get_aligned_mem): Likewise.
1532         Clear MEM_ALIAS_SET.
1533         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
1534         MEM_COPY_ATTRIBUTES.
1535
1536 2000-05-03  Robert Lipe <robertlipe@usa.net>
1537         
1538         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
1539         to suppress libgcc1.
1540         (i[34567]86-*-sco3.2v5*) Likewise.
1541         (i[34567]86-*-sco3.2v4*) Likewise.
1542         (i[34567]86-*-sco) Likewise.
1543         (i[34567]86-*-solaris2) Likewise.
1544         (i[34567]86-*-sysv5*) Likewise.
1545         (i[34567]86-*-sysv4*) Likewise.
1546         (i[34567]86-*-udk*) Likewise.
1547         (i[34567]86-*-sysv*) Likewise.
1548
1549 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
1550
1551         * cpphash.h (U): New define, to correct type of string constants.
1552         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
1553         routines, to do casts when passing unsigned strings to libc.
1554         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
1555
1556         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
1557         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
1558         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
1559         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
1560         second argument an U_CHAR *.
1561
1562         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
1563         length field, clean up initializer.
1564         (ISTABLE): Add __extension__ to designated-
1565         initializers version.
1566         * cpplex.c (CHARTAB): Likewise.
1567
1568         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
1569         case so the file won't be empty.
1570
1571 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
1572
1573         * bb-reorder.c (struct reorder_block_def): Member succ removed.
1574         (REORDER_BLOCK_SUCC): Removed.
1575         (enum reorder_skip_type): Removed.
1576         (skip_insns_between_block): Renamed to skip_insns_after_block.
1577         Removed second argument. Removed dead code and cleaned up.
1578         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
1579         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
1580         second parameter to skip_insns_after_block.
1581
1582 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1583
1584         * tree.c (staticp, case LABEL_DECL): New case.
1585
1586 2000-05-03  Richard Henderson  <rth@cygnus.com>
1587
1588         * Makefile.in (start.encap): Do not depend on LIBGCC1.
1589
1590         * mklibgcc1.in: Fix typo last change.
1591
1592 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
1593
1594         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
1595         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
1596         (GCC_CFLAGS): Use it.
1597         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
1598         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
1599         objc/Make-lang.in: Use it.
1600
1601 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
1602
1603         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
1604
1605 2000-05-03  Richard Henderson  <rth@cygnus.com>
1606
1607         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
1608         LIBGCC1 empty with libgcc1.null.
1609
1610 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
1611
1612         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
1613         change.
1614
1615 2000-05-03  Greg McGary  <gkm@gnu.org>
1616
1617         * tree.h (tree_common): Add bounded_flag member.  Remove
1618         inaccurate comment about number of remaining bits.
1619         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
1620         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
1621         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
1622         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
1623         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
1624         (TYPE_QUAL_BOUNDED): New constant.
1625         (TYPE_QUALS): Handle bounded qualifier.
1626         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
1627         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
1628         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
1629         TYPE_AMBIENT_BOUNDEDNESS): New macros.
1630         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
1631         (tree_type): Add pointer_depth member.  Remove
1632         inaccurate comment about number of remaining bits.
1633         (DECL_POINTER_DEPTH): Add macro.
1634         (tree_decl): Add pointer_depth member.
1635
1636 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
1637
1638         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
1639         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
1640         (lshrhi3_out): Likewise.
1641         (ashrsi3_out): bugfix in shift by 8.
1642         (test_hard_reg_class): New function.
1643         * config/avr/avr.md: Bugfix inside conditions in peepholes.
1644         (ashlhi3): removed define_expand of this pattern.
1645         (*ashlhi3_insn): renamed to ashlhi3.
1646         (ashlsi3): removed define_expand of this pattern.
1647         (*ashlsi3_insn): renamed to ashlsi3.
1648         (ashrqi3): removed define_expand of this pattern.
1649         (*ashrqi3_insn): renamed to ashrqi3.
1650         (ashrhi3): removed define_expand of this pattern.
1651         (*ashrhi3_insn): renamed to ashrhi3.
1652         (ashrsi3): removed define_expand of this pattern.
1653         (*ashrsi3_insn): renamed to ashrsi3.
1654         (lshrhi3): removed define_expand of this pattern.
1655         (*lshrhi3_insn): renamed to lshrhi3.
1656         (lshrsi3): removed define_expand of this pattern.
1657         (*lshrsi3_insn): renamed to lshrsi3.
1658
1659 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
1660
1661         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
1662         inclusion of "system.h".
1663
1664 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
1665
1666         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
1667         TREE_ASM_WRITTEN.
1668
1669 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
1670
1671         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
1672         if -mauto-pic is on.
1673         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
1674         -mconstant-gp is in effect and function-descriptors are being used
1675         to make indirect calls.
1676         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
1677         (MASK_AUTO_PIC): Ditto.
1678         (TARGET_CONST_GP): Ditto.
1679         (TARGET_AUTO_PIC): Ditto.
1680         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
1681         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
1682         -mno-pic is in effect.
1683         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
1684         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
1685         -mauto-pic is in effect.
1686         (gprel64_offset): New pattern.
1687         (load_gprel64): Ditto.
1688         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
1689         -mconstant-gp is in effect, no need to preserve gp around direct
1690         calls.
1691         (call_value): Ditto.
1692         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
1693         (FUNCTION_PROFILER): Define.
1694         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
1695         @fptr() directive when -mno-pic or -mauto-pic is in effect.
1696         (ASM_OUTPUT_DESTRUCTOR): Ditto.
1697
1698 2000-05-03  Richard Henderson  <rth@cygnus.com>
1699
1700         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
1701         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
1702         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
1703         (mklibgcc, libgcc.mk): New targets.
1704         (libgcc.a): Use libgcc.mk.
1705         (stmp-multilib): Likewise.
1706         (stmp-multilib-sub): Remove.
1707         (mostlyclean): Don't delete libgcc2 temp files.
1708         * configure.in (AC_PROG_CC_C_O): Add.
1709         (NO_MINUS_C_MINUS_O): Substitute it.
1710         (all_outputs): Add mklibgcc.
1711         * mklibgcc.in: New file.
1712
1713 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
1714
1715         * cppexp.c (op_t): Make an int.
1716
1717         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
1718
1719         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
1720
1721         * gensupport.c (process_rtx): Fix macros used.
1722
1723 2000-05-03  Richard Henderson  <rth@cygnus.com>
1724
1725         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
1726         call-clobbered registers of a call.
1727
1728 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
1729
1730         * gensupport.c: New file.
1731         * gensupport.h: New file.
1732         * Makefile.in (HOST_RTL): Depend on gensupport.
1733         (gensupport.o) New rule.
1734         * genattr.c: Use gensupport for reading .md files.
1735         * genattrtab.c: Ditto. 
1736         * gencodes.c: Ditto. 
1737         * genconfig.c: Ditto. 
1738         * genemit.c: Ditto. 
1739         * genextract.c: Ditto. 
1740         * genflags.c: Ditto. 
1741         * genopinit.c: Ditto. 
1742         * genoutput.c: Ditto. 
1743         * genpeep.c: Ditto. 
1744         * genrecog.c: Ditto.
1745         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
1746         * md.texi (Insn Splitting): Document define_insn_and_split.
1747
1748 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
1749
1750         * flow.c (verify_flow_info): Added two more sanity checks. The
1751         first checks that the blocks are numbered consecutively. The second
1752         checks that n_basic_blocks is actually equal to the number of
1753         basic blocks in the insn chain.
1754
1755 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
1756
1757         * cpplib.h: Add accessor macros for token lists.
1758         * cpplib.c, cpphash.c, cpplex.c: Use them.
1759
1760 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1761
1762         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
1763         memory usage if not in a function.
1764         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
1765         return address if static.
1766
1767 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1768
1769         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
1770         whether address may trap.
1771
1772 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
1773
1774         * bb-reorder (chain_reorder_blocks): Changed code to test for
1775         EDGE_FALLTHRU rather than making erroneous assumption that the
1776         first outgoing edge is the fall-through edge.
1777
1778 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
1779
1780         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new 
1781         ABI for varargs, across all MIPS. This is incompatible because the
1782         va_list (__builtin_va_list) structure is different, so a compilation
1783         unit passing a va_list and a compilation unit being passed one, should
1784         both be compiled with the same ABI. (The old structure had two 
1785         pointers, now it has three.)
1786
1787 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
1788
1789         * bb-reorder.c (struct reorder_block_def): Remove members end,
1790         block_begin, and block_end.
1791         (REORDER_BLOCK_OLD_END): Delete.
1792         (REORDER_BLOCK_BEGIN): Delete.
1793         (REORDER_BLOCK_END): Delete.
1794         (chain_reorder_blocks): Remove dead code.
1795
1796 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
1797
1798         * bb-reorder.c (remove_scope_notes): Check for both types of scope
1799         notes as the end of a basic block before deleting.
1800
1801 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
1802
1803         * final.c (final_start_function): Fix spelling of "necessary".
1804
1805 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
1806
1807         * toplev.c (debug_ignore_block): Return int.
1808         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
1809         * toplev.h, dwarf2out.h: Adjust.
1810         * emit-rtl.c (remove_unnecessary_notes): Test return value.
1811
1812         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
1813         * toplev.c, final.c, rtl.h: Adjust.
1814
1815 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
1816
1817         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
1818         * configure.in: Look for makeinfo in the unified tree, then
1819         for a system makeinfo which is sufficiently new.
1820         * Makefile.in: If configure says makeinfo is too old, don't
1821         build or install Info documentation.
1822
1823 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
1824
1825         * cpphash.c (collect_params): Fix off-by-one error.
1826         (dump_hash_helper): Dump all four macro nodetypes.
1827
1828 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
1829
1830         * cpphash.c (trad_stringify): Adjust p after stringification as
1831         well.
1832
1833 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
1834
1835         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
1836         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
1837
1838         * cppfiles.c (file_cleanup): Delete.
1839         * cpphash.c (macro_cleanup): Delete.
1840         (collect_objlike_expansion, collect_funlike_expansion,
1841         macarg, scan_arguments): Remove CPP_POP case.
1842
1843         * cpplex.c (null_cleanup): Delete.
1844         (cpp_pop_buffer): Do the work that was done in the cleanups
1845         here.  Call _cpp_unwind_if_stack from here.
1846         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
1847         cpp_scan_buffer): Run until we see CPP_EOF and the top of
1848         stack is the buffer _below_ the one we stacked.
1849         (cpp_get_token): Always pop an exhausted buffer.  Return
1850         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
1851         * cpplib.c (skip_if_group): Don't call cpp_get_token to
1852         increment the line number.
1853         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
1854
1855         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
1856         we see CPP_EOF and the top of stack is the buffer _below_ the
1857         one we stacked.
1858         * scan-decls.c: Likewise.
1859
1860 2000-05-02  Andrew Haley  <aph@cygnus.com>
1861
1862         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
1863         where this function is called for the second time on a decl that
1864         has had its section info changed in such a way as to move it out
1865         of small data/bss.  
1866         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
1867
1868 2000-05-01  Richard Henderson  <rth@cygnus.com>
1869
1870         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
1871         the sequence we're moving, not to merge_bb->head.
1872
1873 2000-05-01  Richard Henderson  <rth@cygnus.com>
1874
1875         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
1876         reference to alpha/t-linux.
1877         (alpha*-*-linux-gnu*): Likewise.
1878         * configure: Rebuild.
1879
1880         * calls.c (expand_call): Don't emit reg notes for a sibcall.
1881
1882         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
1883         if not in SSA form.
1884
1885         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
1886
1887 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
1888
1889         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
1890         TREE_THIS_VOLATILE.
1891
1892 2000-05-01  Richard Henderson  <rth@cygnus.com>
1893
1894         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
1895         emit_conditional_move.
1896
1897 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
1898
1899         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
1900         as the dynamic linker.
1901
1902 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
1903
1904         * cppfiles.c (open_include_file): Open file in blocking mode.
1905         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
1906         Only exclude block devices and directories.
1907
1908         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
1909         static.  Allocate the hashnode and its string in the same
1910         block of memory.
1911         (del_HASHNODE): Don't free h->name.
1912         (_cpp_lookup): If there is no entry for this string, create
1913         one, of type T_VOID.
1914         (_cpp_lookup_slot): Delete.
1915         * cpphash.h: Update prototypes.
1916
1917         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
1918         not hp == NULL.
1919         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
1920         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
1921         node here, just fill in the value field properly.  "Delete"
1922         entries by setting the value field to T_VOID.  Check for
1923         hp->type == T_VOID, not hp == NULL.
1924
1925         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
1926         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
1927         hashtab.h.
1928
1929 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
1930
1931         * config/mn10300/mn10300.c (print_operand_address): Do not add
1932         zero to SP.
1933
1934         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
1935         adjusted by less than 256 bytes, use ret regardless of having any
1936         callee-saved register to restore.
1937
1938 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
1939
1940         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
1941
1942 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
1943
1944         * config/i386/djgpp.h (INT_ASM_OP): Define.
1945         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
1946         (ASM_WEAKEN_LABEL): Define.
1947         (MASK_BNU210): Define.
1948         (SUBTARGET_SWITCHES): Define.
1949         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
1950         (MAKE_DECL_ONE_ONLY): Define.
1951         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
1952
1953 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
1954
1955         * i386/cygwin.h (INT_ASM_OP): Define.
1956
1957 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
1958
1959         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
1960         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
1961
1962 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
1963
1964         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
1965         __tmp_reg__ and __zero_reg__ initialization.
1966
1967 2000-04-30  Richard Henderson  <rth@cygnus.com>
1968
1969         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
1970
1971         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
1972         referenced bewteen the condition and the jump.  Don't delete
1973         anything but the jump.
1974
1975 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
1976
1977         * bb-reorder.c (scope_def): New struct.
1978         (scope_forest_info): New struct.
1979         (struct reorder_block_def): New member "scope".
1980         (REORDER_BLOCK_SCOPE): New macro.
1981         (relate_bbs_with_scopes): New function and prototype.
1982         (make_new_scope): Likewise.
1983         (build_scope_forest): Likewise.
1984         (remove_scope_notes): Likewise.
1985         (insert_intra_1): Likewise.
1986         (insert_intra_bb_scope_notes): Likewise.
1987         (insert_inter_bb_scope_notes): Likewise.
1988         (rebuild_scope_notes): Likewise.
1989         (free_scope_forest_1): Likewise.
1990         (free_scope_forest): Likewise.
1991         (dump_scope_forest): Likewise.
1992         (dump_scope_forest_1): Likewise.
1993         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
1994         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
1995         block.
1996         (reorder_basic_blocks): Added calls to build_scope_scope_forest
1997         and remove_scope_notes before reordering is done. Added calls to
1998         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
1999         after reordering is done.
2000
2001 2000-40-30  Bruce Korb  <bkorb@gnu.org>
2002
2003         * fixinc/inclhack.def:  Added definitions needed by OSR5,
2004         removed two stale entries (defined away with OLD_CPP).
2005         * fixinc/inclhack.sh: regen
2006         * fixinc/fixincl.x: regen
2007
2008 2000-04-30  Richard Henderson  <rth@cygnus.com>
2009
2010         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
2011         from the last insn in the sequence.
2012
2013 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
2014
2015         * cpplex.c (cpp_idcmp): New function.
2016         * cpplib.h: Prototype it.
2017         * scan_decls.c (scan_decls): Use it to inspect token names.
2018         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
2019         the file being run through the preprocessor.
2020         (check_macro_names): Provide length of token to cpp_defined.
2021
2022         * Makefile.in: Remove stale warning message.
2023
2024         * cppfiles.c (redundant_include_p): Provide length of token to
2025         cpp_defined.
2026         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
2027         values are unsigned int.
2028         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
2029         (_cpp_lookup_slot): Do not calculate the hash, either.
2030         * cpphash.h: Update prototypes.
2031         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
2032         Hashes are unsigned int.  Calculate hash here, pass by value
2033         to _cpp_lookup_slot.
2034
2035 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
2036
2037         * simplify-rtx.c (check_value_useless): Delete function.
2038         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
2039         by hand.
2040         (cselib_invalidate_regno): Likewise.
2041         (cselib_invalidate_mem_1): Likewise.
2042         (references_value_p): Recognize useless values by the fact that they
2043         have no locations.
2044         (discard_useless_values): Likewise.
2045         (cselib_record_set): This may turn a useless value
2046         into a useful one.
2047
2048 2000-04-30  Richard Henderson  <rth@cygnus.com>
2049
2050         * config/d30v: New port.
2051
2052         * configure.in (d30v-*): Set fp format.
2053         * configure: Rebuild.
2054
2055 2000-04-30  Richard Henderson  <rth@cygnus.com>
2056
2057         * ifcvt.c: New file.
2058         * Makefile.in (OBJS): Add it.
2059         (ifcvt.o): New target.
2060         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
2061         and conditional arithmetic.
2062         (find_insert_position): Remove.
2063         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
2064         * toplev.c (DFI_ce, DFI_ce2): New.
2065         (dump_file): Add ce and ce2 dumps.
2066         (rest_of_compilation): Run if_convert a couple o times.  Set
2067         cse_not_expected after cse2.  Don't set no_new_pseudos until
2068         after sched1 or recompute_reg_usage.
2069
2070 2000-04-30  Richard Henderson  <rth@cygnus.com>
2071
2072         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
2073         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
2074
2075 2000-04-30  Richard Henderson  <rth@cygnus.com>
2076
2077         * flow.c (struct reg_cond_life_info): New.
2078         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
2079         (init_propagate_block_info): Initialize them.
2080         (free_propagate_block_info): Destruct them.
2081         (mark_set_1): Consider conditional life before killing a register.
2082         (mark_regno_cond_dead): New.
2083         (free_reg_cond_life_info): New.
2084         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
2085         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
2086         (mark_used_reg): Record conditional life.
2087
2088         * haifa-sched.c (schedule_insns): Disable death counting
2089         sanity check for HAVE_conditional_execution.
2090
2091 2000-04-30  Richard Henderson  <rth@cygnus.com>
2092
2093         * Makefile.in (TIMEVAR_H): New.
2094         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
2095         (timevar.h): Remove rule.
2096
2097 2000-04-29  Richard Henderson  <rth@cygnus.com>
2098
2099         * config/alpha/crtend.asm: Use C comments instead of #.
2100         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
2101
2102         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
2103
2104 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
2105
2106         * cpphash.h (enum node_type: Take out T_MCONST.
2107         (union hashval): Move into struct hashnode.
2108         (struct hashnode): Pack tighter.  Remove file, line, col
2109         members.
2110         * cpphash.c: Constify most of the macro-definition structures.
2111         (struct definition): Replace by struct object_defn
2112         and struct funct_defn.  Put file, line, column information
2113         here.  All users updated to match.
2114         (_cpp_create_definition, _cpp_macroexpand): Remove special
2115         case for #define WORD OTHERWORD.
2116         * cpplib.c (do_undef): Remove T_MCONST case.
2117
2118         * cpphash.h: Move struct reflist, struct definition, and the
2119         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
2120         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
2121         * cpphash.c (_cpp_free_definition): Free data pointed to by
2122         MCONST, XCONST, MACRO, and FMACRO nodes properly.
2123         (_cpp_create_definition, del_HASHNODE): Just call
2124         _cpp_free_definition to clear out a hashnode.
2125         * cpplib.c (do_pragma_poison): Likewise.
2126
2127 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
2128
2129         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
2130         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
2131         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
2132         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
2133         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
2134         REGNO_AM33_P): Redefine in terms of the new macros.
2135         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
2136         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
2137         STRUCT_VALUE): Likewise.
2138         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
2139         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
2140
2141 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2142
2143         * regmove.c (struct record_stack_memrefs_data): New.
2144         (record_stack_memrefs): New function.
2145         (combine_stack_adjustments_for_block): Use it.
2146
2147 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2148
2149         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
2150         use special_function_p to detect alloca.
2151
2152 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
2153
2154         * gcc.texi: Fixes for makeinfo 4.0 --html.
2155
2156 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
2157
2158         * pcp.h: Delete file.
2159
2160 2000-04-28  Kazu Hirata  <kazu@hxi.com>
2161
2162         * h8300.c (function_epilogue): Clean up flags when the last insn
2163         in a function is a barrier.
2164
2165 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
2166
2167         * configure.in (sparc-hal-solaris2*): protect [] glob from
2168         my expansion.
2169         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
2170         rather than hard-coded constants in target_cpu_default2.
2171         * configure: Regenerate.
2172
2173 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
2174
2175         * tree.c (get_callee_fndecl): Extract the initial value from
2176         a readonly decl.
2177
2178 2000-04-28  Richard Henderson  <rth@cygnus.com>
2179
2180         * varasm.c (record_constant_1): Record the CODE_LABEL when
2181         taking the address of a LABEL_REF.
2182
2183 2000-04-28  Richard Henderson  <rth@cygnus.com>
2184             Jan Hubicka  <jh@suse.cz>
2185
2186         * calls.c (combine_pending_stack_adjustment_and_call): Return the
2187         adjustment; don't do the stack adjust.
2188         (expand_call): Call compute_argument_block_size right before
2189         allocating the block; update comment; don't do alignment sanity
2190         checking for sibling call; use args_size instead of
2191         unadjusted_args_size before args_size is adjusted.  Use
2192         combine_pending_stack_adjustment_and_call to compute stack adjust
2193         for must_preallocate case.
2194
2195         * expr.c (push_block): Remove shadow `temp' in inner scope.
2196
2197 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
2198
2199         * toplev.c (rest_of_compilation): Call
2200         note_deferral_of_defined_inline_function even if the function
2201         can't be inlined.
2202
2203 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
2204
2205         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
2206
2207 2000-04-28  Richard Henderson  <rth@cygnus.com>
2208
2209         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
2210
2211 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2212
2213         * timevar.c (init_timevar): DeANSIfy function definition.
2214
2215 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
2216
2217         * Makefile.in (timevar.o): Depend on flags.h.
2218         * timevar.c (unused_stack_instances): New variable.
2219         (timevar_push): Take a timevar_stack_def from
2220         unused_stack_instances if available.
2221         (timevar_pop): Push the popped timevar_stack_def onto
2222         unused_stack_instances.
2223         (TIMEVAR_ENABLE): New macro.
2224         (timevar_def): Make standalone a 1-bit field.  Add field used.
2225         (get_time): Rename parameter to now.  Return after clearing it if
2226         not TIMEVAR_ENABLE.
2227         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
2228         (timevar_pop): Likewise.
2229         (timevar_stop): Likewise.
2230         (timevar_push): Likewise.  Mark the timing variable as used.
2231         (timevar_start): Likewise.
2232         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
2233         timevars that were never used.
2234
2235 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
2236
2237         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
2238         always TREE_READONLY.
2239
2240 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
2241
2242         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
2243         for call instruction with mode QImode.
2244
2245 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
2246
2247         * Makefile.in (OBJS): Add timevar.o.
2248         (toplev.o): Depend on timevar.h.
2249         (ggc-simple.o): Likewise.
2250         (ggc-page.o): Likewise.
2251         (timevar.o): New rule.
2252         (timevar.h): New rule.
2253
2254         * timevar.h: New file.
2255         * timevar.c: Likewise.
2256         * timevar.def: Likewise.
2257
2258         * toplev.h (gc_time, parse_time, varconst_time): Remove.
2259         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
2260         throughout.
2261         (TIMEVAR): Remove macro.
2262         (gc_time, parse_time, varconst_time, integration_time, jump_time,
2263         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
2264         flow_time, combine_time, regmove_time, sched_time,
2265         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
2266         sched2_time, dbr_sched_time, reorder_blocks_time,
2267         rename_registers_time, shorten_branch_time, stack_reg_time,
2268         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
2269         all_time): Remove.
2270         (compile_file): Don't initialize time variables.  Call
2271         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
2272         of many calls to print_time.
2273         (rest_of_compilation): Add timing for reload_cse_regs.
2274         (get_run_time): Removed to timevar.c.
2275         (print_time): Likewise.
2276         (get_run_time): Implement using TV_TOTAL time variable.
2277         (print_time): Get total run time from get_run_time.
2278         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
2279         computing elapsed time explicitly.
2280         * ggc-simple.c (ggc_collect): Likewise.
2281         (gc_time): Remove declaration.
2282
2283 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
2284
2285         * calls.c (combine_pending_stack_adjustment_and_call): New function.
2286         (expand_call): Use it.
2287
2288 2000-04-27  Jan Hubicka  <jh@suse.cz>
2289
2290         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
2291         fields.
2292
2293 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
2294
2295         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
2296         registers.
2297
2298 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2299
2300         * function.c (epilogue_done): Pass whole insn to record_insns.
2301
2302 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2303
2304         * cse.c (CSE_ADDRESS_COST): Remove.
2305         (find_best_addr): Add new parameter "MODE", use address_cost instead
2306         of CSE_ADDRESS_COST
2307         (address_cost): New.
2308         (fold_rtx): Update call of find_best_addr.
2309         * rtl.h (address_cost): Declare.
2310         * loop.c (general_induction_var): Add new parameter "MODE", use
2311         address_cost instead of ADDRESS_COST
2312         (init_loop): Use address_cost instead of ADDRESS_COST.
2313         (check_insn_for_givs): Update call of general_induction_var.
2314         (find_mem_givs): Likewise.
2315         (consec_sets_giv): Likewise.
2316         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
2317         * i386.c (ix86_address_cost): New.
2318         * i386-protos.h (ix86_address_cost): Declare.
2319
2320 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
2321
2322         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
2323         registers.
2324
2325 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2326
2327         * expr.c (store_expr): Use clear_storage instead of direct memset
2328         libcall.
2329
2330 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
2331
2332         * config/mn10300/mn10300.c (mn10300_address_cost): Test
2333         ASHIFT, AND and LABEL_REF.
2334
2335 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2336
2337         * invoke.texi (-foptimize-sibling-calls): Fix.
2338
2339 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2340
2341         * loop.c (load_mems)  Don't use hard registers for the hoisting.
2342
2343         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
2344         calculation; rename const_equiv array in the preconditioning code
2345         from loop_unroll to loop_unroll_precondition
2346
2347 2000-04-27  Richard Henderson  <rth@cygnus.com>
2348
2349         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
2350         add new_set.
2351         (propagate_one_insn): Clear it.  Don't update reg_live here.
2352         (init_propagate_block_info): Update for pbi member changes.
2353         (free_propagate_block_info): Likewise.
2354         (mark_set_1): Know that zero_extract, sign_extract, and
2355         strict_low_part don't kill their argument.  Alter hard subregs.
2356         Update new_set for non-CLOBBER sets.  Update reg_live.
2357         (find_auto_inc): Update reg_live, not new_dead.
2358         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
2359         to determine if the reg in question was set this insn.  Only update
2360         reg info with PROP_REG_INFO.
2361
2362 2000-04-26  Richard Henderson  <rth@cygnus.com>
2363
2364         * flow.c (allocate_reg_life_data): Set max_regno here ...
2365         (life_analysis): ... not here.
2366
2367         * flow.c (calculate_global_regs_live): Force stack pointer
2368         live at end.
2369
2370 2000-04-26  Richard Henderson  <rth@cygnus.com>
2371
2372         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
2373         commit change group changes.
2374         (invert_exp_1): Similarly.
2375         (redirect_exp, invert_exp): Use them.
2376         (redirect_jump_1): New.
2377         (invert_jump_1): New.
2378         (jump_optimize_1): Remove code subsumed by condexec.c.
2379         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
2380
2381 2000-04-26  Richard Henderson  <rth@cygnus.com>
2382
2383         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
2384
2385         * genconfig.c (main): Set all HAVE_foo to 1.
2386
2387         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
2388
2389 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
2390
2391         * invoke.texi: Document -fssa flag.
2392
2393 2000-04-26  Richard Henderson  <rth@cygnus.com>
2394
2395         * flow.c (count_reg_sets_1): Remove.
2396         (count_reg_sets, count_reg_references): Remove.
2397         (recompute_reg_usage): Implement with update_life_info.
2398         Reallocate life data.
2399
2400 2000-04-26  Richard Henderson  <rth@cygnus.com>
2401
2402         * flow.c (update_life_info): Consider blocks null to mean the
2403         universal set.
2404         (calculate_global_regs_live): Likewise.
2405         (life_analysis): Do that instead of collecting all_blocks.
2406
2407 2000-04-26  Richard Henderson  <rth@cygnus.com>
2408
2409         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
2410         a still-valid conditional jump.
2411
2412 2000-04-26  Richard Henderson  <rth@cygnus.com>
2413
2414         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
2415
2416         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
2417         * flow.c (calculate_loop_depth): Remove.
2418         * output.h (calculate_loop_depth): Don't declare.
2419         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
2420         inline; run estimate_probability at the same time.
2421
2422 2000-04-26  Neil Booth  <NeilB@earthling.net>
2423
2424         * cpplib.h: "~=" is not a single pp-token.
2425         * cpplex.c: Correct commentary.
2426
2427 2000-04-26  Richard Henderson  <rth@cygnus.com>
2428
2429         * flow.c (mark_set_1): New arguments code and flags; update all
2430         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
2431         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
2432         loop_depth when optimizing for size.  Do new_dead update after
2433         emitting REG_UNUSED notes.  Merge mark_set_reg code.
2434         (mark_set_reg): Remove.
2435         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
2436         arrange to not emit REG_UNUSED notes.
2437
2438 2000-04-26  Richard Henderson  <rth@cygnus.com>
2439
2440         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
2441         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
2442
2443 2000-04-26  Richard Henderson  <rth@cygnus.com>
2444
2445         * flow.c (propagate_one_insn): Break out from propagate_block.
2446         (init_propagate_block_info): Likewise.
2447         (free_propagate_block_info): Likewise.
2448         (propagate_block): Use them.  Export.
2449         * basic-block.h: Declare them all.
2450
2451 2000-04-26  Richard Henderson  <rth@cygnus.com>
2452
2453         * basic-block.h (life_analysis): Declare here ...
2454         * output.h: ... not here.
2455         * flow.c (life_analysis): Remove nregs parameter; replace
2456         remove_dead_code with flags.  Remove ssa dead code check.
2457         Only init alias analysis if we'll use it.
2458         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
2459         * ssa.c (convert_to_ssa): Likewise.
2460         (convert_from_ssa): Likewise.
2461         * toplev.c (rest_of_compilation): Likewise.
2462
2463 2000-04-26  Richard Henderson  <rth@cygnus.com>
2464
2465         * flow.c (flow_delete_block): Rename from delete_block.  Export.
2466         * basic-block.h (flow_delete_block): Declare.
2467
2468 2000-04-26  David S. Miller  <davem@redhat.com>
2469
2470         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
2471         taking a PATTERN of it.
2472
2473 2000-04-26  <NeilB@earthling.net>
2474
2475         * cpplex.c (spell_other, spell_char): Remove.
2476         (SPELL_CHAR): New.
2477         (token_spelling, trigraph_map): Use unsigned chars.
2478         (_cpp_lex_line): Tidy up the switch statement.
2479         * cpplib.h: Implement spell_char with spell_string.
2480         (C): New.
2481
2482 2000-04-26  <RodneyBrown@pmsc.com>
2483
2484         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
2485         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
2486
2487 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2488
2489         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
2490         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
2491         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
2492         dwarf2out_return_save, dwarf2out_return_reg,
2493         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
2494         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
2495         gen_compile_unit_die, dwarf2out_init): Constify a char*.
2496
2497         * dwarf2out.h (dwarf2out_init): Likewise.
2498
2499         * dwarfout.c (filename_entry, primary_filename, last_filename,
2500         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
2501
2502         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
2503         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
2504         dwarf2out_return_reg): Likewise.
2505
2506 2000-04-26  Andreas Jaeger  <aj@suse.de>
2507
2508         * extend.texi (Function Attributes): Fix description of pure
2509         attribute.
2510
2511 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
2512
2513         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
2514         before calling rest_of_compilation.
2515
2516 2000-04-26  Andreas Jaeger  <aj@suse.de>
2517
2518         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
2519         last patch.
2520
2521 2000-04-25  Richard Henderson  <rth@cygnus.com>
2522
2523         * cse.c (cse_insn): Emit barrier after unconditional jump.
2524
2525         * calls.c (expand_call): Disable tail call generation once
2526         rtx_equal_function_value_matters is false.
2527
2528         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
2529         like EDGE_EH edges.
2530
2531 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
2532
2533         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
2534
2535         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
2536
2537         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
2538         is the primary DIE for a member function.
2539         (gen_decl_die): Call set_decl_origin_self here.
2540         * dwarfout.c (output_decl): And here.
2541         * integrate.c (output_inline_function): Not here.
2542         Don't clear DECL_INLINE until after calling rest_of_compilation.
2543         (set_decl_origin_self): No longer static.
2544         * tree.h: Add prototype.
2545         * toplev.c (note_deferral_of_defined_inline_function): Only write
2546         out abstract instance for actual inlines.
2547
2548 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
2549
2550         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
2551         EXTENDED_REGS only if TARGET_AM33.
2552         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
2553         SP_REGS to register allocation and reloading unless absolutely
2554         necessary.
2555         (movsi3): Remove special-case of adding non-constants to SP.
2556
2557 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2558
2559         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
2560         INCLUDES to search and does not provide any of its own.  Also it
2561         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
2562         parameters.  Also it does not call AC_DEFINE.
2563         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
2564         AC_DEFINE and provides for automatic entries for autoheader.
2565         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
2566
2567         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
2568         so we can pass -I flags and include gansidecl.h/system.h in this
2569         test.
2570
2571         * acconfig.h: Delete all NEED_DECLARATION_* entries.
2572
2573 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2574
2575         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
2576         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
2577         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
2578
2579         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
2580         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
2581         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
2582         for these macros.  Clean up spacing and linewraps.
2583
2584 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
2585
2586         * calls.c (expand_call): Use get_callee_fndecl.
2587
2588         * print-tree.c (print_node): Print the chain of an _EXPR.
2589
2590 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
2591                           Jim Wilson  <wilson@cygnus.com>
2592                           Andrew Haley  <aph@cygnus.com>
2593
2594         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
2595         and gp save/restore problems.
2596         * config/ia64/crtend.asm: Add IA-64 unwind support.
2597         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
2598         in fr_pad_size calculation.
2599         (save_restore_insns): Move PR save area.  Correct uses of
2600         RTX_FRAME_RELATED_P.
2601         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
2602         (ia64_expand_epilogue): Add eh_epilogue support.
2603         (ia64_function_prologue): Emit .prologue directive.
2604         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
2605         (ia64_override_options): Set init_machine_status and
2606         mark_machine_status.
2607         (rtx_needs_barrier): Handle bsp reads and writes.
2608         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
2609         New static variables.
2610         (process_set, process_for_unwind_directive): New functions.
2611         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
2612         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
2613         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
2614         macros.
2615         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
2616         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
2617         (struct machine_function): Define.
2618         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
2619
2620 2000-04-25  Bruce Korb  <bkorb@gnu.org>
2621
2622         * fixinc/Makefile.in: make the removal of old programs more
2623         robust
2624         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
2625         install-bin and install-sh
2626
2627 2000-04-25  Nick Clifton  <nickc@cygnus.com>
2628
2629         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
2630         defined, define to return zero.
2631         (function_cannot_inline_p): If a function has any target
2632         specific attributes, then use the macro
2633         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
2634         whether it can be inlined.  If it cannot, issue a suitable
2635         explanation.
2636
2637         * tm.texi: Add a new node 'Inlining' to document the new macro
2638         FUNCTION_ATTRIBUTE_INLINABLE_P.
2639
2640 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
2641
2642         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
2643         commentary.
2644
2645 2000-04-25  Neil Booth  <NeilB@earthling.net>
2646
2647         Restore previous patch, plus the following fixes:
2648
2649         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
2650         flags, not CPP_OPEN_PAREN.
2651         * cpplex.c (expand_token_space, init_token_list,
2652         cpp_free_token_list): Put the dummy token at list->tokens[-1].
2653         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
2654
2655 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2656
2657         * config/i386/freebsd.h (INT_ASM_OP): Define.
2658
2659 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2660
2661         * loop.c (strength_reduce): Fix typo in the last checkin.
2662
2663 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2664
2665         * stor-layout.c (finalize_record_size): Simplify to use existing
2666         functions.
2667         (compute_record_mode): No longer static.
2668         * tree.h (compute_record_mode): New declaration.
2669
2670 2000-04-25  Neil Booth  <NeilB@earthling.net>
2671
2672         * Revert my patch below until cause of build failures
2673         determined.
2674
2675 2000-04-25  Richard Henderson  <rth@cygnus.com>
2676
2677         * combine.c (combine_instructions): Add missing argument
2678         to try_combine.
2679
2680         * toplev.c (rest_of_compilation): Delay sibcall optimization
2681         until after emit_eh_context.
2682
2683 2000-04-24  Nick Clifton  <nickc@redhat.com>
2684
2685         * combine.c (combine_instructions): Do not try to combine a
2686         sequence of insns when the second insn has been replaced by a
2687         note.
2688
2689 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
2690
2691         * gcc.c (load_specs): New static function.
2692         (read_specs): Use it.
2693
2694         * gcc.c (lookup_compiler): Make multiple passes for case
2695         insensitive filesystems.
2696
2697 2000-04-24  Neil Booth  <NeilB@earthling.net>
2698
2699         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
2700         * cpphash.h (_cpp_check_directive): new.
2701         * cpplex.c (handle_newline, cpp_free_token_list,
2702         init_trigraph_map, trigraph_ok, trigraph_replace,
2703         backslash_start, skip_block_comment, skip_line_comment,
2704         skip_whitespace, parse_name, parse_number, parse_string,
2705         copy_comment, _cpp_lex_line, spell_char, spell_string,
2706         spell_comment, spell_name, spell_other, _cpp_lex_file,
2707         _cpp_output_list): new.
2708         (expand_name_space): take length argument.
2709         (init_token_list): add comment list initialisation.
2710         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
2711         instead of HSPACE_BEFORE.
2712
2713         * cpplib.c (_cpp_check_directive): new
2714         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
2715         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
2716         (HSPACE_BEFORE): delete.
2717         (TTYPE_TABLE): rearrange.
2718         (struct cpp_toklist): update.
2719
2720 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2721
2722         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
2723         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
2724         argument form of AC_DEFINE.
2725
2726         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
2727         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
2728         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
2729         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
2730         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
2731
2732         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
2733
2734 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2735
2736         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
2737         deduced.h): Use -isystem, not -I, for including system headers.
2738
2739 2000-04-24  Nick Clifton  <nickc@cygnus.com>
2740
2741         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
2742         the source register is the frame pointer or arg pointer.
2743         (addsi3_small_int): Disallow if source register is the frame
2744         pointer or arg pointer.
2745
2746 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2747
2748         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
2749         call to AC_MSG_RESULT.
2750
2751 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2752
2753         * invoke.texi: Correct grammatical errors, document
2754         -fno-gnu-keywords as identical to -fno-asm for C++.
2755
2756 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2757
2758         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
2759         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
2760         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
2761         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
2762         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
2763
2764         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
2765         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
2766         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
2767         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
2768         new macros names.
2769
2770 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
2771
2772         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
2773         (pop_alignment): Likewise.
2774         (handle_pragma_token): Likewise.
2775
2776 2000-04-24  Robert Lipe <robertlipe@usa.net>
2777
2778         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
2779
2780 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
2781
2782         * combine.c (try_combine): Update reg_nonzero_bits of
2783         newi2pat before newpat.
2784
2785 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2786
2787         * loop.c (strength_reduce): Simplify test to INSN_P.
2788         (record_giv): Attempt to simplify the add value, use CONSTANT_P
2789         expressions instead of CONST_INT.
2790         (express_from_1): Likewise.
2791
2792 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
2793
2794         * regs.h (reg_n_max): Don't declare.
2795         * flow.c (reg_n_max): Don't define.
2796         * regclass.c (renumber): Don't initialize to zero.
2797         (regno_allocated): Likewise.
2798         (reg_n_max): Define.
2799         (allocate_reg_info): Don't initialize unnecessarily.
2800
2801 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
2802
2803         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
2804         and blockage_p in the newly allocated attribute.
2805
2806 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
2807
2808         * config/mn10300/mn10300.md (addsi): `inc4' on address
2809         registers does not modify cc, but `inc' on an extended
2810         register does.
2811
2812 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
2813
2814         * reload.c (find_equiv_reg): Checks all valueno regs
2815         as a reload_reg_p regs.
2816
2817 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
2818
2819         * cpphash.c (collect_objlike_expansion): Add sanity check.
2820         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
2821         the buffer is the empty string, return.  Mark __DATE__ and
2822         __TIME__ as XCONST nodes, not MCONST.
2823         (_cpp_macroexpand): Avoid pushing an empty buffer.
2824         (funlike_macroexpand): Don't pop token_buffer here.
2825
2826 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
2827
2828         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
2829         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
2830         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
2831         (REGNO_OK_FOR_BASE_P): Define in terms of them.
2832         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
2833         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
2834         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
2835
2836 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2837
2838         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
2839         constant MULT givs.
2840
2841 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
2842
2843         * cpphash.h (struct definition): Move file, line, col members...
2844         (struct hashnode): ... here.  Also add 'disabled' flag.
2845         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
2846         T_IDENTITY.  Remove T_DISABLED.
2847         Update prototypes.
2848
2849         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
2850         (collect_expansion): Split into collect_objlike_expansion and
2851         collect_funlike_expansion.
2852         (_cpp_macroexpand): Split out scan_arguments, stringify, and
2853         funlike_macroexpand.
2854         (_cpp_compare_defs): Rename compare_defs, make static.
2855         (_cpp_make_hashnode): Initialize hp->disabled.
2856         (macro_cleanup): Adjust for new token types.  Clear
2857         m->disabled.
2858         (_cpp_create_definition): Move code here to determine what
2859         sort of macro it is, and code to check for redefinitions, from
2860         do_define.  Implement a few simple cases without creating a
2861         full DEFINITION.
2862         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
2863         Handle the simple cases.
2864         (push_macro_expansion): Set buf->has_escapes and hp->disabled
2865         here.
2866
2867         * cppinit.c (builtin_array): Change MCONST to XCONST
2868         everywhere.
2869         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
2870         fix check for disabled and function-like macros.
2871         * cpplib.c (do_define): Move most logic to
2872         _cpp_create_definition.
2873         (do_undef): Handle new special token types.
2874
2875 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2876
2877         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
2878         of CONSTANT_P for mult_val; always use validate_change to update insn.
2879
2880 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
2881
2882         * cpphash.c (trad_stringify, add_pat): New functions.
2883         (collect_expansion): Restore support for -traditional syntax.
2884         Use trad_stringify and add_pat.
2885         (_cpp_macroexpand): Restore support for -traditional semantics.
2886         * cpplex.c (_cpp_scan_line): Don't change space_before if we
2887         get a COMMENT token.
2888         (_cpp_lex_token): Provide COMMENT tokens to caller if
2889         traditional and parsing_define_directive.
2890         (skip_comment): Warn about // comments if -Wtraditional.
2891         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
2892         proper node type.
2893         (do_undef): Don't warn about undefining EMPTY nodes.
2894
2895 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2896
2897         * loop.c (strength_reduce): Fix biv removal code.
2898
2899 2000-04-22  Richard Henderson  <rth@cygnus.com>
2900
2901         * predict.c (estimate_probability): Examine both sides of
2902         a branch for no exits.  Use 90% not 50% for predict taken.
2903         Reorg for one copy of note generation code.
2904
2905 2000-04-22  Richard Henderson  <rth@cygnus.com>
2906
2907         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
2908
2909 2000-04-22  Richard Henderson  <rth@cygnus.com>
2910
2911         * diagnostic.c (init_output_buffer): Don't initialize format_args.
2912         (output_clear): Likewise.
2913         (output_printf): Use va_copy.
2914         (vline_wrapper_message_with_location): Likewise.
2915         (v_message_with_decl): Likewise.
2916         (line_wrapper_printf): VA_START infor buffer.format_args directly.
2917         * system.h (va_copy): Provide default implementation.
2918
2919 2000-04-22  Richard Henderson  <rth@cygnus.com>
2920
2921         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
2922         the collected condition is not a constant.
2923
2924 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
2925
2926         * diagnostic.h: New file.
2927
2928         * Makefile.in (diagnostic.o): Depends on diagnostic.h
2929
2930         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
2931         various function prototypes.
2932         (diagnostic.h): #include.
2933         (struct output_buffer): Move into diagnostic.h.
2934         (get_output_prefix): Rename to output_get_prefix.  Export.
2935         (init_output_buffer): Export. Break out.  Ajust intialization.
2936         (output_space_left, output_append): Export.
2937         (output_newline): Rename to output_add_newline.  Export.
2938         (output_clear): Nullify additional output_buffer fields.
2939         (output_puts): Rename to output_add_string.  Export.
2940         (dump_output): Rename to output_flush_on.  Export.
2941         (build_location_prefix): Constify return-type.
2942         (emit_output_prefix): Rename to output_emit_prefix. Export.
2943         (set_real_maximum_length): New function.
2944         (output_set_maximum_length): Ditto
2945         (output_clear): Ditto.
2946         (output_add_character): Ditto.
2947         (output_add_integer): Ditto.
2948         (output_add_space): Ditto.
2949         (output_format): Ditto.
2950         (output_printf): Adjust buffer initialization.
2951         (vline_wrapper_message_with_location): Ditto.
2952         (v_message_with_decl): Ditto.  Adjust call to output_puts
2953         and get_output_prefix.
2954         (default_print_error_function): Adjust buffer intialization.
2955
2956 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2957
2958         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
2959         of VOID_TYPE.
2960
2961 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
2962
2963         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
2964         of explicit 0.
2965
2966 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
2967
2968         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
2969         accurate data about SP moves.
2970
2971 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
2972
2973         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
2974         aliases to AM33 registers.
2975
2976 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
2977
2978         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
2979         to all EXTENDED bitmaps.
2980
2981 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
2982
2983         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
2984         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
2985         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
2986
2987 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
2988
2989         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
2990         the operand is not constant.
2991
2992 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
2993
2994         * reload.c (find_equiv_reg): Checks all valueno and regno regs
2995         as a call-clobbered regs.
2996
2997 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2998
2999         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
3000         * rtl.h: Likewise.
3001         * rtl.def: Update comment.
3002         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
3003         * integrate.c (expand_inline_function): Likewise.
3004         * profile.c (branch_prob): Likewise.
3005         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
3006         * print-rtl.c (print_rtx): Likewise.
3007         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
3008         (reemit_notes): Likewise; also use enum insn_note.
3009
3010         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
3011         (place_field): Properly compute know and actual alignment.
3012
3013         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
3014         in proper format.
3015
3016         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
3017         note for REG1.
3018
3019 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
3020
3021         * cpphash.c (struct arg, struct arglist): Const-ify strings.
3022         (warn_trad_stringify, duplicate_arg_p): New helper functions.
3023         (collect_expansion): Rewrite to scan over a token list.
3024         Remove -traditional support.
3025         (collect_formal_parameters): Rename to collect_params; rewrite
3026         to scan over a token list.
3027         (_cpp_create_definition): Adjust to scan a token list.
3028         (_cpp_macroexpand): Remove -traditional support.
3029         (_cpp_compare_defs): Whitespace is now canonicalized.
3030         (comp_def_part): Delete function.
3031
3032         * cpphash.h: Update prototypes.
3033         * cpplex.c (init_token_list): Don't set lineno if there is no
3034         buffer.
3035         (pedantic_whitespace): New function.
3036         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
3037         consume a newline.  Use pedantic_whitespace.
3038         (_cpp_lex_token): Remove support for -traditional macros.
3039         (_cpp_get_define_token): Delete.
3040         (_cpp_get_directive_token): Do the real work here.  Use
3041         pedantic_whitespace.
3042         (_cpp_init_input_buffer): Initialize pfile->directbuf.
3043
3044         * cpplib.c (get_macro_name): Delete.
3045         (do_define): Read the entire line into pfile->directbuf, then
3046         feed the token list to _cpp_create_definition.
3047         * cpplib.h (HSPACE_BEFORE): new define.
3048         (struct cpp_reader): Add a toklist member, "directbuf".
3049
3050         * predict.c (estimate_probability): New heuristic: if a jump
3051         branches around a block with no successors, predict it taken.
3052         Disentangle control flow.
3053
3054 2000-04-20  Richard Henderson  <rth@cygnus.com>
3055
3056         * loop.c (emit_iv_add_mult): Revert last change.
3057
3058 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
3059
3060         * cpplib.h (enum cpp_ttype): Add token types for all
3061         punctuators.  Distinguish pp-numbers from valid C numbers.
3062         Give some tokens better names.  Initialize from macro.
3063         (struct cpp_name, cpp_token, cpp_toklist): New data
3064         structures.
3065         Update prototypes.
3066         * cpplex.c (bump_column, expand_name_space,
3067         expand_token_space, init_token_list, cpp_output_list,
3068         _cpp_scan_line):  New functions.
3069         (output_line_command): Add third argument, new line number.
3070         * cpphash.h: Update prototypes.
3071         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
3072         token names.
3073
3074 2000-04-20  Richard Henderson  <rth@cygnus.com>
3075
3076         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
3077
3078 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
3079
3080         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
3081         object pointed to.
3082
3083 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3084
3085         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
3086         REG_EQUAL note explaining the calculated value.
3087
3088         * calls.c (expand_call): Avoid unnecesary precalculation
3089         and outgoing parameters space guarding for sibling calls.
3090         (store_one_arg): Likewise.
3091
3092 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3093
3094         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
3095         (rest_of_compilation): Write sibling dump file and account
3096         for time as jump time.
3097         * invoke.texi: Update documentation on dump flags.
3098
3099 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
3100
3101         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
3102
3103 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
3104
3105         * cpphash.c (special_symbol): Represent an empty macro with
3106         "\r \r " not just "\r ".
3107         (_cpp_macroexpand): Correct condition for the foo ( ) special
3108         case.
3109         (unsafe_chars): Handle EOF as second argument.
3110         (push_macro_expansion): Simplify test for removing escape at
3111         end.  Do not trim both escapes if there is no text in between.
3112
3113 2000-04-19  Jim Blandy  <jimb@redhat.com>
3114
3115         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
3116         of PTR_SIZE, when appropriate.
3117
3118 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
3119
3120         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
3121         (USE_ENUM_BITFIELDS): Fix typo.
3122
3123 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3124
3125         * stor-layout.c (place_field): Set rli->offset_align properly.
3126
3127 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3128
3129         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
3130         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
3131         PARM_BOUNDARY): Remove unnecessary casts.
3132
3133 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3134
3135         * calls.c (precompute_arguments): Remove must_preallocate and
3136         args_size calls.
3137         (expand_call): Update call of precompute_arguments.
3138
3139         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
3140         check_insn_for_givs): Break out from ...
3141         (strength_reduce) ... here; use for_every_insn_in_loop to call
3142         check_insn_for_givs.
3143         * loop.h (for_every_insn_in_loop): Declare.
3144         (loop_insn_callback): New type.
3145
3146 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
3147
3148         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
3149         not nul-terminated.
3150
3151 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
3152
3153         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
3154         flag_pic and RELOC.
3155
3156 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
3157
3158         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
3159
3160         * configure.in: Delete --disable-cpplib option and all
3161         references to cpp_main.
3162         * configure: Regenerate.
3163         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
3164         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
3165         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
3166         cpp$(exeext).  Add --no-headers to makeinfo command line when
3167         generating INSTALL.  Install and uninstall cpp.1 manpage, not
3168         cccp.1.
3169         * install.texi: Delete all references to cexp.y/cexp.c.
3170         Delete ancient instructions for compiling GCC on 3b1.
3171         * INSTALL: Regenerate.
3172
3173         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
3174         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
3175         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
3176         cexp.c/cexp.y.
3177         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
3178         which is no longer tested anywhere.
3179
3180         * cppinit.c (handle_option): Don't run error message through
3181         gettext twice.
3182
3183 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3184
3185         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
3186         * cpperror.c (hashtab.h): Now include.
3187         * cppexp.c (hashtab.h): Likewise.
3188         * cpplex.c (hashtab.h): Likewise.
3189         * cppfiles.c (hashtab.h): Likewise.
3190         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
3191         to htab_find_slot_with_hash.
3192         * cpphash.c (hashtab.h): Now include.
3193         (_cpp_lookup_slot): INSERT is now enum insert_option.
3194         * cpphash.h (_cpp_lookup_slot): Likewise.
3195         * cppinit.c (hashtab.h): Include earlier.
3196         (initialize_builtins): Pass enum to htab_find_slot.
3197         * cpplib.c (hashtab.h): Now include.
3198         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
3199         (do_pragma_poison, do_assert): Likewise.
3200         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
3201         htab_find_slot_with_hash.
3202         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
3203         * tree.c (type_hash_add): Likewise.
3204         (build1): Minor cleanup.
3205
3206         * ggc-common.c: Add missing blanks.
3207         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
3208         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
3209
3210         * stmt.c (mark_case_node): New function.
3211         (mark_case_nesting): Call it.
3212
3213         * expmed.c (emit_store_flag): If comparing two-word integer
3214         with zero, can optimize NE, EQ, GE, and LT.
3215
3216         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
3217         * conflict.c: Minor cleanups.
3218         * optabs.c: Add blank line
3219         * simplify-rtx.c: Minor cleanups.
3220
3221 2000-04-18  Stan Cox  <scox@cygnus.com>
3222
3223         * gengenrtl.c (genlegend): Fix misspelling.
3224
3225 2000-04-18  Robert Lipe  <robertlipe@usa.net>
3226
3227         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
3228         bitfields of the host compiler are not signed quantities.
3229         * config.in: Regenerate.
3230         * configure: Regenerate.
3231         * system.h (USE_ENUM_BITFIELDS): Added.
3232         (ENUM_BITFIELDS): Added.
3233         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
3234         (SHORT_ENUM_BUG): Deleted.
3235         * tree.h (tree_common): Members `code', `mode', `built_in_class',
3236         now ENUM_BITFIELD.
3237         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
3238         (CODE_FIELD_BUG): Likewise.
3239         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
3240         (OLD_CC): Likewise.
3241         * config/m68k/x-ccur (X_CFLAGS): Likewise.
3242
3243 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
3244
3245         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
3246         mark is active.
3247
3248 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
3249
3250         * cppexp.c (lex): Don't assume tokens are NUL terminated.
3251         * cpplib.c (do_include, do_import, do_include_next,
3252         read_line_number, detect_if_not_defined): Likewise.
3253         * cpphash.c (collect_expansion): Likewise.
3254         (special_symbol, _cpp_macroexpand): Check return from
3255         cpp_file_buffer.
3256         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
3257         macros.  Delete all uses.
3258
3259         * gcc.dg/cpp-mi.c: Add two more test cases.
3260         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
3261
3262 2000-04-17  Richard Henderson  <rth@cygnus.com>
3263
3264         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
3265         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
3266
3267 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
3268
3269         * function.c (expand_function_start): Use hard_function_value to
3270         compute the RTL to use for DECL_RESULT.
3271
3272 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3273
3274         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
3275         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
3276          x86_memory_mismatch_stall): New global variables.
3277         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
3278         alloved; fix load penalties for Athlon.
3279         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
3280         x86_memory_mismatch_stall): Declare.
3281         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
3282          TARGET_MEMORY_MISMATCH_STALL): New.
3283         * i386.md (athlon scheduling parameters): Fix latencies according to
3284         Athlon Optimization Manual.
3285         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
3286         vector.
3287         (fsqrt instruction patterns): Set athlon_decode to direct.
3288         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
3289         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
3290         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
3291         and TARGET_PARTIAL_REGISTER_STALL machines.
3292         (pushdf_nointeger): New pattern.
3293         (pushdf_integer): Rename from pushdf.
3294         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
3295         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
3296
3297 2000-04-17  Richard Henderson  <rth@cygnus.com>
3298
3299         * loop.c (canonicalize_condition): Add WANT_REG argument.
3300         Stop the search if we match it.
3301         * expr.h (canonicalize_condition): Update decl.
3302         * predict.c (expected_value_to_br_prob): Use it.  Track last
3303         expected value note.
3304         (find_expected_value): Remove.
3305
3306         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
3307
3308 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
3309
3310         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
3311         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
3312         a plain file.
3313         * configure.in: Call AC_FUNC_MMAP_FILE.
3314         * configure: Regenerate.
3315         * config.in: Regenerate.
3316
3317         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
3318         * fixinc/fixincl.c: Likewise.
3319
3320 2000-04-17  Richard Henderson  <rth@cygnus.com>
3321
3322         * builtins.c (expand_builtin_expect): New.
3323         (expand_builtin): Call it.
3324         * builtins.def (BUILT_IN_EXPECT): New.
3325         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
3326         * extend.texi: Document it.
3327
3328         * predict.c (expected_value_to_br_prob): New.
3329         (find_expected_value): New.
3330         * basic-block.h (expected_value_to_br_prob): Declare.
3331         * toplev.c (rest_of_compilation): Invoke it.
3332
3333         * rtl.h (NOTE_EXPECTED_VALUE): New.
3334         (NOTE_INSN_EXPECTED_VALUE): New.
3335         * rtl.c (note_insn_name): Update.
3336         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
3337         cases; handle NOTE_INSN_EXPECTED_VALUE.
3338
3339 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
3340
3341         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
3342         leaf sibcall delay slot if flag_pic.
3343         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
3344
3345 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3346
3347         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
3348
3349         * fixproto: If fix-header fails, exit with an error.
3350
3351 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3352
3353         * cse.c (struct check_depdendence_data): New.
3354         (check_dependence): New function.
3355         (invalidate): Use check_depdenence.
3356
3357 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
3358
3359         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
3360         UNITS_PER_WORD is unsigned.
3361
3362         * tree.h (struct tree_common): Remove misleading comment.
3363
3364 2000-04-16  Dave Pitts  <dpitts@cozx.com>
3365
3366         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
3367         message in quotes. Otherwise, IBM's make program treats the '#' as the
3368         start of a comment and ignores the remainder of the line.
3369
3370         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
3371         upper case.
3372         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
3373         * cexp.y (initialize_random_junk): Likewise.
3374         * cppfiles.c (find_include_file): Cast alloca return value.
3375         * cppinit.c (initialize_standard_includes): Likewise.
3376         * cpplib.c (cpp_define, cpp_undef): Likewise.
3377         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
3378         * final.c (output_asm_insn): Allow for holes in EBCDIC.
3379         * fold-const.c (CHARMASK): New.
3380         (real_hex_to_f): Use it.
3381         * real.c (CHARMASK): New.
3382         (etoasc, asctoeg): Use it.
3383         (asctoeg): EBCDIC lower case characters preceed upper case.
3384
3385         * i370.c (mvs_add_label): Change spacing for coding conventions.
3386         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
3387         outputing case vectors.
3388         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
3389         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
3390         since vector in in the data CSECT.
3391         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
3392         * i370.md (Many patterns): Put the length in the XL directives.
3393         (movdi): Put back STM and MVC in definition.
3394         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
3395         pattern using the TCA.
3396         * oe.h (CPP_SPEC): Added to allow trigraphs.
3397         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
3398         not support the "long long" type.
3399
3400 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
3401
3402         * config/mips/mips-protos.h (mips_legitimate_address_p): New
3403         function.
3404         (mips_reg_mode_ok_for_base_p): Likewise.
3405         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
3406         (REG_OK_FOR_INDEX_P): Define unconditionally.
3407         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
3408         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
3409         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
3410         that GET_MODE_SIZE is unsigned.
3411         (mips_reg_mode_ok_for_base_p): Define.
3412         (mips_legitimate_address_p): Likewise.  Adjust now
3413         that GET_MODE_SIZE is unsigned.
3414         (block_move_loop): Make the number of bytes unsigned.
3415         (expand_block_move): Likewise.
3416         (function_arg): Make the loop counter unsigned to match the
3417         boundary condition.
3418
3419 2000-04-16  Richard Henderson  <rth@cygnus.com>
3420
3421         * rtl.h (enum insn_note): New enumeration.  Subsume
3422         NOTE_INSN_DELETED and friends.
3423         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
3424         * rtl.c (note_insn_name): Tweak string order.
3425
3426 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
3427
3428         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
3429         to offset * 2.
3430
3431         * cpplex.c (output_line_command): Remove debugging prints.
3432         (cpp_output_tokens): Don't write out a zero-length buffer or
3433         try to see if it has a newline in it.
3434         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
3435         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
3436         the end of the loop.  Use memmove.  Don't read past the end of
3437         the buffer.  Remove trailing newlines from error messages.
3438
3439 2004-04-16  Neil Booth  <NeilB@earthling.net>
3440
3441         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
3442         * cpplib.c: Add new syntax flags to directive table, and
3443         supporting macros.
3444
3445 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
3446
3447         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
3448         using ret $N.
3449
3450 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
3451
3452         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
3453         * haifa-sched.c: Update -fsched-verbose comments to use "=".
3454
3455 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3456
3457         * Makefile.in (ggc-page.o): Now includes toplev.h.
3458         * ggc-page.c (toplev.h): Now included.
3459         (gc_time): Remove declaration.
3460         (ggc_collect): TIME now long.
3461         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
3462         others static.
3463         * toplev.h (gc_time, parse_time, gc_time): New declarations.
3464
3465         * toplev.c: Make *_time variable long to reduce chance of overflow.
3466         (TIMEVAR): Likewise for `otime'.
3467         (print_time): Arg is now long; compute percentage in FP and round.
3468         * toplev.h (print_time): Arg is long.
3469
3470         * tree.c: Minor whitespace changes.
3471
3472         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
3473         * configure: Rebuilt.
3474         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
3475         (__fixunsxfDI): Renamed from __fixunsxfdi.
3476         (__fixunsdfDI): Renamed from __fixunsdfdi.
3477         (__fixunssfDI): Renamed from __fixunssfdi.
3478         (__floatdisf): Use proper type in REP_BIT macro.
3479         (__fixunsxfSI): Renamed from __fixunsxfsi.
3480         (__fixunsdfSI): Renamed from __fixunsdfsi.
3481         (__fixunssfSI): Renamed from __fixunssfsi.
3482         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
3483         Change location of macros and upper-case some names as above.
3484         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
3485         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
3486
3487         * varasm.c (assemble_variable): Add cast to remove warning.
3488         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
3489
3490         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
3491         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
3492         region number to -1.
3493
3494 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
3495
3496         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
3497         call unshare_all_rtl.
3498
3499         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
3500
3501 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
3502
3503         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
3504         Use .s1 not .s0 for all FP instructions.
3505
3506 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
3507
3508         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
3509         interfaces.
3510         (safe_fwrite, output_line_command): New static functions.
3511         (cpp_expand_to_buffer): Now private to cpplib.
3512         (cpp_scan_buffer): Take a printer.
3513
3514         * cpphash.h: Update prototypes.
3515         * cpplib.h: Update prototypes.
3516         (cpp_printer): New.
3517         (cpp_buffer): Remove last_nominal_fname.
3518         (cpp_reader): Remove lineno.
3519
3520         * cppmain.c: Use a cpp_printer.
3521         * fix-header.c: No need to inhibit line commands.  Call
3522         cpp_start_read with no printer.
3523
3524         * cpperror.c (cpp_notice_from_errno): Provide default name.
3525         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
3526         (find_include_file, cpp_read_file): Use make_IHASH.
3527         (file_cleanup): Set control_macro and clear
3528         input_stack_listing_current here.
3529         (_cpp_execute_include): Don't output entering-file marker.
3530         * cpphash.c (special_symbol): Look for the line number in the
3531         buffer, not the reader.
3532         (_cpp_macroexpand): No need to disable line commands.
3533         (_cpp_dump_definition): No need to generate line commands.
3534         (dump_hash_helper): Remove excess newline from output.
3535         * cppinit.c (dump_special_to_buffer): No need to generate line
3536         commands.
3537         (cpp_printer_init): New.
3538         (cpp_start_read): Take a printer, and start it up if it's not
3539         NULL.  No need to generate line commands.
3540         (cpp_finish): Expect no buffers stacked at all.  Take a
3541         printer argument, and flush the output buffer if it's not
3542         NULL.
3543         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
3544         Don't put two hashes at the beginning of an assertion.
3545         (cpp_get_token): Don't increment pfile->lineno or emit line
3546         commands here.  Return EOF if there's no buffer when we get
3547         EOF.
3548         * cpplib.c (do_define, skip_if_group):
3549         No need to disable line commands.
3550         (_cpp_output_line_command): Delete function.
3551         (do_line): Don't emit line commands here, but set things up so
3552         they will be emitted if necessary.  Use _cpp_fake_ihash to
3553         make unique nominal_fnames if necessary.
3554         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
3555         with 0 for column, not -1.
3556         (_cpp_handle_eof): Don't set the control macro here.  Don't
3557         clear input_stack_listing_current here.  Don't emit line
3558         commands.
3559
3560 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
3561
3562         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
3563         always, use the default SVR4 start address.
3564
3565         * config/rs6000/linux.h (LINK_SPEC): Don't define.
3566         (LINK_SHLIB_SPEC): Define.
3567         (LINK_START_DEFAULT_SPEC): Define.
3568         (LINK_OS_DEFAULT_SPEC): Define.
3569
3570         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
3571
3572         * config/rs6000/eabi.asm (__eabi): Call __init rather than
3573         __do_global_ctors to handle constructors.
3574         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
3575         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
3576         (STARTFILE_MVME_SPEC): Likewise.
3577         (STARTFILE_SIM_SPEC): Likewise.
3578         (ENDFILE_ADS_SPEC): Use crtend.
3579         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
3580         (ENDFILE_MVME_SPEC): Likewise.
3581         (ENDFILE_SIM_SPEC): Likewise.
3582         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
3583         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
3584         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
3585         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
3586         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
3587         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
3588         (CRTSTUFF_T_CFLAGS_S): Define.
3589         * config/rs6000/eabi-ctors.c: Delete.
3590
3591         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
3592         boundary.
3593         (__fini): Likewise.
3594         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
3595         boundary.
3596         (__fini): Likewise.
3597
3598 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
3599
3600         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
3601         plus mask size is smaller or equal to the mode size.
3602
3603 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3604
3605         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
3606         not yet set.
3607
3608         * expr.c (reload.h): Now included.
3609         (emit_block_move): Set volatile_ok when checking for movstr.
3610         (emit_move_1): Check for replacements in addresses in multi-word case.
3611         * Makefile.in (expr.o): Now includes reload.h.
3612
3613         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
3614         Never have a LIBCALL end a basic block.
3615         (find_basic_blocks_1): Likewise.
3616         Reorganize CALL_INSN cases.
3617
3618         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
3619
3620 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
3621
3622         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
3623         completers from mov.ret instruction.
3624
3625 2000-04-14  Richard Henderson  <rth@cygnus.com>
3626
3627         * fold-const.c (extract_muldiv): Don't distribute and widen
3628         multiply across plus for non-sizetype unsigned types.
3629
3630 2000-04-14  Richard Henderson  <rth@cygnus.com>
3631
3632         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
3633         If the original source is dead in the incr insn, it's dead now.
3634
3635 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3636
3637         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
3638         see if DECL_BIT_FIELD needs to still be set.
3639
3640         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
3641
3642         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
3643         print_int_cst_octal with something that's not an INTEGER_CST.
3644
3645         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
3646         and not a SUBREG to a FLOAT rtl.
3647
3648 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
3649
3650         * emit-rtl.c (try_split): Avoid infinite loop if the split
3651         results in a sequence that contains the original insn.
3652
3653 2000-04-13  Andreas Jaeger  <aj@suse.de>
3654
3655         * config/mips/mips.c (expand_block_move): Pass alignment
3656         argument to move_by_pieces in bits, not bytes.
3657
3658         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
3659         __pic__ for little endian.
3660
3661 2000-04-13  Andreas Jaeger  <aj@suse.de>
3662
3663         * config/i386/i386-protos.h: Add prototype for
3664         uno_comparison_operator.
3665
3666 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3667
3668         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
3669         * calls.c (ECF_PURE): New flag.
3670         (emit_call_1): Handle ECF_PURE calls.
3671         (initialize_argument_information): Unset ECF_PURE flag too.
3672         (precompute_arguments): Precompute for ECF_PURE too.
3673         (expand_call): Handle ECF_PURE calls too.
3674         (emit_library_call_value_1): Rename no_queue argument to fn_type,
3675         accept value of 2 as pure function.
3676         (emit_library_call_value, emit_library_call): Rename no_queue argument
3677         to fn_type.
3678         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
3679
3680         * tree.h (DECL_IS_PURE): New macro.
3681         (struct tree_decl): Add pure_flag.
3682         * c-common.c (enum attrs): Add attribute "pure".
3683         (init_attributes): Initialize attribute "pure"
3684         (decl_attributes): Handle attribute "pure".
3685         * extend.texi (Attribute "pure"): Document.
3686         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
3687         in pure function.
3688         (flags_from_decl_or_type): Support attribute "pure".
3689
3690 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
3691
3692         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
3693         the token except for numbers and identifiers.
3694
3695 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
3696
3697         * i386.c (ix86_expand_binary_operator,
3698         ix86_expand_unary_operator): Check no_new_pseudos
3699         instead of reload_in_progress and reload_completed.
3700         (ix86_split_ashldi, ix86_split_ashrdi,
3701         ix86_split_lshrdi): Check no_new_pseudos instead
3702         of reload_completed.
3703
3704 2000-04-12  Jeffrey A Law  (law@cygnus.com)
3705
3706         * function.c (purge_addressof): Unshare any shared rtl created by
3707         purge_addressof and its children.
3708
3709 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
3710
3711         * function.c (aggregate_value_p): VOID_TYPE nodes are never
3712         aggregates.
3713
3714 2000-04-05  Andreas Jaeger  <aj@suse.de>
3715
3716         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
3717         not compiling PIC code, add flags for mabi=64.
3718         (SUBTARGET_CPP_SIZE_SPEC): New.
3719         (SUBTARGET_CPP_SPEC): New.
3720         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
3721         for MIPS/Linux and lots of code needs these defines.
3722
3723 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
3724
3725         * reorg.c (fill_slots_from_thread): Check side_effects_p when
3726         trying the "opposite arithmetic" approach.
3727
3728 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3729
3730         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
3731         (struct sh_args): Add new field force_mem.
3732         (INIT_CUMULATIVE_ARGS): Initialize it.
3733         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
3734
3735 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3736
3737         * calls.c (expand_call): Do not reverse args in "equal from" field.
3738         (emit_library_call_value_1): Emit_libcall_block for const and pure
3739         function.
3740
3741 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3742
3743         * reload1.c (reload_combine): Don't enable optimization for fixed
3744         registers when encountering a BARRIER.
3745
3746 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3747
3748         * builtins.c (expand_builtin_memcmp): Do expansion even with
3749         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
3750
3751         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
3752         stack is propertly aligned; add sanity checking for aligned
3753         stack pointer.
3754         (expand_library_call_value_1): Add sanity checking for aligned
3755         stack pointer.
3756
3757 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
3758
3759         * calls.c (emit_library_call_value_1): Change 3rd arg to
3760         locate_and_pad_parm to disregard the setting of partial.
3761
3762 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3763
3764         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
3765
3766         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
3767         CALL_INSN from the normal case.
3768
3769 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3770
3771         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
3772         New global variables.
3773         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
3774         adjustment.
3775         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
3776         Declare,
3777         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
3778          TARGET_ADD_ESP_8): New macros.
3779         * i386.md: Add peep2s to convert esp adjustments to push and pop
3780         instructions.
3781         (pushsi_prologue, popsi_epilogue): New patterns.
3782
3783 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
3784
3785         * real.c (toe64): Remove stale #endif from the last change.
3786
3787 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
3788
3789         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
3790         * real.c (toe64): Revert previous change.
3791
3792 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
3793
3794         * objc/objc-act.c: Include ggc.h.
3795         (objc_tree_index, objc_global_trees): Convert most of the
3796         static tree variables into a static array with previous names
3797         as defines.
3798         (objc_ellipsis_node): New variable.
3799         (lang_init): Call objc_act_parse_init and c_parse_init.
3800         Create objc_ellipsis_node.
3801         (build_selector_translation_table): Use objc_ellipsis_node instead
3802         of (tree)1.
3803         (hack_method_prototype): Likewise.
3804         (get_arg_type_list): Likewise.
3805         (start_method_def): Likewise.
3806         (continue_method_def): Likewise.
3807         (gen_method_decl): Likewise.
3808         (ggc_mark_imp_list): New function.
3809         (ggc_mark_hash_table): New function.
3810         (objc_act_parse_init): New function.
3811         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
3812         * c-parse.in (c_parse_init): For objc add roots of objc specific
3813         local tree variables.
3814         * objc/objc-parse.y: Rebuilt.
3815         * objc/objc-parse.c: Rebuilt.
3816         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
3817
3818 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
3819
3820         * cse.c (delete_trivially_dead_insns): Also delete insns
3821         that copy a register to itself where the destination is
3822         a strict_low_part.
3823
3824 2000-04-11  Richard Henderson  <rth@cygnus.com>
3825
3826         * flow.c (struct propagate_block_info): Add new_dead, new_live.
3827         (propagate_block): Initialize them.  Use them in parallel instead
3828         of one tmp variable, ie revert much of the 0408 and 0407 functional
3829         changes, but keep the structural changes.
3830         (mark_set_regs): Take new_dead from propagate_block_info instead.
3831         (mark_set_1, mark_set_reg): Likewise.
3832         (mark_used_regs): Likewise with new_live.
3833         (mark_used_reg): Likewise.  Revert 0408 change.
3834
3835 2000-04-11  Nick Clifton  <nickc@cygnus.com>
3836
3837         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
3838         restriction.
3839         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
3840
3841 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3842
3843         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
3844         const section to output a CONSTRUCTOR based on the same conditions
3845         used for VAR_DECLs.
3846
3847 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
3848
3849         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
3850         * pa/pa-protos.h (output_call): Add additional argument indicating
3851         if the call is a sibling/tail call.
3852         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
3853         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
3854         (function_arg, function_arg_partial_nregs): Likewise
3855         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
3856         (emit_move_sequence): Zero extend certain constants as needed
3857         for TARGET_64BIT.
3858         (compute_zdepdi_operands, output_64bit_and): New functions.
3859         (output_64bit_ior, function_arg): Likewise.
3860         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
3861         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
3862         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
3863         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
3864         (output_bvb): Likewise.
3865         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
3866         (output_call): New argument 'sibcall'.  Generate sibcall sequences
3867         as needed.
3868         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
3869         (ouput_arg_descriptor): Do not emit argument descriptors for
3870         TARGET_64BIT.
3871         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
3872         defined.
3873         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
3874         (FUNCTION_OK_FOR_SIBALL): Define.
3875         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
3876         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
3877         (CPP_SPEC): Use new spec infrastructure.
3878         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
3879         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
3880         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
3881         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
3882         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
3883         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
3884         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
3885         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
3886         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
3887         (FUNCTION_ARG); Call out to C code.
3888         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
3889         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
3890         (MIN_UNITS_PER_WORD): Likewise.
3891         * pa/pa.md (cmpdi): New expander.
3892         (scc patterns, movstrsi): Not available for TARGET_64BIT.
3893         (64bit conditional arithmetic): New patterns.
3894         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
3895         (movsicc): Not available if modes on all the operands to not match.
3896         (movdicc): New expander and associated patterns.
3897         (64bit branches): New patterns.
3898         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
3899         (pre_ldd, post_std): New patterns.
3900         (64bit addil, load low part): New patterns.
3901         (special movsf constant): Not available for TARGET_64BIT.
3902         (movsf, movdf expanders): Force constants into memory.
3903         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
3904         (64bit movdf/movdi patterns): New patterns.
3905         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
3906         for TARGET_64BIT.
3907         (extendqidi2, extendhidi2, extendsidi2): Similarly.
3908         (adddi3 expander): Allow "arith_operand" for second input.
3909         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
3910         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
3911         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
3912         (muldi3): New expander for TARGET_64BIT.
3913         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
3914         for TARGET_64BIT.
3915         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
3916         patterns for TARGET_64BIT.
3917         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
3918         patterns for TARGET_64BIT.
3919         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
3920         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
3921         (sibcall_epilogue): New expander.
3922         (casesi): Tweak for TARGET_64BIT.
3923         (call expanders): Set & use the outgoing argument pointer.  Use the
3924         64bit call patterns as needed. Add additional arg to output_call.
3925         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
3926         (sibcall, sibcall_internal_symref): New expanders.
3927         (sibcall_value, sibcall_value_internal_symref
3928         (interspace_jump): Turn into an expander + matching patterns.
3929         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
3930         * pa/pa64-regs.h: Eliminate trigraph sequences.
3931         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
3932
3933 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
3934
3935         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
3936         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
3937         cpp_token with cpp_ttype everywhere.
3938         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
3939         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
3940         CPP_BUF_COL.  Line and column numbers are unsigned int, not
3941         long.
3942         * cpplex.c (cpp_buf_line_and_col): Delete.
3943         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
3944         'long lineno' to 'unsigned int lineno'.
3945         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
3946
3947 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3948
3949         * extend.texi: ISO C99 is not a draft anymore.
3950         * invoke.texi: ISO C++ is not a draft anymore.
3951         * cpp.texi: __cplusplus is required by the ISO standard.
3952
3953         * extend.texi (-fthis-is-variable): Undocument.
3954         * flags.h (warn_template_debugging): Remove declaration.
3955         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
3956         -Wenum-clash, -Wtemplate-debugging): Undocument.
3957
3958 2000-04-10  Nick Clifton  <nickc@cygnus.com>
3959
3960         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
3961         integer.
3962         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
3963         integer.
3964         (ARM_SIGN_EXTEND): Use HOST_UINT.
3965         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
3966         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
3967         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
3968         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
3969
3970         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
3971         (arm_gen_constant): Use HOST_UINT.
3972         (arm_canonicalize_constant): Use HOST_UINT.
3973         (arm_reload_in_hi): Use HOST_UINT.
3974         (arm_reload_out_hi): Use HOST_UINT.
3975         (output_multi_immediate): Use HOST_UINT.
3976         (int_log2): Use HOST_UINT.
3977         (arm_poke_function_name): Use HOST_UINT.
3978         (arm_output_epilogue): Use arm_volatile_func().
3979         (output_thumb_prologue): Use arm_strip_name_encoding().
3980
3981 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3982
3983         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
3984         of sequence point problems.
3985
3986 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
3987
3988         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
3989         Recomment.
3990         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
3991
3992 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3993
3994         * sbitmap.h: Whitespace changes and use upper-case macro args.
3995         (struct simple_bitmap_def): All sizes now unsigned.
3996         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
3997         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
3998         (sbitmap_vector_alloc): Parms and local vars now unsigned.
3999         (sbitmap_zero): Cast bzero arg to PTR.
4000         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
4001         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
4002         loop to make structure clearer.
4003         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
4004         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
4005         (sbitmap_a_and_b_or_c): Likewise.
4006         (sbitmap_intersection_of_succs): Minor cleanups.
4007         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
4008         (sbitmap_union_of_preds): Likewise.
4009         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
4010         (debug_sbitmap): New function.
4011
4012         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
4013         * c-typeck.c (convert_for_assignment): Likewise.
4014
4015         * expmed.c (init_expmed): Don't free objects we make.
4016         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
4017
4018         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
4019         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
4020
4021         * gcse.c (expr_hash_table_size): Now unsigned.
4022         (compute_ae_gen): Local variable `i' now unsigned.
4023         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
4024         (compute_transout, hoist_code): Likewise.
4025         (compute_local_properties): Likewise, also hash_table_size.
4026         (alloc_expr_hash_table): N_INSNS now unsigned.
4027         (delete_null_pointer_checks): Mark arg F as unused.
4028
4029         * regrename.c: Minor cleanups, including chang some variables
4030         to unsigned int.
4031
4032 2000-04-10  Neil Booth  <NeilB@earthling.net>
4033
4034         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
4035         than GETC ().
4036         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
4037
4038 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4039
4040         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
4041         __classof__, and __headof__ from the list of gnu keywords.
4042         (-ansi): Remove -foperator-names from list of implied options.
4043         Do not call it ANSI C++.
4044         (-foperator-names): Document as -fno-operator-names.
4045
4046 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
4047
4048         * cpphash.c (timestamp): Delete.
4049         (del_HASHNODE): If type is T_MCONST, free value.cpval.
4050         (special_symbol): Remove unnecessary braces.  Remove
4051         T_VERSION.  Treat T_STDC like T_CONST unless
4052         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
4053         when one is encountered, then convert them into T_MCONST
4054         nodes.
4055         * cppinit.c (builtin_array): version_string is T_MCONST.
4056         __STDC__ has a "1" in its cpval.  Don't have a terminator
4057         entry.  Clean up which entries are dumped.
4058         (initialize_builtins): Only __STDC__ gets the special
4059         -traditional treatment.  Count the length of builtin_array.
4060         Render version_string here.
4061         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
4062         * cpplib.h (struct cpp_reader): Remove timebuf.
4063
4064 2000-04-09  Richard Henderson  <rth@cygnus.com>
4065
4066         * genrecog.c (pred): Update comparison_operator for the unordered
4067         operators.
4068
4069         * config/i386/i386.c (no_comparison_operator): Disallow unordered
4070         operators.
4071         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
4072         (uno_comparison_operator): New.
4073         (put_condition_code): Handle UNORDERED/ORDERED.
4074         (unsigned_comparison): Likewise.
4075         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
4076         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
4077         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
4078         update all callers.  Handle all 8 unordered operators.
4079         (ix86_expand_setcc): Lose the unordered argument, update all callers.
4080         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
4081         * config/i386/i386.h (PREDICATE_CODES): Update.
4082         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
4083         (ix86_expand_branch, ix86_expand_setcc): Update.
4084         * config/i386/i386.md (sunordered, sordered): New.
4085         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
4086         (bunordered, bordered): New.
4087         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
4088         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
4089         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
4090
4091 2000-04-09  Philip Blundell  <philb@gnu.org>
4092
4093         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
4094
4095 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
4096
4097         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
4098         fix_truncxfhi2): New patterns.
4099         * i386.c (output_fix_trunc): Handle converting to HImode.
4100
4101 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
4102
4103         * ssa.c (convert_to_ssa): Eliminate dead code when calling
4104         life_analysis.
4105         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
4106         (for_each_successor_phi): Change parameter to basic_block.
4107         (coalesce_regs_in_successor_phi_nodes): Likewise.
4108         (coalesce_regs_in_copies): Likewise.
4109         (compute_coalesced_reg_partition): Use basic_block instead of index.
4110         * rtl.h (convert_to_ssa): Delete.
4111         (convert_from_ssa): Likewise.
4112         (successor_phi_fn): Likewise.
4113         (for_each_successor_phi): Likewise.
4114         (in_ssa_form): Likewise.
4115         * basic-block.h (convert_to_ssa): Moved from rtl.h.
4116         (convert_from_ssa): Likewise.
4117         (successor_phi_fn): Likewise.
4118         (in_ssa_form): Likewise.
4119         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
4120         * flow.c (calculate_global_regs_live): Pass a basic_block to
4121         for_each_successor_phi.
4122
4123 2000-04-08  Richard Henderson  <rth@cygnus.com>
4124
4125         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
4126         was modified in the current insn.
4127
4128 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
4129
4130         * arm/thumb.md: Delete.
4131         * arm/thumb-protos.h: Delete.
4132
4133 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
4134
4135         Merge changes from merged-arm-thumb-backend-branch onto trunk.
4136
4137         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
4138
4139         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
4140         into branch.
4141
4142         * arm.md (nop): Use the standard RTL expression.  Don't code as a
4143         define_expand.
4144         (*arm_nop, *thumb_nop): Delete.
4145
4146         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
4147         constants.  Use casts instead.
4148         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
4149         output_multi_immediate, arm_poke_function_name): Likewise.
4150         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
4151         MASK_RETURN_ADDDR): Likewise.
4152
4153         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
4154
4155         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
4156         into branch.
4157
4158         * arm.md (eh_epilogue): New function.
4159         * arm.h (struct machine_function): Move to here ...
4160         * arm.c: ... from here.
4161         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
4162         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
4163         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
4164
4165         2000-03-30  Nick Clifton  <nickc@cygnus.com>
4166
4167         * config/arm/semi.h (ASM_SPEC): Restore definition.
4168         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
4169
4170         * config/arm/elf.h (ASM_SPEC): Restore definition.
4171         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
4172
4173         * config/arm/arm.h (ASM_SPEC): Remove definition.
4174         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
4175
4176         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
4177
4178         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
4179
4180         2000-03-24  Nick Clifton  <nickc@cygnus.com>
4181
4182         Various formating tidyups, elimination of compile time
4183         warnings and synchronisation with internal sources:
4184
4185         * config/arm/arm-protos.h (assemble_align): Add prototype.
4186         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
4187         (gen_comapre_reg): Rename to arm_gen_compare_reg.
4188         (arm_return_addr_rtx): Rename to arm_return_addr.
4189
4190         * config/arm/arm.c: Include except.h.
4191         Define shorter typenames for strict minipool_node and struct
4192         minipool_fix.
4193         (arm_return_in_memory): For WinCE return all structures <= 32 bits
4194         in memory.
4195         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
4196         (gen_comapre_reg): Rename to arm_gen_compare_reg.
4197
4198         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
4199         already defined.
4200         (ASM_SPEC): Define if not already defined.
4201         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
4202
4203         * config/arm/arm.md: Rename references to gen_rotated_half_load to
4204         arm_gen_rotated_half_load, and references to gen_comapre_reg to
4205         arm_gen_compare_reg.
4206         (indirect_jump):  Only accept register operands.
4207         (load_indirect_jump): Keep this pattern since combine can generate
4208         it.
4209
4210         * config/arm/coff.h: Include aout.h.
4211         (MULTILIB_DEFAULTS): Only define if not already defined.
4212
4213         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
4214         into arm.h (so that COFF ports can support thumb based aliases).
4215         (ASM_SPEC): Move definition into arm.h
4216
4217         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
4218         redundant apcs spec.
4219         (ASM_SPEC): Move definition to arm.h
4220
4221         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
4222
4223         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
4224         for entries in the .bss section
4225
4226         2000-03-23  Nick Clifton  <nickc@cygnus.com>
4227
4228         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
4229         to thumb_far_jump_used_p.
4230
4231         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
4232         single integer parameter.
4233
4234         * config/arm/arm.c (struct machine_function): Add two new
4235         fields, 'far_jump_used' and 'arg_pointer_live'.
4236         (thumb_far_jump_used_p): Once the decision has been made that
4237         far jumps might be used, always return true.
4238         If being called from the initial elimination offset macro then
4239         do not bother to perform the test if the arg pointer is not
4240         being used.
4241         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
4242         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
4243
4244         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
4245
4246         * arm.c (output_return_instruction): Handle more cases where we can
4247         return from a function with an ldr instruction.
4248         (arm_output_epilogue): Likewise.
4249
4250         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
4251         if we need to push a large stack frame and there are no callee-saved
4252         registers.
4253
4254         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
4255         in ARM code if the frame pointer has been eliminated.
4256
4257         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
4258         unspec_volatile arguments to avoid duplicates.
4259         (consttable_1, consttable_2): Fixes for big-endian mode.
4260
4261         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
4262         as appropriate.
4263
4264         Re-write constant pool code.
4265         * arm.c (minipool_node, minipool_fix): New types.
4266         (minifix): Delete type.
4267         (arm_add_minipool_constant): Delete.
4268         (arm_compute_minipool_offsets, arm_find_barrier,
4269         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
4270         (get_jump_table_size): Now returns HOST_WIDE_INT.
4271         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
4272         functions.
4273         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
4274         (assign_minipool_offsets, arm_print_value): Likewise.
4275         (dump_minipool): Rewrite.
4276         (arm_barrier_cost): New function.
4277         (create_fix_barrier): New function.
4278         (push_minipool_barrier): New function.
4279         (push_minipool_fix): Record additional information about the fixup
4280         required.
4281         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
4282         check the mode of what needs fixing.
4283         (arm_reorg): Rewrite.
4284
4285         2000-03-08  Nick Clifton  <nickc@cygnus.com>
4286
4287         * config/arm/arm.md (indirect_jump): Force constant addresses into
4288         a register.
4289
4290         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
4291
4292         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
4293
4294         2000-02-24  Nick Clifton  <nickc@cygnus.com>
4295
4296         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
4297         adjust is word aligned.
4298         (thumb_expand_epilogue): Make sure that stack adjust is word
4299         aligned.
4300
4301         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
4302
4303         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
4304
4305         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
4306         pointer relative addresses.
4307
4308         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
4309
4310         * arm.c (find_barrier): Find the last barrier within the allowed
4311         range.
4312
4313         2000-02-09  Nick Clifton  <nickc@cygnus.com>
4314
4315         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
4316
4317         2000-02-09  Nick Clifton  <nickc@cygnus.com>
4318
4319         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
4320         ARM_FUNCTION_PROFILER.
4321
4322         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
4323         ARM_FUNCTION_PROFILER.
4324
4325         * config/arm/linux-oldld.h: Imported from mainline sources.
4326
4327         2000-02-07  Nick Clifton  <nickc@cygnus.com>
4328
4329         * config/arm/lib1funcs.asm: Merge in thumb functions from
4330         lib1thumb.asm.
4331
4332         * config/arm/lib1thumb.asm: Delete.
4333
4334         2000-02-04  Nick Clifton  <nickc@cygnus.com>
4335
4336         * config/arm/arm.c: Sychronised with current Red hat local
4337         sources.
4338         * config/arm/arm.h: Ditto.
4339         * config/arm/arm-protos.h: Ditto.
4340
4341         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
4342
4343         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
4344
4345         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
4346         byte stores.
4347
4348         2000-02-02  Nick Clifton  <nickc@cygnus.com>
4349
4350         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
4351
4352         * config/arm/arm.md (epilogue): Fix rtl checking abort because
4353         (return) was emited using an emit_insn() call.
4354
4355         2000-01-31  Nick Clifton  <nickc@cygnus.com>
4356
4357         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
4358         thumb stack frame.
4359         (thumb_exit): Move frame pointer back into hard frame pointer
4360         register if backtracing is being used.
4361
4362         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
4363
4364         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
4365         into branch.
4366
4367         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
4368
4369         * config/arm/arm.md (neg_pool_offset): Provide default for new
4370         attribute.
4371         (arm_movsi_insn): Add neg_pool_offset attribute.
4372         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
4373         rtx for the insn that starts the scan and an unsigned long for its
4374         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
4375         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
4376         instructions in *PINSERTED.
4377         (struct minipool_fixup): Add MIN_ADDRESS elt.
4378         (sort_fixups): Compute it.
4379         (arm_reorg): Changes to support inserting pools before the insn to be
4380         fixed up.
4381
4382         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
4383
4384         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
4385         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
4386         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
4387
4388         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
4389
4390         * config/arm/semi.h (TARGET_VERSION): Do not define if already
4391         defined.
4392         (TARGET_DEFAULT): Do not define if already defined.
4393
4394         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
4395
4396         * config/arm/arm.md (anddi3): Allow disjoint source operands.
4397         (iordi3): Allow disjoint source operands.
4398         (xordi3): Allow disjoint source operands.
4399         (negdi2): Permit construction for ARM and Thumb.
4400         (arm_negdi2): Renamed version of old negdi2 pattern.
4401         (thumb_negdi2): New pattern: Only permit non-overlapping
4402         source and destination.
4403
4404         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
4405
4406         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
4407         scratch low register so that it will not be deleted.
4408
4409         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
4410
4411         * config/arm/pe.h (ARM_PE): Define.
4412
4413         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
4414         interfacearm attribute if this is a PE toolchain.
4415         (output_return_instruction): Do not emit anything if the function
4416         has the naked attribute set.
4417         (is_called_in_ARM_mode): If the function has the interfacearm
4418         attribute then return true.
4419         (thumb_expand_prologue): Do not generate a prologue for naked
4420         functions.
4421         (thumb_expand_epilogue): Do not generate an epilogie for a naked
4422         function.
4423         (output_thumb_prologue): Do not bother if the function is naked.
4424         Strip PE encoding from function name before emitting.
4425
4426         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
4427
4428         * arm.md (pic_load_addr): Fix constraints.
4429
4430         * arm.md (casesi_insn): Fix mis-applied patch.
4431
4432         * arm.md ("core" function unit): Add rules for single- and
4433         multi-cycle insns.
4434         (All TARGET_THUMB patterns): Add "type" attribute information
4435         where needed.
4436         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
4437         the following insn is a CALL.
4438
4439         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
4440         pointer.
4441         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
4442         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
4443         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
4444
4445         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
4446
4447         * config/arm/linux-gas.h: oops - this file was missed out when the
4448         branch was created...
4449
4450         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
4451
4452         * thumb.c: Deleted.  Move contents to ...
4453         * arm.c: ... here.
4454         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
4455         rule for thumb.o
4456         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
4457         * configure: Regen.
4458
4459         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
4460         declare a prototype for asm_output_align();
4461
4462         * arm.c (thumb_condition_code): Delete.
4463         (arm_print_operand): Always use arm_condition_code array.
4464
4465         * arm.c (thumb_return_addr_rtx): Delete.
4466         (arm_save_machine_status, arm_restore_machine_status): Delete.
4467         (arm_init_machine_status, arm_mark_machine_status): New functions.
4468         (arm_init_expanders): Update accordingly.
4469         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
4470         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
4471         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
4472
4473         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
4474
4475         * configure.in : Fix arm-*-aout target to use new t-arm-aout
4476         script.
4477         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
4478         targets.
4479
4480         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
4481
4482         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
4483         stack backtrace structure.
4484
4485         * config/arm/arm-protos.h: Add prototypes for functions defined in
4486         arm/pe.h.
4487
4488         * config/arm/arm.c (arm_override_options): Fix selection of
4489         attributes of default processor.
4490
4491         * config/arm/coff.h: Delete needless #include.
4492
4493         * config/arm/pe.c: Delete unused code.
4494
4495         * config/arm/pe.h (CPP_DEFINES): Delete
4496         (SUBTARGET_CPP_SPEC): Define.
4497         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
4498
4499         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
4500
4501         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
4502
4503         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
4504         updated.
4505         (CAN_DEBUG_WITHOUT_FP): Define.
4506         (FIXED_REGISTERS): Make r11 call-saved.
4507         (CALL_USED_REGISTERS): Likewise.
4508         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
4509         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
4510         frame-pointer is required.
4511         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
4512         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
4513         if the target normally needs a stack frame in non-leaf functions.
4514         (use_return_insn): Correct logic for determining when a return
4515         instruction can be used.
4516         (output_return_instruction): Handle the frame-pointer register as
4517         a normal register when not TARGET_APCS_FRAME.
4518         (arm_output_prologue): Likewise.
4519         (arm_output_epilogue): Likewise.
4520         (output_func_epilogue): Likewise.
4521         (arm_expand_prologue): Likewise.
4522         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
4523
4524         * arm.c (use_return_insn): No need to check floating point regs if
4525         TARGET_SOFT_FLOAT.
4526         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
4527         the code of value stored in the minipool array.
4528         (arm_add_minipool_constant): Likewise.
4529
4530 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4531
4532         * basic-block.h (conflict_graph_enum_fn): K&R fix.
4533
4534 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4535
4536         * tree.c (tree_expr_nonnegative_p): New function.
4537
4538         * tree.h (tree_expr_nonnegative_p): Declare.
4539
4540         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
4541         elide some sign_compare warnings.
4542         (build_conditional_expr): Likewise.
4543
4544 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
4545
4546         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
4547
4548         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
4549         * i386.c (print_operand): Use the proper suffix for a 387 HImode
4550         operand.  Abort if a 387 operand has an unsupported size.
4551
4552 2000-04-08  Neil Booth  <NeilB@earthling.net>
4553
4554         * cppexp.c (parse_charconst): Null does not end character
4555         constants.
4556         * cppinit.c (ISTABLE): Null character handled as whitespace.
4557         * cpplex.c (null_warning):  new function.
4558         (skip_string): Emit warning if nulls encountered.
4559         (_cpp_skip_hspace): Emit warning if nulls encountered.
4560         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
4561         them.
4562         * cpp.texi: Update.
4563
4564 2000-04-07  Richard Henderson  <rth@cygnus.com>
4565
4566         * flow.c (loop_depth): Remove.
4567         (reg_next_use, cc0_live, mem_set_list): Replace with ...
4568         (struct propagate_block_info): New.
4569         (life_analysis): Don't allocate reg_next_use.
4570         (propagate_block_delete_insn): Break out of propagate_block.
4571         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
4572         (propagate_block_delete_libcall): Likewise.
4573         (propagate_block): Create a propagate_block_info struct to pass
4574         to subroutines.  Allocate one not two temporary regsets.  Don't
4575         clobber memory for const calls.  Look for clobbers in
4576         CALL_INSN_FUNCTION_USAGE.
4577         (mark_set_regs): Recognize COND_EXEC.
4578         (mark_set_reg): Break out of mark_set_1.
4579         (mark_used_reg): Break out of mark_used_regs.
4580         (mark_used_regs): Recognize COND_EXEC.
4581         (insn_dead_p): Use propagate_block_info struct.
4582         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
4583         (find_auto_inc, try_pre_increment_1): Likewise.
4584         (print_rtl_with_bb): Dump regs live at end too.
4585         (count_reg_sets_1): Pass in loop_depth.
4586         (count_reg_sets, count_reg_references): Likewise.
4587         (recompute_reg_usage): Provide it.
4588
4589 2000-04-07  Richard Henderson  <rth@cygnus.com>
4590
4591         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
4592         not the raw files.
4593
4594 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
4595
4596         * cpplib.c (do_elif): Skip the rest of the line if we're
4597         not going to bother evaluating it.
4598         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
4599         to avoid pointless calls to the lexer.
4600
4601 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
4602
4603         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
4604
4605 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
4606
4607         * calls.c (expand_call): emit_queue if we're trying a sibcall.
4608
4609 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
4610
4611         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
4612
4613 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
4614
4615         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
4616         crtend so they can be multilibbed.
4617         (STAGESTUFF): Remove s-crt and s-crtS.
4618
4619 2000-04-07  Richard Henderson  <rth@cygnus.com>
4620
4621         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
4622         if we discover we need a pseudo and no_new_pseudos is true.
4623         * config/alpha/alpha.md (ne:DI insn): New.
4624         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
4625
4626 2000-04-07  Richard Henderson  <rth@cygnus.com>
4627
4628         * rtl.def (COND_EXEC): New.
4629         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
4630         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
4631
4632         * genconfig.c (have_cond_arith_flag): Remove.
4633         (have_cond_exec_flag): New.
4634         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
4635         (main): Print HAVE_conditional_execution.
4636
4637         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
4638         (sched_analyze_insn, print_pattern): Likewise.
4639         * reload.c (find_equiv_reg): Likewise.
4640         * rtlanal.c (reg_referenced_p): Likewise.
4641         (note_stores, dead_or_set_regno_p): Likewise.
4642         (reg_overlap_mentioned_p): Rewrite to use a switch.
4643
4644         * ggc.h (struct rtx_def): Forward declare.
4645
4646         * print-rtl.c (debug_rtx_range): New.
4647         * rtl.h (debug_rtx_range): Declare.
4648
4649         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
4650
4651         * gcse.c (gcse_main): Don't rebuild the CFG here.
4652         (delete_null_pointer_checks): Likewise.
4653         * ssa.c (convert_to_ssa): Likewise.
4654         * toplev.c (rest_of_compilation): Do it here instead.  Combine
4655         sequential calls to TIMEVAR.  Consistently use `insns' instead of
4656         `get_insns()'.  Always split insns after reload when optimizing.
4657
4658         * basic-block.h (merge_blocks_nomove): Declare.
4659         (tidy_fallthru_edge): Declare.
4660         * flow.c (merge_blocks_nomove): Document as merging into previous
4661         blocks.  Remove cruft from between blocks; remove all edges out of A.
4662         (tidy_fallthru_edge): Export.
4663
4664 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
4665
4666         * ssa.c (compute_conservative_reg_partition): Declare with
4667         void arguments.
4668         * toplev.c (clean_dump_file): Remove previously-deleted function
4669         inadvertantly merged back in.
4670         * conflict.c (conflict_graph_add): Use a single call to
4671         htab_find_slot to look up and insert.
4672
4673 2000-04-06  Richard Henderson  <rth@cygnus.com>
4674
4675         * genrecog.c (*): Rename _last_insn to last_insn.
4676         (make_insn_sequence): Set the position of the peephole2 C test
4677         to be at the last insn.
4678
4679 2000-04-06  Richard Henderson  <rth@cygnus.com>
4680
4681         * flow.c (compute_flow_dominators): Free worklist.
4682
4683 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
4684
4685         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
4686
4687 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
4688
4689         * rtl.h (INSN_P): New macro.
4690         (successor_phi_fn): New typedef.
4691         (for_each_successor_phi): New prototype.
4692         (in_ssa_form): New variable.
4693         (PHI_NODE_P): Likewise.
4694         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
4695         phi nodes in successors.
4696         (mark_used_regs): Add PHI case.
4697         (set_phi_alternative_reg): New function.
4698         (life_analysis): Assert that dead code elimination is not selected
4699         when in SSA form.
4700         * toplev.c (to_ssa_time): New variable.
4701         (from_ssa_time): Likewise.
4702         (compile_file): Zero to_ssa_time and from_ssa_time.
4703         Print time to convert to and from SSA.
4704         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
4705         (print_time): Compute percent fraction as integer.
4706         * ssa.c (PHI_NODE_P): Moved to rtl.h.
4707         (convert_to_ssa): Check if we're already in SSA.
4708         Don't eliminate dead code in life_analysis.
4709         Rerun flow and life analysis at bottom.
4710         (eliminate_phi): Use canonical regnos when adding nodes.
4711         (mark_reg_in_phi): New function.
4712         (mark_phi_and_copy_regs): Likewise.
4713         (convert_from_ssa): Rerun life analysis at top.
4714         Use coalesced partition.
4715         Check for removing a phi node at the end of the block.
4716         (compute_coalesced_reg_partition): New function.
4717         (coalesce_regs_in_copies): Likewise.
4718         (coalesce_reg_in_phi): Likewise.
4719         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
4720         (for_each_successor_phi): Likewise.
4721         (rename_context): New struct.
4722         (rename_block): Use a rename_context with rename_insn_1.  When
4723         renaming sets of a subreg, emit a copy of the entire reg first.
4724         (rename_insn_1): Treat data as a rename_context *.  Save current
4725         insn in set_data.
4726         (rename_set_data): Add field set_insn.
4727         * Makefile.in (HASHTAB_H): Move up in file.
4728         (OBSTACK_H): New macro.
4729         (collect2.o): Use OBSTACK_H in dependencies.
4730         (sdbout.o): Likewise.
4731         (emit-rtl.o): Likewise.
4732         (simplify-rtx.o): Likewise.
4733         (fix-header.o): Likewise.
4734         (OBJS): Add conflict.o.
4735         (conflict.o): New rule.
4736         * basic-block.h: Include partition.h.
4737         (conflict_graph): New typedef.
4738         (conflict_graph_enum_fn): Likewise.
4739         (conflict_graph_new): New prototype.
4740         (conflict_graph_delete): Likewise.
4741         (conflict_graph_add): Likewise.
4742         (conflict_graph_conflict_p): Likewise.
4743         (conflict_graph_enum): Likewise.
4744         (conflict_graph_merge_regs): Likewise.
4745         (conflict_graph_print): Likewise.
4746         (conflict_graph_compute): Likewise.
4747         * conflict.c: New file.
4748
4749 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
4750
4751         * tlink.c (read_repo_files): Don't look for .rpo info for
4752         linker flags.
4753
4754 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4755
4756         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
4757
4758 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4759
4760         * config/sh/lib1funcs.asm (___udivsi3_i4):
4761         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
4762         only depends on FMOVD_WORKS.
4763
4764 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4765
4766         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
4767         make double constant 8-byte aligned.
4768
4769 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
4770
4771         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
4772         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
4773         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
4774         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
4775         Accept storing GENERAL_REGS into offsetable memory.
4776         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
4777         building a TFmode constant other than 0.0L into GENERAL_REGS.
4778
4779 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
4780
4781         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
4782
4783 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
4784
4785         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
4786         (macro_cleanup): No need to cast pbuf->macro.
4787         (collect_expansion): Use _cpp_get_define_token.  Goto done if
4788         it returns VSPACE.  Remove check for trailing space after
4789         CPP_COMMENT.
4790         (_cpp_create_definition): Don't diddle flags here.  Return
4791         directly on error.
4792         (unsafe_chars): Handle c1 being EOF.
4793         (push_macro_expansion): Use unsafe_chars for both accidental-paste
4794         checks.  Don't push the buffer till after we're done with
4795         them.
4796         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
4797         (PEEKN, FORWARD, GETC, PEEKC): Use them.
4798         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
4799         appropriately.
4800         (_cpp_parse_assertion): Don't NUL terminate.
4801         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
4802         hspace before calling _cpp_parse_assertion.  Remove all sets
4803         of only_seen_white. Treat '\f' as hspace.  Don't do anything
4804         special with '\n' here.
4805         (maybe_macroexpand): Handle T_EMPTY hash entries without
4806         pushing a buffer at all.
4807         (cpp_get_token): Handle clearing only_seen_white here.  Handle
4808         incrementing the line number here.  Clear
4809         potential_control_macro as well as only_seen_white, if
4810         appropriate.
4811         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
4812         (_cpp_get_define_token): New function, basically like
4813         _cpp_get_directive_token was but doesn't eat horizontal space.
4814         Don't do anything with only_seen_white here.
4815         (_cpp_get_directive_token): Just call _cpp_get_define_token
4816         repeatedly till it returns non-hspace.
4817
4818         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
4819         (conditional_skip, skip_if_group): Return int.
4820         (DIRECTIVE_TABLE): Change origin of all conditional directives
4821         to "COND".
4822         (TRAD_DIRECT_P): New macro.
4823         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
4824         an error for a bogus directive, unless -lang-asm.  Use
4825         TRAD_DIRECT_P. Loop calling handler functions till one returns
4826         zero.
4827         (get_macro_name): Don't diddle flags here.
4828         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
4829         Create T_EMPTY nodes for #define macro /* nothing */.
4830         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
4831         Use hp->name when calling pass_thru_directive.
4832         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
4833         Return the result of conditional_skip and/or skip_if_group.
4834         Don't call _cpp_output_line_command.
4835         (consider_directive_while_skipping): Use _cpp_get_directive_token.
4836         Issue -Wtraditional warnings as appropriate.  Don't complain
4837         about unrecognized directives.  If we are to stop skipping,
4838         return the number of the directive that ended the skip.
4839         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
4840         expansion and line commands while skipping.  Return the result
4841         of consider_directive_while_skipping, if nonzero.
4842         (do_endif): Just set potential_control_macro here.
4843         (validate_else): Use _cpp_get_directive_token.
4844         (do_assert, do_unassert): Don't save pointers into the
4845         token_buffer across calls to the lexer.  Use
4846         _cpp_get_directive_token.
4847
4848         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
4849         pointer, not an offset.  Replace 'data', which was a generic
4850         pointer, with 'macro', which points to a struct hashnode.
4851         (cpp_reader): Add 'potential_control_macro' pointer.
4852         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
4853         (CPP_BUF_GET, CPP_FORWARD): Delete.
4854         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
4855         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
4856         ACTIVE_MARK_P): Update.
4857         (_cpp_get_define_token): New internal function.
4858         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
4859
4860 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
4861
4862         * configure.in: And here.
4863         * configure: Regenerate.
4864         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
4865         --enable-libstdcxx-v3 is passed at configure time.
4866         * config.h.in: Regenerate.
4867
4868 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
4869
4870         * final.c (final): Use xcalloc to allocate line_note_exists.
4871         * function.c (free_after_compilation): Free the temp_slots.
4872         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
4873         (combine_temp_slot): Free temp_slots when they get combined.
4874         (purge_addressof): Fix typo in comment.
4875         * stmt.c (mark_goto_fixup): Mark the fixup itself.
4876         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
4877
4878         * ggc.h: Include varray.h.
4879         (ggc_pending_trees): Declare.
4880         (ggc_mark_tree_children): Remove declaration.
4881         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
4882         * ggc-common.c (ggc_pending_trees): New variable.
4883         (ggc_mark_roots): Call ggc_mark_trees.
4884         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
4885         the ggc_pending_trees.
4886         * Makefile.in (GGC_H): New variable.  Use it throughout in place
4887         of ggc.h.
4888
4889 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4890
4891         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
4892         GET_MODE_SIZE.
4893
4894 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4895
4896         * sh.c (sh_insn_length_adjustment): New function.
4897         * sh-protos.h (sh_insn_length_adjustment): Declare.
4898         * sh.h (ADJUST_INSN_LENGTH): Use it.
4899
4900 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
4901
4902         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
4903         from the insn where REG_RETVAL is added.
4904         (emit_no_conflict_block): Ditto.
4905
4906         * md.texi (Standard Names): Clarify when movX is needed.
4907
4908         * combine.c (simplify_comparison) [MINUS]: Do not replace
4909         all (op (minus A B) 0) with (op A B).
4910
4911 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
4912                           J"orn Rennecke <amylaar@cygnus.co.uk>
4913
4914         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
4915         (block_lump_real): Likewise.
4916
4917 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
4918
4919         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
4920         remaining non-zero debugging masks.
4921
4922 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
4923
4924         * basic-block.h (verify_flow_info): Declare.
4925         (flow_loop_outside_edge_p): Declare.
4926         * flow.c (verify_flow_info): Remove declaration.
4927         (clear_log_links, flow_loop_outside_edge_p): Likewise.
4928
4929 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
4930
4931         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
4932         not C++ comments.
4933
4934 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
4935
4936         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
4937         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
4938         seqdi_zero_trunc+1): Allow splits only if registers are
4939         different.
4940
4941 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
4942
4943         * acconfig.h: Add HAVE_GAS_HIDDEN.
4944         * config.in: Regenerated.
4945         * configure.in: Add test for .hidden pseudo-op in gas.
4946         * configure: Regenerated.
4947         * crtstuff.c: Include auto-host.h.
4948         Emit additional .hidden pseudo-op for __dso_handle if the
4949         assembler knows about it.
4950
4951 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
4952
4953         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
4954         before freeing argnames.
4955         * cpplib.c (do_ifndef): Cast return value of xstrdup.
4956
4957 2000-04-05  Michael Meissner  <meissner@redhat.com>
4958
4959         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
4960         Walton <jonboy@gordian.com> to make memory references with update
4961         work wtih -mregnames.
4962
4963 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4964
4965         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
4966         (regrename_optimize): Rename variables `def_uses' and
4967         `ext_basic_blocks' to avoid conflicts with similarly named
4968         typedefs in traditional C.
4969
4970         * calls.c (initialize_argument_information): Fix typo in previous
4971         change.
4972
4973 2000-04-04  Richard Henderson  <rth@cygnus.com>
4974
4975         * regrename.c (consider_available): Test fixed_regs not
4976         PIC_OFFSET_TABLE_REGNUM.
4977
4978 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
4979
4980         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
4981         crtend.
4982         (CRTSTUFF_T_CFLAGS_S): Delete definition.
4983         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
4984         (ENDFILE_LINUX_SPEC): Always use crtend.
4985         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
4986         (powerpc-*-linux-gnu): Likewise.
4987         * configure: Regenerate.
4988
4989         * config/rs6000/eabi.h: Don't include sysv4.h.
4990         (MULTILIB_DEFAULTS): Don't define.
4991         * config/rs6000/eabiaix.h: Don't include eabi.h.
4992         * config/rs6000/eabile.h: Delete.
4993         * config/rs6000/eabilesim.h: Delete.
4994         * config/rs6000/eabisim.h: Don't include eabi.h.
4995         * config/rs6000/linux.h: Don't include sysv4.h.
4996         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
4997         (MULTILIB_DEFAULTS): Don't redefine.
4998         * config/rs6000/rtems.h: Don't include eabi.h.
4999         * config/rs6000/sol2.h: Don't include sysv4le.h.
5000         * config/rs6000/sysv4le.h: Don't include sysv4.h.
5001         * config/rs6000/t-ppc: Delete.
5002         * config/rs6000/t-ppcgas: Correct comment.
5003         * config/rs6000/t-ppcos: Correct comment.  Don't build
5004         multilibs for -fPIC, rather use -fPIC -mstrict-align
5005         as default.
5006         * config/rs6000/t-ppc: Delete.
5007         * config/rs6000/vxppc.h: Don't include sysv4.h.
5008         * config/rs6000/vxppcle.h: Delete.
5009         * configure.in: Use multiple header files for p2pc ELF targets
5010         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
5011         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
5012         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
5013         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
5014         always available for these platforms.
5015
5016 2000-04-04  Richard Henderson  <rth@cygnus.com>
5017
5018         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
5019
5020 2000-04-04  Stan Cox  <scox@cygnus.com>
5021
5022         * Makefile.in: Add rules for regrename.o
5023         * regrename.c: New file.
5024         * rtl.h (regrename_optimize): Add prototype.
5025         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
5026         (compile_file, decode_d_option): Add support for -frename-registers.
5027         (rest_of_compilation): Call regrename_optimize.
5028         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
5029         New macros.
5030
5031 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5032
5033         * Makefile (gccbug): New target.
5034         (doc): Depend on it.
5035         * gcc.texi (Bugs): Link subnodes.
5036         (gccbug): New node.
5037         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
5038         Document severities, priorities, and classes in bug form.
5039
5040 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
5041
5042         * cpplex.c (trigraph_map, speccase): Combine into single
5043         table, chartab.
5044         (NORMAL, NONTRI): New macros.
5045         (_cpp_read_and_prescan): Change to use unified table.  Use
5046         is_hspace to test for whitespace.
5047
5048         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
5049         definition that doesn't provoke the "empty body in an
5050         if-statement" warning.
5051
5052 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
5053
5054         * builtins.c (expand_builtin_strlen): Force the source to
5055         be a memory address.
5056
5057 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5058
5059         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
5060
5061 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5062
5063         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
5064          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
5065         (ECF_IS_CONST): Rename to ECF_CONST.
5066         (special_function_p): Make static, change interface.
5067         (flags_from_decl_or_type, try_to_integrate): Break out from ...
5068         (expand_call) ... here; convert number of variables to flags.
5069         (emit_library_call_vlue_1): Likewise.
5070         (setjmp_call_p): New function.
5071         (initialize_argument_information): Accepts flags as argument;
5072         return flags.
5073         (precompute_arguments): Likewise.
5074         * tree.h (special_function_p): Remove.
5075         (setjmp_call_p): Add prototype.
5076
5077 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
5078
5079         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
5080         so that addresses are offsetable by up to 16 bytes.
5081         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
5082         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
5083         offsetable.
5084
5085         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
5086         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
5087         (movsf): Don't force any constant to memory if target is integer
5088         hard register.
5089         Move fp_zero_operand check below the const0_rtx check.
5090         (movtf): Likewise. Also allow fp_zero_operand for stores into
5091         memory.
5092         (movdf): Likewise. Also allow fp_zero_operand for stores into
5093         memory and into integer hard registers.
5094         (clear_df, clear_dfp, movdf_const_intreg_sp32,
5095         movdf_const_intreg_sp64): Remove.
5096         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
5097         conditions.
5098         (movdf_no_e_insn_v9_sp32): New pattern.
5099         (movdf_insn_v9only): Remove.
5100         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
5101         (movdf_insn_sp64): Remove.
5102         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
5103         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
5104         (following splits): Rewrite conditions. Add two new splits
5105         for storing 0.0 into memory and registers.
5106         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
5107         (movtf_insn_sp32): Redo constraints and conditions.
5108         (movtf_insn_vis_sp32): New pattern.
5109         (movtf_no_e_insn_sp32): Redo constraints and conditions.
5110         (movtf_insn_hq_sp64): Likewise.
5111         (movtf_insn_hq_vis_sp64): New pattern.
5112         (movtf_insn_sp64): Redo constraints and conditions.
5113         (movtf_insn_vis_sp64): New pattern.
5114         (movtf_no_e_insn_sp64): Redo constraints and conditions.
5115         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
5116         or memory.
5117         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
5118         -mvis or -m64 to take down the number of various reload patterns.
5119
5120 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
5121
5122         * pa/pa-64.h: New file.
5123         * pa/pa64-regs.h: New file.
5124         * pa/pa64-start.h: New file.
5125         * pa/t-pa64: New file.
5126         * pa/xm-pa64hpux.h: New file.
5127
5128 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5129
5130         * sparc.c (output_restore_regs): Prototype.
5131         (sparc_emit_float_lib_cmp): Constification.
5132
5133         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
5134
5135         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
5136         Prototype.
5137
5138         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
5139         (get_value_hash, hash_rtx): Likewise.
5140
5141         * ssa.c (compute_conservative_reg_partition): Prototype.
5142
5143         * tree.c (mark_hash_entry): Prototype.
5144
5145 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
5146
5147         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
5148         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
5149         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
5150
5151         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
5152         * objc/lang-specs.h: Likewise.
5153
5154 2000-04-03  Neil Booth  <NeilB@earthling.net>
5155
5156         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
5157         and SYNTAX_ERROR2. Replace `' in messages with ''.
5158         (op_to_str): Make re-entrant.
5159         (_cpp_parse_expr): Implement new error macros. Use | rather
5160         than || to logically or 2 boolean integers.  Simply expression
5161         checking we have a left operand iff needed.
5162
5163 2000-04-03  Nick Clifton  <nickc@cygnus.com>
5164
5165         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
5166
5167 2000-04-03  Philip Blundell  <philb@gnu.org>
5168
5169         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
5170
5171 2000-04-03  Felix Lee  <flee@cygnus.com>
5172
5173         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
5174         (run_shell): Use it.
5175
5176 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
5177
5178         * Makefile.in (stmp-int-hdrs): Make include subdir here...
5179         (stmp-fixproto): ...rather than here.
5180
5181 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
5182
5183         * pa.c (print_operand): Compute 'base' only inside the code paths
5184         that use it.
5185
5186 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
5187
5188         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
5189         CEIL_DIV_EXPR.
5190
5191 2000-04-03  Philipp Thomas  <pthomas@suse.de>
5192
5193         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
5194
5195 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
5196
5197         * Makefile.in (alias.o): Depend on $(TREE_H).
5198
5199 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
5200
5201         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
5202         processing C++.
5203         * cpplib.c (_cpp_handle_directive): Improve warnings for
5204         traditional C and indented directives.
5205
5206         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
5207         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
5208         fixinc/inclhack.def: Indent the # of #include_next one space.
5209         * cp/rtti.c: Un-indent #if and #endif.
5210
5211         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
5212         syntax error, but an error has already been printed.
5213         * cpplex.c (_cpp_parse_assertion): Give a more specific error
5214         message when called with nothing remaining on the line.
5215         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
5216         OTHER token, not an ASSERTION.
5217         * cpplib.c (do_assert): When we create a 'base' node, clear
5218         its aschain pointer.
5219
5220 2000-04-02  Neil Booth <NeilB@earthling.net>
5221
5222         * cppexp.c:  New typedef op_t.  struct operation and struct
5223         token updated to use it.
5224         (op_to_str): New function.
5225         (_cpp_parse_expr): Error messages modified to use op_to_str.
5226
5227 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5228
5229         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
5230         before checking MUST_PASS_IN_STACK.
5231
5232 2000-04-02  Neil Booth <NeilB@earthling.net>
5233
5234         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
5235         flags and initial priority into a single constant.  New
5236         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
5237         (_parse_cpp_expr): Implement new constants.  Take left operand
5238         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
5239         parse indicated by reducing FINISHED token.  Remove new lines
5240         from cpp_error messages.
5241
5242 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
5243
5244         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
5245         permanent obstack.
5246
5247 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
5248
5249         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
5250         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
5251         the strings and function names on the fly.  Take the #sccs
5252         entry out of the table if SCCS_DIRECTIVE is not defined.
5253         (_cpp_handle_directive): Decide if the # was at the beginning
5254         of the line here.  Issue -pedantic warnings for extended
5255         directives here.  Warn about K+R directives with the #
5256         indented, and C89/extended directives with the # not indented,
5257         here.
5258         (do_import, do_include_next, do_warning, do_ident, do_sccs,
5259         do_assert, do_unassert): Don't issue pedantic warning here.
5260
5261         * cpphash.h: Add CPP_WTRADITIONAL macro.
5262         * cpplib.h (struct cpp_options): Rename warn_stringify to
5263         warn_traditional; update comments.
5264         * cppinit.c (handle_option): Set warn_traditional not
5265         warn_stringify.
5266         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
5267         CPP_WTRADITIONAL (pfile).
5268         * cpplex.c (_cpp_lex_token): Don't decide if directives should
5269         be ignored in -traditional mode here.
5270
5271         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
5272         to initialize speccase[] and trigraph_map[].  Delete all
5273         references to pfile->input_speccase.  Always treat '?' as a
5274         special character.  Remove table-initialization code from
5275         _cpp_init_input_buffer.
5276
5277         * cpplib.h (struct cpp_reader): Remove input_speccase field.
5278         * cppinit.c (cpp_cleanup): Don't free input_speccase.
5279
5280 2000-04-01  Richard Henderson  <rth@cygnus.com>
5281
5282         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
5283         (mostlyclean): Likewise.
5284
5285         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
5286         (struct dump_file_info, enum dump_file_index, dump_file): New.
5287         (open_dump_file): Take a dump_file_index not a suffix, and a decl
5288         not a string.  Clean out file if we havn't yet done so.  Do nothing
5289         if the dump isn't enabled.
5290         (close_dump_file): Do nothing if the dump isn't open.  Dump
5291         graph data if requested.
5292         (dump_rtl, clean_dump_file): Remove.
5293         (compile_file): Don't clean the dump files.  Only finalize .bp dump
5294         if flag_test_coverage or flag_branch_probabilities.  Only finalize
5295         .combine dump if optimizing.  Iterate over dump_file to finalize the
5296         graph dumps.
5297         (rest_of_compilation): Update for open_dump_file/close_dump_file.
5298         Convert all uses of dump_rtl.
5299         (decode_d_option): Iterate over dump_file to implement 'a' and to
5300         locate pass-specific dumps.
5301
5302 2000-04-01  Neil Booth <NeilB@earthling.net>
5303
5304         * cppexp.c: Redefine priority constants.
5305         (_cpp_parse_expr): Replace left and right priority scheme with
5306         single priority logic.  Move LOGICAL to same place as COMPARE.
5307         Remove bogus check for multiple unary +/- operators.
5308
5309 2000-04-01  Neil Booth <NeilB@earthling.net>
5310
5311         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
5312         within the switch statement.  Binary operations break out of
5313         the switch naturally.  '(' tokens handled by forcing
5314         immediate shift.  ')' handled by forcing immediate reduce to
5315         the previous '('.  New error messages.
5316
5317 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
5318
5319         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
5320         part', it's already in use.  Use %K instead.  Add a return at the
5321         end of what is now %K.
5322         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
5323
5324 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5325
5326         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
5327         allocate_dynamic_stack_space.
5328         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
5329         update stack_pointer_delta; do not update arg_size_so_far.
5330         (compute_argument_block_size): Use stack_delta instead of
5331         stack_pointer_pending and arg_size_so_far.
5332         (expand_call): Add sanity checking for stack_pointer_delta;
5333         save and restore stack_pointer_delta for SIB, use
5334         stack_pointer_delta for alignment; do not update arg_space_so_far.
5335         (emit_library_call_value): Use stack_pointer_delta for alignment.
5336         (store_one_arg): Do not update arg_space_so_far.
5337         * explow.c (adjust_stack, anti_adjust_stack): Update
5338         stack_pointer_delta.
5339         (allocate_dynamic_stack_space): Add sanity checking for
5340         stack_pointer_delta.
5341         * expr.c (init_expr, clear_pending_stack_adjust): Clear
5342         stack_pointer_delta.
5343         (emit_push_insn): Update stack_pointer_delta.
5344         * function.h (struct expr_status): Add x_stack_pointer_delta;
5345         remove x_arg_space_so_far.
5346         (arg_space_so_far): Remove.
5347         (stack_pointer_delta): New macro.
5348
5349 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
5350
5351         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
5352         Reorder struct cpp_options and struct cpp_reader for better
5353         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
5354         takes two args.  Change all 'char' flags to 'unsigned char'.
5355         Move show_column flag into struct cpp_options.  Don't
5356         prototype cpp_options_init.
5357         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
5358         cppinit.c, cpplex.c, cpplib.c:
5359         Replace CPP_OPTIONS (pfile)->whatever with
5360         CPP_OPTION (pfile, whatever), and likewise for
5361         opts = CPP_OPTIONS (pfile); ... opts->whatever;
5362
5363         * cppinit.c (merge_include_chains): Take a cpp_reader *.
5364         Extract CPP_OPTION (pfile, pending) and work with that
5365         directly.
5366         (cpp_options_init): Delete.
5367         (cpp_reader_init): Turn on on-by-default options here.
5368         Allocate the pending structure here.
5369         (cl_options, enum opt_code): Define these from the same table,
5370         kept in a large macro.  Add -fshow-column and -fno-show-column
5371         options.
5372
5373         * cpperror.c (v_message): If show_column is off, don't print
5374         the column number.
5375
5376         * cppmain.c: Update for new interface.
5377         * fix-header.c: Likewise.
5378
5379 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
5380
5381         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
5382         definition.
5383         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
5384         are passed to any invocation of AR_FOR_TARGET.
5385         (AR_CREATE_FOR_TARGET): New macro.
5386         (AR_EXTRACT_FOR_TARGET): New macro.
5387         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
5388         AR_EXTRACT_FOR_TARGET.
5389         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
5390         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
5391         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
5392         AR_EXTRACT_FOR_TARGET to sub-makes.
5393
5394 2000-03-31  Neil Booth <NeilB@earthling.net>
5395
5396         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
5397         PAREN_INNER_PRIO.
5398         (_cpp_parse_expr): Check for multiple unary +/- operators.
5399         Correct priorities of ':' and '?'.  Treat ')' as having a
5400         value.  Ensure conditional expression is not void.
5401
5402 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
5403
5404         * alias.c (canon_rtx): Make it global.
5405         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
5406         equality.
5407         * cse.c (struct table_elt): Add canon_exp.
5408         (insert): Clear it.
5409         (invalidate): Canonicalize expressions only once.
5410         * rtl.h (canon_rtx): Declare.
5411
5412 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
5413
5414         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
5415         * alias.c (reg_known_value): Add comments.
5416         (init_alias_analysis): Likewise.
5417         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
5418         address.
5419         (cse_basic_block): Fix typo in comment.
5420         * emit-rtl.c: Include hashtab.h.
5421         (const_int_htab): New variable.
5422         (const_int_htab_hash): New function.
5423         (const_int_htab_eq): Likewise.
5424         (rtx_htab_mark_1): Likewise.
5425         (rtx_htab_mark): Likewise.
5426         (gen_rtx_CONST_INT): Cache all CONST_INTs.
5427         (unshare_all_rtx): Fix formatting.
5428         (init_emit_once): Initialize const_int_htab.
5429         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
5430         address.
5431         * rtl.texi: Document the fact that all CONST_INTs with the same
5432         value are shared.
5433
5434 2000-03-30  Richard Henderson  <rth@cygnus.com>
5435
5436         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
5437
5438 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
5439
5440         * configure.in: Comment out --enable-c-cpplib stanza.
5441         * configure: Regenerate.
5442
5443 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5444
5445         * expr.c (store_constructor): Properly compute displacement and
5446         alignment when offset is variable.
5447
5448         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
5449         cases of alignment in bytes.
5450
5451 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
5452
5453         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
5454         since it is used to generate c-parse.y.
5455         * objc-parse.c, objc-parse.y: Regenerated.
5456
5457         * function.c (expand_function_end): Pass alignment argument to
5458         emit_block_move in bits, not bytes.
5459
5460 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5461
5462         * expr.c (move_by_pieces_ninsns): Fix one more missing align
5463         correction.
5464
5465         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
5466
5467         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
5468         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
5469         * function.c (assign_parms): Likewise.
5470         * integrate.c (expand_inline_function): Likewise.
5471         * stmt.c (expand_decl): Likewise.
5472         (copy_rtx_and_substitute): Likewise.
5473         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
5474         (clear_by_pieces): Fix error in last change.
5475         * emit-rtl.c (init_emit): Set known registers alignment in bits.
5476         * function.h (regno_pointer_align): Now unsigned.
5477         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
5478         is in bits.
5479         * config/i386/i386.c (aligned_operand): Likewise.
5480         * config/sparc/sparc.c (mem_min_alignment): Likewise.
5481         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
5482         (unaligned_memory_operand): Likewise.
5483         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
5484         Also make alignments and sizes unsigned and some whitespace cleanup.
5485         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
5486
5487         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
5488         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
5489         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
5490         (expand_builtin_memset): Likewise, but to clear_storage.
5491         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
5492         (restore_fixed_argument_area): Likewise.
5493         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
5494         (load_register_parameters): Likewise, to emit_group_load.
5495         (expand_call): Likewise, to emit_group_store and emit_block_move.
5496         (emit_library_call_value_1): Likewise, to emit_block_move.
5497         (store_one_arg): Likewise, and to emit_push_insn.
5498         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
5499         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
5500         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
5501         (emit_block_move, emit_group_load, emit_group_store): Likewise.
5502         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
5503         (expand_assigment, store_expr, store_constructor_field): Likewise.
5504         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
5505         (store_constructor, store_field, get_inner_reference): Likewise.
5506         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
5507         (expand_expr, case COMPONENT_REF): Likewise.
5508         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
5509         and positions; reindent code.
5510         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
5511         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
5512         (assign_parms): Likewise to emit_group_store.
5513         * optabs.c (prepare_cmp_insn): Alignment is in bits.
5514         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
5515         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
5516         (expand_return): Likewise to {extract,store}_bit_field.
5517         * stor-layout.c (get_mode_alignment): Minor cleanup.
5518         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
5519         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
5520
5521 2000-03-29  Nick Clifton  <nickc@cygnus.com>
5522
5523         * config/arm/arm.h: Undo effects of previous delta:
5524         (ASM_SPEC): Do not define.
5525         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
5526
5527         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
5528         typo.
5529
5530 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
5531
5532         * cppinit.c (cpp_start_read): Call initialize_dependency_output
5533         only after reading in the primary source file.
5534
5535 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
5536
5537         * c-common.c (c_common_nodes_and_builtins): The first parameter to
5538         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
5539         or a reference to a va_list.
5540         * builtins.c (stabilize_va_list): Simplify now we don't have to
5541         work around C array address decay.
5542         * c-typeck.c (convert_for_assignment): Handle assignment to
5543         a reference parameter by taking the address of the RHS.
5544         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
5545         (va_copy): Likewise.
5546         (__va_copy): Likewise.
5547         * ginclude/varargs.h (va_start): Likewise.
5548         (__va_copy): Likewise.
5549
5550 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
5551
5552         * i386/djgpp.h: Remove extraneous "+".
5553
5554         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
5555
5556         * calls.c (expand_call): Fix typo in last change.
5557
5558 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
5559
5560         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
5561         been expanded.
5562
5563 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5564
5565         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
5566         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
5567         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
5568         * tree.c (bit_position, byte_position): Likewise.
5569         * tree.h: Declare new functions.
5570
5571 2000-03-29  Nick Clifton  <nickc@cygnus.com>
5572
5573         * config/arm/arm.c: Minor formatting changes/
5574         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
5575         already defined.
5576         (ASM_SPEC): Define if not already defined.
5577
5578 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
5579
5580         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
5581         _cpp_calc_hash.
5582
5583 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
5584
5585         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
5586         value, don't output it as unsigned.
5587
5588 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
5589
5590         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
5591
5592 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5593
5594         * c-common.c (c_common_nodes_and_builtins): Don't special case
5595         cplus_mode when declaring builtin bzero/bcmp, always avoid
5596         prototype arguments.
5597
5598 2000-03-29  Bruce Korb  <bkorb@gnu.org>
5599
5600         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
5601         to a non-file
5602
5603 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5604
5605         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
5606         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
5607         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
5608         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
5609         (save_fixed_argument_area, restore_fixed_argument_area):
5610         conditionize by #ifdef REG_PARM_STACK_SPACE only.
5611         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
5612         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
5613         (precompute_register_parameters): Avoid #ifdefs on
5614         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
5615         (stire_one_args): Likewise.
5616         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
5617         (emit_library_call_value_1): Likewise.
5618         (compute_argument_block_size): Align to STACK_BOUNDARY only for
5619         ACCUMULATE_OUTGOING_ARGS.
5620         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
5621         value.
5622         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
5623         (use_crosses_set_p): Likewise.
5624         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
5625         #define ACCUMULATE_OUTGOING_ARGS 1.
5626         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
5627         frames.
5628         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
5629         constants.
5630         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
5631         (TARGET_SWITCHES): Add push-args, no-push-args,
5632         accumulate-outgoing-args and no-accumulate-outgoing-args.
5633         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
5634         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
5635         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
5636         and PUSH_ROUNDING.
5637         (emit_push_insn): Likewise.
5638         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
5639         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
5640         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
5641         (STACK_DYNAMIC_OFFSET): Define correctly for both
5642         ACCUMULATE_OUTGOING_ARGS and normal mode.
5643         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
5644         * tm.texi (PUSH_ARGS): Document.
5645         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
5646
5647 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5648
5649         * flags.h (flag_optimize_sibling_calls): Declare.
5650         * calls.c (expand_call): Fail sibcall when
5651         !flag_optimize_sibling_calls
5652         * invoke.texi (flag_optimize_sibling_calls): Document.
5653         * toplev.c (flag_optimize_sibling_calls): New global variable.
5654         (f_options): Add flag_optimize_sibling_calls.
5655         (rest_of_compilation): Conditionize
5656         optimize_sibling_and_tail_recursive_calls by
5657         flag_optimize_sibling_calls.
5658         (main): Set flag_optimize_sibling_calls for -O2.
5659         * stmt.c (expand_return): Conditionize tail recursion by
5660         flag_optimize_sibling_calls.
5661
5662 2000-03-29  Richard Henderson  <rth@cygnus.com>
5663
5664         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
5665         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
5666
5667 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
5668
5669         * except.c (add_eh_table_entry): Mark type_info's as referenced.
5670
5671 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5672
5673         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
5674         is given.
5675         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
5676         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
5677         * config/rs6000/aix.h: then modified likewise.
5678
5679 2000-03-28  Richard Henderson  <rth@cygnus.com>
5680
5681         * rtl.h: Redistribute enum reg_note documentation.
5682         Kill trailing whitespace.
5683         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
5684         Kill trailing whitespace.
5685
5686 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
5687
5688         * cppfiles.c (hash_IHASH): Just return i->hash.
5689         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
5690         htab_find_with_hash.
5691         (cpp_read_file): Likewise.
5692         (find_include_file): Likewise.  Properly initialize
5693         ih->nshort.  Share ih->name and ih->nshort if possible.
5694         * cpphash.c (_cpp_calc_hash): New function.
5695         (hash_HASHNODE): Just return h->hash.
5696         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
5697         htab_find_with_hash.
5698         * cpphash.h: Prototype _cpp_calc_hash.
5699         * cppinit.c (initialize_builtins): Provide a valid hash
5700         to _cpp_make_hashnode, using _cpp_calc_hash.
5701
5702         * cpphash.c (collect_expansion): # is not a special character
5703         in object-like macros.  In -traditional mode, /**/ is not
5704         token paste at the beginning or end of the line.
5705         * cpplib.c (do_include, do_import, do_include_next): If
5706         parse_include fails, return immediately.
5707
5708 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
5709
5710         * config/arm/arm.md (return peepholes): Update to reflect the new
5711         call insn patterns.
5712         * config/arm/arm.c (arm_volatile_func): Also check
5713         current_function_nothrow.
5714         (output_return_instruction, output_func_prologue): Use it.
5715         (arm_output_epilogue, arm_expand_prologue): Likewise.
5716
5717 2000-03-27  Tom Tromey  <tromey@cygnus.com>
5718
5719         * gcc.c (handle_braces): In {x*...} case, break out of loop if
5720         switch is found.
5721
5722 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5723
5724         * expr.c (store_constructor): SIZE now signed.
5725         For EXPR_SIZE, don't evaluate size; just needed if constant.
5726         * fold-const.c (fold): Fix a number of cases when folded tree is
5727         wrong type.
5728         * function.c (flush_addressof): Reenable.
5729         * tree.h (flush_addressof): Likewise.
5730         * toplev.c (independent_decode_option): Look at strings_processed.
5731         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
5732
5733 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
5734
5735         * sibcall.c (indentify_call_return_value): Find last call in the chain;
5736         Allow stack adjustment after function call.
5737
5738         * regmove.c (struct csa_memlist): Make mem field rtx *.
5739         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
5740         (try_apply_stack_adjustment): Replace whole MEM rtx.
5741         (combine_stack_adjustments_for_block): Update calls
5742         to record_one_stack_ref.
5743
5744 2000-03-28  Neil Booth  <NeilB@earthling.net>
5745
5746         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
5747         '\\' rather than a null character, so nulls are not special.  Fix
5748         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
5749         speed trigraph conversion.
5750         (_cpp_init_input_buffer): Initialize trigraph map.
5751
5752 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
5753
5754         * config/i386/i386.c (output_387_binary_op): Correct intel
5755         mode assembly output, and add spaces after commas in AT&T
5756         output.  Correct Unixware assembler comment.  Document input
5757         constraints.  Comment fp operations.  Reduce profligate buffer
5758         size.  Remove extraneous abort.  Localize temp var.
5759         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
5760         (output_fix_trunc): Add spaces after commas in assembly output.
5761
5762 2000-03-27  Richard Henderson  <rth@cygnus.com>
5763
5764         * i386-protos.h (ix86_match_ccmode): Declare.
5765         * i386.c (ix86_match_ccmode): New.
5766         (ix86_expand_fp_compare): Update for pattern renames.
5767         (ix86_expand_strlensi_unroll_1): Likewise.
5768         * i386.h (EXTRA_CC_MODES): Add CCZ.
5769         (SELECT_CC_MODE): Use it for EQ/NE zero.
5770         * i386.md (cmpsi_ccz_1): New.
5771         (cmpqi_ccz_1): New.
5772         (*testsi_ccz_1): New.
5773         (testqi_ccz_1): New.
5774         (cmpsi_ccno_1): Rename from cmpsi_0.
5775         (testsi_ccno_1): Rename from testsi_1.
5776         (testqi_ccno_1): Rename from testqi_1.
5777         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
5778         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
5779         (*cmphi_0): Use ix86_match_ccmode.
5780         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
5781         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
5782         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
5783         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
5784         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
5785         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
5786         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
5787         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
5788         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
5789         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
5790         (appropriate peepholes): Likewise.
5791         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
5792         (*subsi_3, *subhi_3, *subqi_3): Remove.
5793         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
5794         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
5795         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
5796         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
5797         (x86_shift_adj_1): Use CCZ.
5798         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
5799
5800 2000-03-27  Stan Cox  <scox@cygnus.com>
5801
5802         * resource.h (mark_resource_type): New.
5803         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
5804         find_free_register): Use mark_resource_type.
5805         (mark_set_resources): Change include_delayed_effects
5806         to mark_resource_type.
5807         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
5808         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
5809         Use mark_resource_type.
5810
5811 2000-03-27  Richard Henderson  <rth@cygnus.com>
5812
5813         * i386.md (call_pop_0, call_value_pop_0): New.
5814         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
5815         (call_value_pop_1): Likewise.
5816         (call_0, call_value_0): New.
5817         (call_1, call_value_1): Remove constraint from unused arg.
5818
5819 2000-03-27  Nick Clifton  <nickc@cygnus.com>
5820
5821         * invoke.texi (Spec Files): Document new spec % command created by
5822         Tom Tromey's recent patch.
5823
5824 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
5825
5826         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
5827         if not defined.
5828
5829 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5830
5831         * expr.c (expand_assignment): Fix typo in last change.
5832
5833         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
5834
5835 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5836
5837         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
5838         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
5839         and DECL_INLINE if FUNCTION_DECL.
5840         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
5841         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
5842         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
5843         (combine_parm_decls): Likewise.
5844         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
5845         * print-tree.c (print_node): Likewise.
5846         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
5847         DECL_TRANSPARENT_UNION on proper decl types.
5848         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
5849         * stor-layout.c (layout_decl): Only check DECL_PACKED and
5850         DECL_BIT_FIELD of FIELD_DECL.
5851         * tree.h (DECL_RESULT_FLD): New macro.
5852
5853         * expr.c (expand_assignment): Add code to handle variable-sized
5854         BLKmode case.
5855
5856 2000-03-26  Richard Henderson  <rth@cygnus.com>
5857
5858         * calls.c (expand_call): Pass parms not original exp to
5859         optimize_tail_recursion.  Mind return value instead of looking
5860         for a barrier.
5861         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
5862         call_expr.  Move checks for call_expr and current_function_decl ...
5863         (expand_return): ... here.
5864
5865 2000-03-26  Tom Tromey  <tromey@cygnus.com>
5866
5867         * gcc.c (handle_braces): Recognize `%{<S}' construct.
5868         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
5869         defines.
5870         (process_command): Use them.
5871         (check_live_switch): Likewise.
5872         (give_switch): Skip ignored switches.
5873
5874 2000-03-26  Jan Hubicka  <jh@suse.cz>
5875
5876         * jump.c (jump_optimize_1): Fix typo in elide optimizations
5877         for minimal jump pass test.
5878
5879 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
5880
5881         * integrate.c (function_cannot_inline_p): Do inline functions that
5882         return `void'.
5883
5884 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5885
5886         * stor-layout.c (layout_type, set_sizetype): early_type_list is
5887         now a list of TREE_LIST entries, not types.
5888         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
5889
5890         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
5891         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
5892         int_bit_position.
5893         * config/mips/mips.c (function_arg): Likewise; also remove cast
5894         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
5895         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
5896         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
5897         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
5898         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
5899         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
5900         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
5901         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
5902         num_adjusts now unsigned.
5903         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
5904         * config/sparc/sparc.c (struct function_arg_record_value_parms):
5905         NREGS now unsigned.
5906         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
5907         as is BITPOS variable; use host_integerp and int_bit_position.
5908         (function_arg_record_value_2): Likewise.
5909         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
5910         Variable REGNO now unsigned.
5911         (function_arg_record_value): NREGS now unsigned.
5912
5913 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
5914
5915         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
5916
5917 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5918
5919         * Rework fields used to describe positions of bitfields and
5920         modify sizes to be unsigned and use HOST_WIDE_INT.
5921         * alias.c (reg_known_value_size): Now unsigned.
5922         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
5923         (really_start_incremental_init): Use bitsize_zero_node.
5924         (push_init_level, pop_init_level, output_init_element): Likewise.
5925         Use bitsize_unit_node and bitsize_one_node.
5926         (output_pending_init_elements, process_init_element): Likewise.
5927         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
5928         (make_extraction): Position and length HOST_WIDE_INT and unsigned
5929         HOST_WIDE_INT, respectively.
5930         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
5931         (num_sign_bit_copies): Returns unsigned.
5932         BITWIDTH now unsigned; rework arithmetic.
5933         Remove recursive call from arg to MAX.
5934         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
5935         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
5936         REGNO now unsigned.
5937         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
5938         (find_split_point, expand_compound_operation, make_extraction): LEN
5939         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
5940         (make_field_assignment): Likewise.
5941         (combine_simplify_rtx): Add cast.
5942         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
5943         (force_to_mode): WIDTH now unsigned; add cast.
5944         (if_then_else_cond): SIZE now unsigned.
5945         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
5946         (extended_count): Now returns unsigned.
5947         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
5948         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
5949         (simplify_comparison): MODE_WIDTH now unsigned.
5950         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
5951         (mark_used_regs_combine): Likewise; rework arithmetic.
5952         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
5953         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
5954         (record_promoted_value): REGNO now unsigned.
5955         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
5956         (get_last_value): REGNO now unsigned.
5957         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
5958         (reg_dead_regno, reg_dead_endregno): Now unsigned.
5959         (remove_death): Arg REGNO now unsigned.
5960         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
5961         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
5962         now unsigned.
5963         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
5964         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
5965         (struct cse_reg_info): REGNO now unsigned.
5966         (cached_regno): Now unsigned.
5967         (REGNO_QTY_VALID_P): Add cast.
5968         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
5969         (remove_invalid_regs): Likewise.
5970         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
5971         as are variables END and I.
5972         (get_cse_reg_info, insert): Likewise.
5973         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
5974         (canon_hash): Likewise.
5975         (insert_regs, lookup_for_remove): REGNO now unsigned.
5976         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
5977         New variable RN.
5978         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
5979         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
5980         * emit-rtl.c (subreg_realpart_p): Add cast.
5981         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
5982         (operand_subword_force): Arg I is now unsigned.
5983         * except.c (eh_regs): Variable I is now unsigned.
5984         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
5985         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
5986         length is unsigned HOST_WIDE_INT; likewise for internal variables.
5987         (store_split_bit_field, extract_fixed_bit_field): Likewise.
5988         (extract_split_bit_field, store_bit_field, extract_bit_field):
5989         Likewise.
5990         * expr.c (store_constructor_fields, store_constructor, store_field):
5991         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
5992         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
5993         (do_jump): Likewise.
5994         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
5995         MAX_SIZE is now unsigned.
5996         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
5997         (emit_group_store): Likewise.
5998         (emit_move_insn): I now unsigned.
5999         (store_constructor): Use host_integerp, tree_low_cst, and
6000         bitsize_unit_node.
6001         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
6002         Rework all calculations to use trees and new fields.
6003         * expr.h (promoted_input_arg): Regno now unsigned.
6004         (store_bit_field, extract_bit_field): Adjust types of pos and size.
6005         (mark_seen_cases): Arg is HOST_WIDE_INT.
6006         * flow.c (verify_wide_reg_1): REGNO now unsigned.
6007         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
6008         precisions and alignments are unsigned.
6009         (optimize_bit_field_compare, fold_truthop): Likewise.
6010         (int_const_binop): Adjust threshold for size_int_type_wide call.
6011         (fold_convert): Likewise.
6012         (size_int_type_wide): Make table larger and fix thinko that only
6013         had half of table used.
6014         (all_ones_mask_p, fold): Precisions are unsigned.
6015         * function.c (put_reg_info_stack): REGNO is unsigned.
6016         (instantiate_decl): Size is HOST_WIDE_INT.
6017         (instantiate_virtual_regs): I is unsigned.
6018         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
6019         (promoted_input_arg): REGNO is unsigned.
6020         * function.h (struct function): x_max_parm_reg is now unsigned.
6021         * gcse.c (max_gcse_regno): Now unsigned.
6022         (struct null_pointer_info): min_reg and max_reg now unsigned.
6023         (lookup_set, next_set): REGNO arg now unsigned.
6024         (compute_hash_table): REGNO and I now unsigned.
6025         (handle_avail_expr): regnum_for_replacing now unsigned.
6026         (cprop_insn): REGNO now unsigned.
6027         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
6028         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
6029         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
6030         * hard-reg-set.h (reg_class_size): Now unsigned.
6031         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
6032         * jump.c (mark_modified_reg): I now unsigned; add cast.
6033         (rtx_equal_for_thread_p): Add cast.
6034         * loop.c (max_reg_before_loop): Now unsigned.
6035         (struct_movable): REGNO now unsigned.
6036         (try_copy_prop): REGNO arg unsigned.
6037         (regs_match_p): XN and YN now unsigned.
6038         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
6039         (strength_reduce): Likewise; NREGS also unsigned.
6040         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
6041         * loop.h (struct iv_class): REGNO now unsigned.
6042         (max_reg_before_loop, first_increment_giv, last_increment_giv):
6043         Now unsigned.
6044         * machmode.h (mode_size, mode_unit_size): Now unsigned.
6045         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
6046         * optabs.c (expand_binop): I and NWORDS now unsigned.
6047         (expand_unop): I now unsigned.
6048         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
6049         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
6050         * real.c (significand_size): Now returns unsigned.
6051         * real.h (significand_size): Likewise.
6052         * regclass.c (reg_class_size): Now unsigned.
6053         (choose_hard_reg_mode): Both operands now unsigned.
6054         (record_reg_classes): REGNO and NR now unsigned.
6055         (reg_scan): NREGS now unsigned.
6056         (reg_scan_update): old_max_regno now unsigned.
6057         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
6058         * reload.c (find_valid_class): BEST_SIZE now unsigned.
6059         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
6060         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
6061         Likewise for variable R.
6062         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
6063         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
6064         (find_equiv_reg): Add casts.
6065         (regno_clobbered_p): Arg REGNO now unsigned.
6066         * reload.h (struct reload): NREGS now unsigned.
6067         (refers_to_regno_for_reload_p): Regno args are unsigned.
6068         (regno_clobbered_p): Likewise.
6069         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
6070         (compute_use_by_pseudos): REGNO now unsigned.
6071         (find_reg): I and J now unsigned, new variable K, and change loop
6072         variables accordingly; THIS_NREGS now unsigned.
6073         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
6074         (spill_hard_reg): REGNO arg now unsigned; add casts.
6075         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
6076         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
6077         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
6078         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
6079         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
6080         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
6081         (emit_reload_insns): REGNO now unsigned.
6082         (reload_cse_move2add): Add cast.
6083         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
6084         and rework loop.
6085         * resource.c (mark_referenced_resources, mark_set_resources): New
6086         variable R; REGNO and LAST_REGNO now unsigned.
6087         (mark_target_live_regs): J and REGNO now unsigned.
6088         * rtl.c (mode_size, mode_unit_size): Now unsigned.
6089         * rtl.h (union rtunion_def): New field rtuint.
6090         (XCUINT): New macro.
6091         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
6092         (operand_subword, operand_subword_force): Word number is unsigned.
6093         (choose_hard_reg_mode): Operands are unsigned.
6094         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
6095         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
6096         (regno_use_in, combine_instructions, remove_death): Likewise.
6097         (reg_scan, reg_scan_update): Likewise.
6098         (extended_count): Return is unsigned.
6099         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
6100         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
6101         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
6102         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
6103         (reg_reg_last_1): FIRS and LAST now unsigned.
6104         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
6105         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
6106         now unsigned.
6107         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
6108         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
6109         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
6110         (replace_regs): Arg NREGS now unsigned.
6111         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
6112         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
6113         (simplify_binary_operation): Likewise.
6114         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
6115         THIS_LAST now unsigned.
6116         (cselib_record_set): Add cast.
6117         * ssa.c (ssa_max_reg_num): Now unsigned.
6118         (rename_block): REGNO now unsigned.
6119         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
6120         sizes now unsigned.
6121         (all_cases_count): Just return -1 not -2.
6122         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
6123         Rework tests to use trees whenever possible.
6124         Use host_integerp and tree_low_cst.
6125         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
6126         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
6127         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
6128         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
6129         (smallest_mode_for_size): Likewise.
6130         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
6131         KNOWN_ALIGN is now an alignment, so simplify code.
6132         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
6133         (start_record_layout): Renamed from new_record_layout_info.
6134         Update to new fields.
6135         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
6136         New functions.
6137         (place_union_field): Renamed from layout_union_field.
6138         Update to use new fields in rli.
6139         (place_field): Renamed from layout_field.
6140         Major rewrite to use new fields in rli; pass alignment to layout_decl.
6141         (finalize_record_size): Rework to use new fields in rli and handle
6142         union.
6143         (compute_record_mode): Rework to simplify and to use new DECL fields.
6144         (finalize_type_size): Make rounding more consistent.
6145         (finish_union_layout): Deleted.
6146         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
6147         (layout_type, case RECORD_TYPE): Call new function names.
6148         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
6149         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
6150         (get_best_mode): UNIT is now unsigned; remove casts.
6151         * tree.c (bit_position): Compute from new fields.
6152         (byte_position, int_byte_position): New functions.
6153         (print_type_hash_statistics): Cast to remove warning.
6154         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
6155         (build_index_type): Likewise; make subtype of sizetype.
6156         (build_index_2_type): Pass sizetype to build_range_type.
6157         (build_common_tree_nodes): Use size_int and bitsize_int to
6158         initialize nodes; add bitsize_{zero,one,unit}_node.
6159         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
6160         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
6161         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
6162         (DECL_FIELD_BITPOS): Deleted.
6163         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
6164         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
6165         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
6166         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
6167         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
6168         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
6169         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
6170         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
6171         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
6172         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
6173         (DECL_ALIGN): Adjust to new field in union.
6174         (DECL_OFFSET_ALIGN): New field.
6175         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
6176         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
6177         (union tree_decl): Add struct for both aligns.
6178         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
6179         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
6180         (struct record_layout_info): Rework fields to have offset
6181         alignment and byte and bit position.
6182         (start_record_layout, place_field): Renamed from old names.
6183         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
6184         (byte_position, int_byte_position): Likewise.
6185         (get_inner_reference): Change types of position and length.
6186         * unroll.c (unroll_loop): New variable R; use for some loops.
6187         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
6188         (calculate_giv_inc): Arg REGNO now unsigned.
6189         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
6190         * varasm.c (assemble_variable): Clean up handling of size using
6191         host_integerp and tree_low_cst.
6192         (decode_addr_const): Use byte, not bit, position.
6193         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
6194         use tree_low_cst and int_bit_position.
6195         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
6196
6197 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
6198
6199         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
6200         (reorder_block_def): New members eff_head and eff_end.
6201         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
6202         (verify_insn_chain): New function.
6203         (skip_insns_between_block): Add code to skip deleted insns.
6204         Check for note before using.
6205         (chain_reorder_blocks): Replace calls to skip_insns_between_block
6206         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
6207         Check for note before using.
6208         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
6209         (fixup_reorder_chain): Restructure, clean up, defect removal.
6210         (reorder_basic_blocks): Remove last_insn and references to it.
6211         Moved insn chain verification code into a new function (see above).
6212         Delete defective code that sets last insn.
6213         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
6214         all blocks.
6215
6216 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6217
6218         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
6219
6220 2000-03-24  Richard Henderson  <rth@cygnus.com>
6221
6222         * tree.c (lang_safe_for_unsave): Remove.
6223         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
6224         allowing for two levels of unsafeness.  Remove lang hook.
6225         * tree.h: Update declarations.
6226         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
6227         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
6228         Always fail sibcalls when there are pending cleanups.
6229
6230 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
6231
6232         * flow.c (propagate_block): When we delete an ADDR_VEC,
6233         also delete the BARRIER following it if there is one.
6234
6235 2000-03-24  Richard Henderson  <rth@cygnus.com>
6236
6237         * builtins.c (expand_builtin_bzero): Convert `length' argument
6238         to sizetype.
6239
6240 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
6241
6242         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
6243         comparison if regno's are equal.
6244         * calls.c (initialize_argument_informat): Add ecf_flags argument.
6245         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
6246         (expand_call): Update caller.
6247         Avoid making a sibling call if argument size of the callee is larger
6248         than argument size of the caller.
6249         Call hard_function_value with outgoing set if in sibcall pass.
6250         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
6251
6252         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
6253         Change LEAF_REGISTERS from an array initializer to actual array
6254         identifier. Move static global variable into the function.
6255         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
6256         sequences for leaf functions.
6257         * global.c (global_alloc): Likewise.
6258         * tm.texi (LEAF_REGISTERS): Update documentation.
6259
6260         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
6261         TARGET_FLAT leaf disabling hack.
6262         (LEAF_REGISTERS): Changed from an array initializer to actual array
6263         identifier to avoid duplication and remove the above hack.
6264         (FUNCTION_OK_FOR_SIBCALL): Define.
6265         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
6266         always like call attribute.
6267         (eligible_for_sibcall_delay): New attribute.
6268         (sibcall): New delay type.
6269         (sibcall, sibcall_value, sibcall_epilogue): New expands.
6270         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
6271         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
6272         * config/sparc/sparc.c (sparc_leaf_regs): New array.
6273         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
6274         New functions.
6275         (output_function_epilogue): Move part of the code into
6276         output_restore_regs.
6277         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
6278         TYPE_SIBCALL.
6279         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
6280         prototypes.
6281
6282         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
6283         until infrastructure is finished.
6284
6285 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
6286
6287         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
6288         (save_parm_insns): Not here.
6289
6290 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6291
6292         * builtins.c (expand_builtin_bzero): New function.
6293         (expand_builtin): Handle bzero.
6294
6295         * builtins.def: Add BUILT_IN_BZERO.
6296
6297         * c-common.c (c_common_nodes_and_builtins): Provide builtin
6298         prototype & function for bzero.
6299
6300 2000-03-23  Michael Meissner  <meissner@redhat.com>
6301
6302         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
6303         change adding TARGET_FP to the TF floating point insns, except for
6304         trunctfsf2, which generates direct calls to truncdfsf2.
6305
6306 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
6307
6308         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
6309         try to protect against middle-end changes that break binary
6310         compatibility.
6311         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
6312
6313 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6314
6315         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
6316
6317 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6318
6319         * calls.c (expand_call): If TARGET is passed by reference and
6320         is readonly, write a CLOBBER.
6321
6322 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6323
6324         * builtins.c (expand_builtin): Handle bcmp.
6325
6326         * builtins.def: Add BUILT_IN_BCMP.
6327
6328         * c-common.c (c_common_nodes_and_builtins): Provide builtin
6329         prototype & function for bcmp.
6330
6331 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
6332
6333         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
6334         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
6335         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
6336
6337 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
6338
6339         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
6340         alternative when using -fp64 -gp32.
6341
6342 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
6343
6344         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
6345         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
6346         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
6347
6348         * frame.h (frame_state): Revert last change.
6349         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
6350         * libgcc2.c (throw_helper): Revert last change.
6351
6352 2000-03-22  Richard Henderson  <rth@cygnus.com>
6353
6354         * stmt.c (expand_asm_operands): Don't promote the temporary.
6355
6356 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
6357
6358         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
6359         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
6360           c_get_alias_set): Likewise.
6361         * c-decl.c (duplicate_decls): Likewise.
6362         * c-typeck.c (default_conversion,build_unary_op): Likewise.
6363         * calls.c (initialize_argument_information): Likewise.
6364         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
6365         Likewise.
6366         * dwarfout.c (decl_class_context,output_type): Likewise.
6367         * expr.c (get_inner_reference): Likewise.
6368         * fold-const.c (simple_operand_p,fold): Likewise.
6369         * function.c (aggregate_value_p): Likewise.
6370         * stmt.c (expand_asm_operands): Likewise.
6371         * varasm.c (named_section): Likewise.
6372
6373 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
6374
6375         Implement dwarf2 exception handling for the ARM.
6376         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
6377         (DWARF_FRAME_RETURN_COLUMN): Define.
6378         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
6379         REG_FRAME_RELATED_EXPR note.
6380         (emit_sfm): Likewise.
6381         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
6382         * dwarf2out.c (reg_save): Handle saving a register to itself.
6383         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
6384         * except.c (eh_regs): Don't use the static chain reg if it's
6385         callee-saved.
6386         * frame.h (frame_state): Add cfa_saved field.
6387         * frame.c (execute_cfa_insn): Set it.
6388         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
6389         the epilogue.
6390         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
6391         Now takes a parm.
6392         (instantiate_virtual_regs): Adjust.
6393         * tm.texi: Adjust.
6394         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
6395         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
6396         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
6397
6398         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
6399         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
6400
6401 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6402
6403         * builtins.def: New file.
6404
6405         * Makefile.in (TREE_H): Depend on builtins.def.
6406
6407         * builtins.c (built_in_names): Use builtins.def.
6408
6409         * tree.h (built_in_function): Likewise.
6410
6411 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
6412
6413         * tree.c (size_in_bytes): Return size_zero_node, not
6414         integer_zero_node.
6415
6416 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
6417
6418         * config/fp-bit.c (pack_d): Correct the case when a denormal
6419         is rounded up and stops being denormal.
6420
6421 2000-03-21  Richard Henderson  <rth@cygnus.com>
6422
6423         * config/alpha/alpha.c (function_arg): Check for void_type_node
6424         before using MUST_PASS_IN_STACK.
6425
6426 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
6427
6428         * regmove.c (combine_stack_adjustments_for_block): Check that
6429         the stack pointer is a valid memory address.
6430
6431 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
6432
6433         * calls.c: re-install Mar 16 emit_library_call merge.
6434
6435 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
6436
6437         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
6438         we cannot be sure that if reload_completed base register will
6439         be properly aligned.
6440
6441 2000-03-21  Richard Henderson  <rth@cygnus.com>
6442
6443         * flow.c (delete_block): Fix typo last change.
6444
6445 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
6446
6447         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
6448         not COMPLETE_TYPE_P, to check the type of the expression.
6449
6450 2000-03-21  Michael Meissner  <meissner@redhat.com>
6451
6452         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
6453         all floating point insns that just tested the macro
6454         TARGET_HAS_XFLOATING_LIBS.
6455         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
6456         used to only use the gprs.
6457
6458 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
6459
6460         * tree.h (COMPLETE_TYPE_P): New macro.
6461         (COMPLETE_OR_VOID_TYPE_P): New macro.
6462         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
6463         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
6464         * c-aux-info.c (gen_type): Use them.
6465         * c-common.c (c_expand_expr_stmt): Likewise.
6466         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
6467         grokdeclarator, grokparms, finish_struct, start_function,
6468         store_parm_decls, combine_parm_decls): Likewise.
6469         * c-parse.y (cast_expr): Likewise.
6470         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
6471         c_size_in_bytes, c_alignof, build_component_ref,
6472         build_indirect_ref, build_array_ref, convert_arguments,
6473         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
6474         * calls.c (initialize_argument_information): Likewise.
6475         * convert.c (convert_to_integer): Likewise.
6476         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
6477         * dwarfout.c (location_or_const_value_attribute,
6478         output_enumeration_type_die, output_structure_type_die,
6479         output_union_type_die, output_type): Likewise.
6480         * expr.c (safe_from_p, expand_expr): Likewise.
6481         * function.c (assign_parms): Likewise.
6482         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
6483         * tree.c (build_array_type, build_function_type,
6484         build_method_type, build_offset_type, build_complex_type): Likewise.
6485         * c-parse.c, c-parse.h: Regenerated.
6486
6487 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6488
6489         * config/c4x/rtems.h: Include config/rtems.h.
6490
6491 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
6492
6493         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
6494         decl is a FUNCTION_DECL
6495
6496 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
6497
6498         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
6499         function uses output registers.  Don't save RP for leaf functions.
6500         Do save RP even if no epilogue.
6501         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
6502         (CALL_USED_REGISTERS): Unmark in registers.
6503         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
6504         to near the middle.
6505
6506 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
6507
6508         * config/rs6000/rs6000.md (bunordered): New expander.
6509         (bordered): New expander.
6510         (buneq): New expander.
6511         (bunge): New expander.
6512         (bungt): New expander.
6513         (bunle): New expander.
6514         (bunlt): New expander.
6515         (bltgt): New expander.
6516
6517         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
6518         (ccr_bit_negated_p): New function.
6519         (print_operand): For %C, generate appropriate cror for UNEQ,
6520         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
6521
6522 2000-03-20  Andreas Jaeger  <aj@suse.de>
6523
6524         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
6525         warning.
6526
6527         * tree.h (safe_for_unsave): Prototype.
6528
6529 2000-03-20  Richard Henderson  <rth@cygnus.com>
6530
6531         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
6532         (combine_stack_adjustments_for_block): Don't allow sp references
6533         in the side of a set we're not fixing up.
6534         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
6535         after life_analysis.
6536
6537 2000-03-20  Richard Henderson  <rth@cygnus.com>
6538
6539         * calls.c (expand_call): Don't bother generating tail call
6540         sequences if there are pending cleanups.  Use
6541         expand_start_target_temps/expand_end_target_temps to elide
6542         cleanups created during sibcall expansion.
6543
6544 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
6545
6546         * configure.in: Set $IFS to a value if it doesn't already have one
6547         in the --enable-checking handling.
6548         * configure: Regenerate.
6549
6550 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6551
6552         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
6553         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
6554         Regenerated.
6555
6556 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
6557
6558         * jump.c (delete_noop_moves): Remove code attempting to
6559         combine stack adjustments.
6560
6561 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6562
6563         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
6564         * except.c (emit_cleanup_handler): Use them.
6565         (expand_end_all_catch): Likewise.
6566         * function.c (fixup_var_refs): Likewise.
6567         (expand_function_end): Clear catch_clauses_last.
6568         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
6569         * except.h (struct eh_status): New field x_catch_clauses_last.
6570         (catch_clauses_last): New define.
6571
6572         * Makefile.in (tree.o): Depend on HASHTAB_H.
6573         * tree.c: Include hashtab.h.
6574         (struct type_hash): Remove next field.
6575         (TYPE_HASH_SIZE): Remove.
6576         (TYPE_HASH_INITIAL_SIZE): New define.
6577         (type_hash_table): Change type to htab_t.
6578         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
6579         mark_hash_entry): New functions.
6580         (init_obstacks): Allocate type hash.
6581         (type_hash_lookup): Use htab functions.
6582         (type_hash_add, mark_type_hash): Likewise.
6583         (dump_tree_statistics): Call print_type_hash_statistics.
6584
6585 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6586
6587         * rs6000/t-aix41: New file.
6588
6589         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
6590
6591 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
6592
6593         * tm.texi (Driver): Fix typos and tweak entry for
6594         INCLUDE_DEFAULTS.
6595         Move misplaced STRUCT_FORCE_BLK entry ...
6596         (Storage Layout): ... to here.
6597         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
6598
6599 2000-03-19  Richard Henderson  <rth@cygnus.com>
6600
6601         * flow.c (delete_block): Delete the addr_vec along with the block.
6602         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
6603         reference labels.
6604
6605         * fold-const.c (extract_muldiv): Apply type check for defined
6606         overflow to multiply as well as divide.
6607
6608         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
6609
6610 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
6611
6612         * emit-rtl.c (remove_unncessary_notes): Check that all
6613         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
6614         associated NOTE_BLOCK.
6615         * function.h (identify_blocks): Update comments.
6616         (reorder_blocks): Declare.
6617         * function.c (identify_blocks): Don't take paramters.
6618         (reorder_blocks): Don't take parameters.
6619         * loop.h (find_loop_tree_blocks): Remove.
6620         (unroll_block_trees): Likewise.
6621         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
6622         reorder_blocks instead of unroll_block_trees.h
6623         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
6624         * stmt.c (find_loop_tree_blocks): Remove.
6625         (unroll_block_trees): Likewise.
6626         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
6627         in whole-function mode.
6628         * tree.h (reorder_blocks): Remove declaration.
6629
6630         * expr.c: Include intl.h.
6631         * Makefile.in (expr.o): Depend on intl.h.
6632
6633 2000-03-18  Richard Henderson  <rth@cygnus.com>
6634
6635         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
6636
6637 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
6638
6639         * tree.h (tree_index): Remove enumerals for integer types.
6640         (integer_type_kind): New type.
6641         (integer_types): New variable.
6642         (char_type_node): Adjust.
6643         (signed_char_type_node): Likewise.
6644         (unsigned_char_type_node): Likewise.
6645         (short_integer_type_node): Likewise.
6646         (short_unsigned_type_node): Likewise.
6647         (integer_type_node): Likewise.
6648         (unsigned_type_node): Likewise.
6649         (long_integer_type_node): Likewise.
6650         (long_unsigned_type_node): Likewise.
6651         (long_long_integer_type_node): Likewise.
6652         (long_long_unsigned_type_node): Likewise.
6653         * tree.c (integer_types): New variable.
6654         (init_obstacks): Register it as a root.
6655
6656 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
6657
6658         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
6659         NEXT_INSN. Update last insn in chain.
6660
6661 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
6662
6663         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
6664         with TYPE_DECL_SUPPRESS_DEBUG set.
6665
6666 2000-03-18  Richard Henderson  <rth@cygnus.com>
6667
6668         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
6669
6670 2000-03-18  Richard Henderson  <rth@cygnus.com>
6671
6672         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
6673         care for HALF_PIC_P.
6674         (expander_call_insn_operand): Remove.
6675         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
6676         * i386.h (PREDICATE_CODES): Update.
6677         * i386.md (all call expanders): Remove predicates, remove special
6678         handling for half-pic.
6679         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
6680         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
6681         (sibcall_epilogue): New.
6682
6683 2000-03-17  Richard Henderson  <rth@cygnus.com>
6684
6685         * rtlanal.c (single_set): Reject if the parallel has anything
6686         except SET or USE or CLOBBER.
6687
6688 2000-03-17  Jeff Law  <law@cygnus.com>
6689             Richard Henderson  <rth@cygnus.com>
6690
6691         * Makefile.in (OBJS): Add sibcall.o.
6692         (sibcall.o): New.
6693         * sibcall.c: New file.
6694         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
6695         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
6696         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
6697         Emit sibcall patterns when requested.  Update all callers.
6698         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
6699         elimination seems feasable.
6700         * final.c (leaf_function_p): Sibling calls don't discount being
6701         a leaf function.
6702         * flow.c (HAVE_sibcall_epilogue): Provide default.
6703         (find_basic_blocks_1): Sibling calls don't throw.
6704         (make_edges): Make edge from sibling call to EXIT.
6705         (propagate_block): Don't remove sibcall_epilogue insns.
6706         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
6707         (sibcall_epilogue): New.
6708         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
6709         (identify_blocks_1): Likewise.  Break out from ...
6710         (identify_blocks): ... here.
6711         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
6712         (reorder_blocks): ... here.
6713         (init_function_for_compilation): Zap prologue/epilogue as varrays.
6714         (record_insns): Extend a varray instead of mallocing new memory.
6715         (contains): Read a varray not array of ints.
6716         (sibcall_epilogue_contains): New.
6717         (thread_prologue_and_epilogue_insns): Emit and record
6718         sibcall_epilogue patterns.
6719         (init_function_once): Allocate prologue/epilogue varrays.
6720         * genflags.c (gen_insn): Treat sibcall patterns as calls.
6721         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
6722         Broken out from ...
6723         (save_for_inline_nocopy): ... here.
6724         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
6725         Broken out from ...
6726         (expand_inline_function): ... here.
6727         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
6728         (subst_constants): Handle 'n' formats.
6729         * jump.c (jump_optimize_minimal): New.
6730         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
6731         optimizations if it's set.
6732         * rtl.c (copy_rtx): Do copy jump & call for insns.
6733         * rtl.h (struct rtx_def): Document use of jump and call for insns.
6734         (SIBLING_CALL_P): New.
6735         (sibcall_use_t): New.
6736         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
6737         Invoke optimize_sibling_and_tail_recursive_calls.
6738         * tree.c (lang_safe_for_unsave): New.
6739         (safe_for_unsave): New.
6740         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
6741
6742         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
6743         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
6744         (*sibcall_osf_1, *sibcall_value_osf_1): New.
6745
6746 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
6747
6748         * objc/objc-act.c (encode_method_prototype): Pass types, not
6749         PARM_DECLs, to int_size_in_bytes.
6750
6751 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
6752
6753         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
6754
6755         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
6756         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
6757
6758 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6759
6760         * Clean up usages of TREE_INT_CST_LOW.
6761         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
6762         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
6763         Regenerated.
6764         * c-tree.h (min_precision): Move declaration to here.
6765         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
6766         (build_unary_op, add_pending_init): Use bit_position.
6767         (pending_init_member, process_init_element): Likewise.
6768         (really_start_incremental_init, push_init_level, pop_init_level):
6769         Don't make copies of nodes or modify them in place, use consistent
6770         types when tracking positions, and use tree routines computations.
6771         (set_init_index, output_init_element): Likewise.
6772         (output_pending_init_elements, process_init_element): Likewise.
6773         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
6774         tree_low_cst and int_bit_position; also minor cleanup.
6775         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
6776         (print_cst_octal): Precision is unsigned.
6777         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
6778         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
6779         (simple_type_align_in_bits): Result is unsigned int.
6780         Use tree_int_low_cst and host_integerp.
6781         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
6782         (field_byte_offset): Result is HOST_WIDE_INT.
6783         Change types of internal variables so alignments are unsigned int,
6784         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
6785         Use host_integerp, tree_low_cst, and int_bit_position.
6786         (add_bit_offset_attribute): Likewise.
6787         (add_data_member_location_attribute): Use tree_cst_low.
6788         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
6789         (add_bit_size_attribute): Use tree_low_cst.
6790         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
6791         * dwarfout.c: Similar changes to dwarf2out.c.
6792         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
6793         * genoutput.c (n_occurences): Return -1 for null string.
6794         (strip_whitespace): Accept null string and make into function.
6795         (scan_operands): Reflect above changes.
6796         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
6797         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
6798         * ssa.c (rename_registers): Add missing cast of arg to bzero.
6799         * tree.c (int_size_in_bytes): Check for too big to represent.
6800         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
6801         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
6802         New declarations.
6803         (min_precision): Delete from here.
6804         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
6805         and int_bit_position.
6806         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
6807         (encode_method_def): Likewise.
6808         (build_ivar_list_initializer): Use int_bit_position.
6809         (generate_shared_structures): Convert size.
6810         (encode_type, encode_complete_bitfield): Use integer_zerop.
6811         (encode_bitfield): Use tree_low_cst and int_bit_position.
6812
6813 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6814
6815         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
6816
6817 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6818
6819         * call.c (special_function_p): It is only malloc if it returns
6820         Pmode.
6821
6822 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6823
6824         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
6825         (C33_FLAG, TARGET_C3X): Add macros.
6826         (TARGET_SWITCHES): Add -m33 option.
6827         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
6828
6829 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6830
6831         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
6832         (PARALLEL_PACK_FLAG): Delete.
6833         (TARGET_SWITCHES): Update.
6834         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
6835
6836 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6837
6838         * fold-const.c (fold): Fix a few cases when the returned result
6839         is not of the same type as the input.
6840
6841 2000-03-16  Nick Clifton  <nickc@cygnus.com>
6842
6843         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
6844         warning.
6845
6846 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6847
6848         * libgcc2.h: Move prototypes above macros with the same name.
6849         Wrap some function prototypes in the conditional which indicates
6850         whether they are supported, i.e. "BITS_PER_UNIT == 8".
6851
6852 2000-03-16  Richard Henderson  <rth@cygnus.com>
6853
6854         * calls.c: Revert last two changes.
6855
6856 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
6857
6858         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
6859         has exponent 0 is a zero.
6860
6861         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
6862         HASH may already be nonzero.  Add code/mode into hash value
6863         immediately after repeat label.
6864         (cselib_lookup): Don't leave the hash table in an inconsistent
6865         state before a hash lookup operation.
6866
6867 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
6868
6869         * i386.md (all HI and QI mode non-move patterns):  Conditionize
6870         by TARGET_[HQ]IMODE_MATH.
6871         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
6872         x86_promote_qi_regs): Declare.
6873         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
6874         TARGET_PROMOTE_QI_REGS): New macros.
6875         (PROMOTE_MODE): New macro.
6876         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
6877         x86_promote_qi_regs): New global variables.
6878
6879 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
6880
6881         * calls.c (emit_library_call_value_1): Break out from ...; handle
6882         VOIDmode function calls too.
6883         (emit_library_call_value): ... here.
6884         (emit_library_call): Implement by calling emit_library_call_value_1.
6885
6886 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
6887
6888         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
6889         Update arg_space_so_far on stack adjustments.
6890         (emit_library_call, emit_library_call_value): Likewise; take into
6891         account arg_space_so_far and pending_stack_adjust when calculcating
6892         the boundary.
6893
6894 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
6895
6896         * flow.c: Move all basic block reordering code into its own file.
6897         (create_basic_block): Externalize.
6898         * bb-reorder.c: New file. Copy all basic block reordering code from
6899         flow.c to this file.
6900         (reorder_basic_blocks): Fix fencepost error in for-loop.
6901         (reorder_basic_blocks): Remove braces from single statement for-loops.
6902         * basic-block.h: Add declaration for create_basic_block.
6903         * Makefile.in: Add rules for bb-reorder.o.
6904
6905 2000-03-16  Neil Booth  <NeilB@earthling.net>
6906
6907         * cppinit.c (handle_option):  Implement #unassert directive
6908         as -A- command line option.
6909         (print_help):  Update.
6910         * cpptexi.c:  Update.
6911
6912 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6913
6914         * md.texi (Standard Names): Document `jump'.
6915
6916 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
6917
6918         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
6919         gotos.
6920
6921 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
6922
6923         Merge changes from newppc-branch onto trunk.
6924
6925         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
6926
6927         * rs6000.c (toc_hash_table): Update for new hash table functions.
6928         (toc_hash_function): Likewise.
6929         (toc_hash_eq): Likewise.
6930         (toc_hash_mark_entry): Likewise.
6931         (toc_hash_mark_table): Likewise.
6932         (output_toc): Likewise.
6933         (rs6000_add_gc_roots): Likewise.
6934
6935         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6936
6937         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
6938         (AR_FLAGS_FOR_TARGET): here.  New macro.
6939
6940         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
6941
6942         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
6943         fpmem_operand) Delete.
6944         (xer_operand) New.
6945         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
6946         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
6947         (rs6000_save_machine_status, rs6000_restore_machine_status,
6948         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
6949         references to above variables.
6950         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
6951         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
6952         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
6953         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
6954         (XER_REGNO_P, XER_REGNO): New.
6955         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
6956         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
6957         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
6958         XER_REGNO_P.
6959         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
6960         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
6961         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
6962
6963         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6964
6965         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
6966         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
6967         * rs6000.h: from here.
6968
6969         * rs6000-protos.h (rs6000_select_section): Provide prototype.
6970         (rs6000_select_rtx_section): Likewise.
6971         (rs6000_encode_section_info): Likewise.
6972         (sdata_section): Likewise.
6973         (sdata2_section): Likewise.
6974         (sbss_section): Likewise.
6975         * sysv4.h (rs6000_select_section): Delete prototype.
6976         (rs6000_select_rtx_section): Likewise.
6977         (rs6000_encode_section_info): Likewise.
6978         (sdata_section): Likewise.
6979         (sdata2_section): Likewise.
6980         (sbss_section): Likewise.
6981         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
6982
6983         * sysv4.h: Delete various unnecessary #undef's and put a comment
6984         on the remaining ones.
6985         Change various comments according to coding standard.
6986
6987         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
6988
6989         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
6990         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
6991         (CR0_REGNO_P) Remove.
6992         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
6993         setup_incoming_varargs, mtcrf_operation, print_operand,
6994         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
6995         Use the above macros.
6996
6997         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
6998
6999         * config/rs6000/rs6000.md: Added a new alternative for each
7000         pattern that had a 'x' alternative but no 'y' alternative.
7001         Added a new split for each of the above patterns.
7002
7003         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
7004
7005         * aix41.h (ASM_CPU_SPEC): Delete.
7006         (CPP_CPU_SPEC): Delete.
7007
7008         * aix.h (RS6000_OUTPUT_BASENAME): Define.
7009         (ASM_OUTPUT_LABEL): Define.
7010         (ASM_GLOBALIZE_LABEL): Define.
7011         (STRIP_NAME_ENCODING): Define.
7012         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
7013         (STRIP_NAME_ENCODING): Don't define.
7014         (ASM_OUTPUT_LABEL): Don't define.
7015         (ASM_GLOBALIZE_LABEL): Don't define.
7016         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
7017         names, and ASM_OUTPUT_LABEL to output labels, rather than
7018         asm_fprintf.
7019         (ASM_OUTPUT_LABEL): Define.
7020         (ASM_OUTPUT_INT): Use assemble_name.
7021         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
7022         (STRIP_NAME_ENCODING): Don't undefine first.
7023         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
7024         ELF.
7025         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
7026         specified with 'asm' even with -fleading-underscore.
7027         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
7028         (output_epilog): Likewise.
7029         (output_toc): Likewise.
7030         * tramp.asm: Handle -fleading-underscore correctly.
7031
7032         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
7033         -mminimal-toc.
7034         (nonlocal_goto_receiver): Delete.
7035         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
7036
7037         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
7038         (SET_ASM_OP): Define.
7039         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
7040
7041         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
7042         (ASM_LONG): Define.
7043
7044         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
7045         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
7046
7047         * rs6000.h: Add 'u' to more constants.
7048
7049         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
7050
7051         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
7052
7053         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
7054
7055         * rs6000.c (reg_or_u_cint_operand): New function.
7056         (logical_operand): Handle 64-bit hosts.
7057         (logical_u_operand): New function.
7058         (non_logical_cint_operand): Handle 64-bit hosts.
7059         (non_logical_u_cint_operand): New function.
7060         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
7061         (PREDICATE_CODES): Define new functions.
7062         * rs6000-protos.h: Declare new functions.
7063         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
7064         (movdi_64): Bracket code intended for 64-bit hosts.  Create
7065         CONST_DOUBLE for 32-bit values.
7066         (scc insns): Generate DImode compares.
7067         (mfcr insns): Create DImode versions.
7068         (sge matchers): New patterns.
7069
7070         2000-02-15  Gabriel Paubert  <paubert@iram.es>
7071
7072         * rs6000.md: Correct instructions length attributes and
7073         constraints on unsigned compare instructions.
7074         (*ne0): Disable for PowerPC64.
7075
7076         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
7077
7078         * rs6000.c (output_function_profiler): Use .long for a 32-bit
7079         quantity, fix profile1.C test failure under -fPIC.
7080
7081         * rs6000.c: Add 'u' to many constants to suppress warnings.
7082         (constant_pool_expr_1): Make static.
7083         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
7084         * rs6000.h: Add 'u' to many constants to suppress warnings.
7085
7086         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
7087         for the start of the TOC, instead of LCTOC..0.
7088         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
7089         of the TOC.
7090         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
7091         (load_toc_aix_di): Use LCTOC..1.
7092
7093         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
7094         * rs6000.c (rs6000_legitimize_address): New function from
7095         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
7096         symbols in the constant pool that really are TOC references.
7097         (print_operand_address): For ELF, write TOC offsets under
7098         -fPIC as subtractions in the insn.
7099         (output_toc): For ELF, define symbols in TOC as normal labels,
7100         to match RTL.
7101         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
7102         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
7103         (create_TOC_reference): Prototype only when RTX_CODE is defined.
7104         * rs6000.md (movsi): Only use create_TOC_reference on
7105         symbols in the constant pool that really are TOC references.
7106
7107         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
7108         * rs6000.c (rs6000_reorg): Delete.
7109         * rs6000-protos.h (rs6000_reorg): Delete.
7110
7111         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
7112
7113         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
7114
7115         * aix.h (SETUP_FRAME_ADDRESSES): Define.
7116         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
7117         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
7118         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
7119         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
7120         rs6000_aix_emit_builtin_unwind_init.
7121         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
7122         rs6000_emit_eh_toc_restore on AIX.
7123         (return_eh_si): Use r2.
7124         (return_eh_di): Use r2.
7125
7126         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
7127         since we're breaking binary compatibility anyway.
7128
7129         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
7130
7131         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
7132         constant_pool_expr_p): Declare them.
7133         (constant_pool_expr_p): Declare it.
7134         * config/rs6000/rs6000.c (toc_label_name): Define.
7135         (rs6000_override_options): Set toc_label_name.
7136         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
7137         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
7138         uses_TOC): New functions.
7139         (print_operand): Delete old '*' case.
7140         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
7141         and strip off rtl for TOC before calling output_addr_const.
7142         (rs6000_emit_load_toc_table): Use toc_label_name.
7143         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
7144         the default.
7145         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
7146         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
7147         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
7148         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
7149         into explicit TOC_REGISTER offsets.
7150         (TOC_REGISTER): New macro.
7151         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
7152         TARGET_TOC to reference TOC_REGISTER.
7153         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
7154         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
7155         uses_TOC before emitting label references.
7156
7157         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
7158
7159         * rs6000.md (stack_tie): Fix warning.
7160
7161         * eabi-ctors.c: Use 'asm' names for the start/end variables,
7162         to handle -fleading-underscore.
7163         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
7164         (USER_LABEL_PREFIX): New macro.
7165         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
7166         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
7167         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
7168         call-linux can use the same multilibs.
7169         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
7170         and call-linux multilibs.  Do multilib with -fleading-underscore.
7171         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
7172         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
7173         to call-aix.
7174
7175         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
7176         have MASK_SOFT_FLOAT set.
7177         (CPP_FLOAT_DEFAULT_SPEC): New macro.
7178         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
7179         CPP_FLOAT_DEFAULT_SPEC.
7180
7181         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
7182         * rs6000.md: Whitespace change.
7183         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
7184         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
7185
7186         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
7187
7188         * rs6000.md (eh_epilogue): New expander.
7189         (eh_reg_restore): New expand/split/insn combination.
7190         (return_eh_si): New insn.
7191         (return_eh_di): New insn.
7192
7193         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
7194         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
7195         * eabi-ctors.c (__do_global_ctors): Register this object's
7196         frame.  Clean up.  Call atexit() after the constructors.
7197         (__do_global_dtors): Deregister this object's frame.  Clean up.
7198         Allow for recursive calls to exit().
7199         * rs6000.c (fixuplabelno): New variable.
7200         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
7201         TARGET_RELOCATABLE, it slows down exec() under linux.
7202         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
7203
7204         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
7205         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
7206         (ASM_OUTPUT_DWARF_DELTA2): New macro.
7207         (ASM_OUTPUT_DWARF_DELTA4): New macro.
7208         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
7209         (ASM_OUTPUT_DWARF_ADDR): New macro.
7210         (ASM_OUTPUT_DWARF_DATA4): New macro.
7211         (ASM_OUTPUT_DWARF_DATA2): New macro.
7212         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
7213         (ASM_OUTPUT_DWARF_OFFSET): New macro.
7214         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
7215
7216         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
7217
7218         * rs6000.c (rs6000_sr_alias_set): New variable.
7219         (rs6000_override_options): Initialise rs6000_sr_alias_set.
7220         (rs6000_emit_stack_tie): New function.
7221         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
7222         in a way that dwarf2out can understand.
7223         (rs6000_frame_related): New function.
7224         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
7225         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
7226         Use rs6000_emit_stack_tie when needed.
7227         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
7228         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
7229         * rs6000.md (stack_tie): New insn.
7230         (return_internal_si): Allow return value to be in the count
7231         register.
7232         (return_internal_di): Likewise.
7233
7234         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
7235
7236         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
7237
7238         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
7239
7240         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
7241
7242         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
7243
7244         * rs6000.md (stmw): Use the right POWER opcode.
7245         (lmw): Likewise.
7246
7247         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7248
7249         * rs6000-protos.h: New file.
7250
7251         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
7252
7253         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
7254         warnings.
7255
7256         * sysv4.h: Likewise.
7257
7258         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
7259
7260         * ../../configure.in: Delete powerpcle-*-winnt*
7261         and powerpcle-*-pe|powerpcle-*-cygwin*.
7262         * ../../configure: Regenerated.
7263         * cygwin.h: Delete.
7264         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
7265         (TARGET_WINDOWS_NT): Delete.
7266         (ABI_NT): Delete.
7267         (CALL_NT_DLLIMPORT): Delete.
7268         Delete NT-specific code.
7269         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
7270         * win-nt.h: Delete.
7271         * t-winnt: Delete.
7272         * nt-ci.asm: Delete.
7273         * nt-cn.asm: Delete.
7274         * ntstack.asm: Delete.
7275
7276         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7277
7278         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
7279         (ASM_FILE_START): Likewise.
7280         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7281         (ASM_OUTPUT_LABELREF): Likewise.
7282         (ASM_OUTPUT_SKIP): Likewise.
7283         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
7284         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
7285         (ASM_OUTPUT_CASE_LABEL): Likewise.
7286         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
7287         (ASM_OUTPUT_ASCII): Likewise.
7288
7289         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
7290
7291         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
7292         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
7293         increment rs6000_pic_labelno here.
7294         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
7295         and increment rs6000_pic_labelno here.
7296
7297         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
7298
7299         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
7300         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
7301         allocation knows (reg) is dead before the insn.
7302
7303         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
7304
7305         * rs6000.md (movsi_to_cr): Correct typo in output template.
7306
7307         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
7308
7309         * rs6000.c (rs6000_pic_labelno): Always define.
7310         (rs6000_pic_func_labelno): Delete.
7311         (lmw_operation): Check for a zero base register,
7312         which doesn't mean what we want.
7313         (stmw_operation): New function.
7314         (print_operand): Define new 'l' modifier.
7315         (rs6000_stack_info): We must save all 64 bits of the registers
7316         if TARGET_POWERPC64.
7317         (rs6000_output_load_toc_table): Delete.
7318         (rs6000_emit_load_toc_table): New function.
7319         (rs6000_allocate_stack_space): Delete.
7320         (rs6000_emit_allocate_stack): New function.
7321         (rs6000_emit_prologue): New function.
7322         (output_prolog): Use rs6000_emit_prologue.
7323         (rs6000_emit_epilogue): Change a few variable names to be
7324         more accurate.  Restore all 64 bits of the registers if
7325         TARGET_POWERPC64.  Only restore the FP registers which were used
7326         if they are being saved/restored one-at-a-time.
7327         (output_mi_thunk): Delete inefficient code generation.
7328         (output_function_profiler): Don't use rs6000_output_load_toc_table.
7329         * rs6000.h: Declare rs6000_emit_load_toc_table,
7330         rs6000_allocate_stack_space, stmw_operation.  Don't declare
7331         rs6000_output_load_toc_table.
7332         * rs6000.md (elf_high): Allow register 0, but discourage it
7333         heavily.
7334         (elf_low): Support loading into register 0.
7335         (load_toc_aix_si): New pattern.
7336         (load_toc_aix_di): New pattern.
7337         (load_toc_v4_pic_si): New pattern.
7338         (load_toc_v4_pic_di): New pattern.
7339         (load_toc_v4_PIC_1): New pattern.
7340         (load_toc_v4_PIC_1b): New pattern.
7341         (load_toc_v4_PIC_2): New pattern.
7342         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
7343         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
7344         (prologue): New expander.
7345         (movesi_from_cr): New pattern.
7346         (stmw): New pattern.
7347         (save_fpregs_si): New pattern.
7348         (save_fpregs_di): New pattern.
7349
7350         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7351
7352         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
7353         (movdi): Likewise.
7354         (movhi): Likewise.
7355         (movqi): Likewise.
7356
7357         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7358
7359         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
7360         at present.
7361         (movsi_got_internal): Likewise.
7362         (movsi_got_internal+1): Likewise.
7363         (set_sp): 'unspec 7' does a SImode clobber.
7364
7365         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7366
7367         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
7368         allocate a stack temporary.
7369         (floatsidf2_internal): Likewise.
7370         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
7371         with unspec.
7372         (floatunssidf2): Don't use the fpmem "register", just
7373         allocate a stack temporary.
7374         (floatunssidf2_internal): Likewise.
7375         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
7376         with unspec.
7377         (floatsidf2_loadaddr): Delete.
7378         (floatsidf2_store1): Delete.
7379         (floatsidf2_store2): Delete.
7380         (floatsidf2_load): Delete.
7381         (fix_truncdfsi2): Don't use the fpmem "register", just
7382         allocate a stack temporary.
7383         (fix_truncdfsi2_internal_si): Delete.
7384         (fix_truncdfsi2_internal_di): Delete.
7385         (fix_truncdfsi2_internal): New insn.
7386         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
7387         (fix_truncdfsi2_store): Delete.
7388         (fix_truncdfsi2_load): Delete.
7389         (fctiwz): Produce gen_fctiwz.
7390
7391         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
7392
7393         * eabi.h (INVOKE__main): Define.
7394         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
7395         specially.
7396         (rs6000_emit_prologue): Likewise.
7397         * rs6000.h (struct rs6000_stack): Don't keep track of whether
7398         this is the main program.
7399
7400         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7401
7402         * rs6000.c (rs6000_va_arg): Delete some unused variables.
7403
7404         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7405
7406         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
7407         goes after the argument.
7408
7409         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
7410
7411         * rs6000.md: Document 'unspec' values used.
7412         (epilogue): New expander.
7413         (movesi_to_cr_one): New expander.
7414         (movesi_to_cr and following): New pattern.
7415         (lmw): New pattern.
7416         (return_internal_si): New pattern.
7417         (return_internal_di): New pattern.
7418         (return_and_restore_fpregs_si): New pattern.
7419         (return_and_restore_fpregs_di): New pattern.
7420         * rs6000.h: Declare new functions.
7421         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
7422         rather than rs6000_calls_p.
7423         (rs6000_makes_calls): Delete.
7424         (lmw_operation): New function.
7425         (mtcrf_operation): New function.
7426         (rs6000_emit_epilogue): New function.
7427         (output_epilog): Call rs6000_emit_epilogue and final if
7428         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
7429
7430         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
7431
7432         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
7433         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
7434         * aix.h (SUBTARGET_SWITCHES): Document switches.
7435         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
7436         sched-prolog and sched-epilog the same.  Document all the
7437         switches.
7438         (TARGET_OPTIONS): No longer allow -mdebug-.
7439
7440         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
7441
7442         * rs6000.h (ASM_FILE_END): Move to aix.h.
7443         (EXTRA_SECTIONS): Move to aix.h.
7444         (READONLY_DATA_SECTION): Move to aix.h.
7445         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
7446         (SELECT_SECTION): Move to aix.h.
7447         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
7448         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
7449         (LINK_REGISTER_REGNUM): New definition.
7450         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
7451         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
7452         AIX and SVR4.
7453         * sysv4.h: Delete the code between the inclusion of rs6000.h
7454         and svr4.h.
7455         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
7456         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
7457         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
7458         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
7459         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
7460         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
7461         (fix_truncdfsi2_internal_di): New pattern.
7462         (fix_truncdfsi2_store): The second arg here is Pmode too.
7463         (fix_truncdfsi2_load): The second arg here is Pmode too.
7464         (tablejumpdi): Now that switch tables hold only SImode values,
7465         gcc needs to know how to add them to the pc which is DImode.
7466         * rs6000.c (rs6000_stack_info): Use symbolic name for
7467         LINK_REGISTER_REGNUM.
7468         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
7469         (output_toc): Delete unused variables s1 and s2.
7470         (output_ascii): Use fputs not fprintf on a variable string.
7471
7472         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
7473
7474         * rs6000.c (processor_target_table): Add power3 as alias for 630.
7475         * aix43.h: Revert Aug 2 change.
7476         (HAS_INIT_SECTION): Define, not visible yet.
7477         (LD_INIT_SWITCH): Define, not visible yet.
7478         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
7479
7480         2000-01-04  Joel Sherrill (joel@OARcorp.com>
7481
7482         * config/rs6000/rtems.h: Include config/rtems.h.
7483
7484         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
7485
7486         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
7487         (SLOW_UNALIGNED_ACCESS): Define.
7488         (CASE_VECTOR_MODE): Always use 32-bit offsets.
7489         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
7490         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
7491         (toc_section): Likewise and .toc pseudo-op.
7492         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
7493         64-bit mode.
7494         (TEXT_SECTION_ASM_OP): Likewise.
7495         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
7496         32-bit offsets.
7497
7498         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
7499
7500         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
7501         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
7502         compiling libgcc2.
7503
7504         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7505
7506         * rs6000.h: Move more stuff from here...
7507         * aix.h: to here.
7508         * sysv4.h: Cleanup accordingly.
7509         * netware.h: Likewise
7510
7511         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7512
7513         * rs6000.h: Continue cleanup.
7514         * aix.h: Likewise.
7515         * lynx.h: Likewise.
7516         * netware.h: Likewise.
7517         * sol2.h: Likewise.
7518         * sysv4.h: Likewise.
7519         * win-nt.h: Likewise.
7520
7521         * rs6000.h (TARGET_SWITCHES): Add descriptions.
7522         (TARGET_OPTIONS): Likewise.
7523
7524         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
7525         (SUBTARGET_OPTIONS): Likewise.
7526
7527         * rs6000.md: Fix compile time warnings.
7528
7529         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
7530
7531         vxworks patches from the Cygnus tree originally by
7532         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
7533         <vmakarov@cygnus.com>.
7534         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
7535         (ENDFILE_SPEC): Likewise.
7536         (LIB_VXWORKS_SPEC): New macro.
7537         (STARTFILE_VXWORKS_SPEC): New macro.
7538         (ENDFILE_VXWORKS_SPEC): New macro.
7539         (LINK_START_VXWORKS_SPEC): New macro.
7540         (LINK_OS_VXWORKS_SPEC): New macro.
7541         (CPP_OS_VXWORKS_SPEC): New macro.
7542         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
7543         * vxppc.h: Rewrite to use proper configuration method.
7544         * vxppcle.h: New file.
7545         * ../../configure.in: Add powerpcle-wrs-vxworks*.
7546         * ../../configure: Rebuilt.
7547
7548         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
7549
7550         Lots of changes to rs6000.h, sysv4.h, aix.h,
7551         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
7552         with the aim that rs6000.h is the first header
7553         included and the others override it.
7554         * aix.h: New file.
7555
7556         * x-aix41-gld: Remove.
7557         * x-aix43: Remove.
7558         * x-aix41: Remove target-specific switches, and don't specify
7559         -Wl,-bbigtoc as we don't need it any more.
7560         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
7561         Use t-aix43 for AIX 4.3 and above.
7562         * ../../configure: Regenerated.
7563
7564         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
7565         options, that don't do anything yet.
7566         (MASK_SCHED_PROLOG): New macro.
7567         (MASK_SCHED_EPILOG): New macro.
7568         (TARGET_SCHED_PROLOG): New macro.
7569         (TARGET_SCHED_EPILOG): New macro.
7570
7571         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
7572
7573         * rs6000.c: Correct comment, the `minimal' TOCs are actually
7574         one per translation unit, not one per function.
7575         (output_toc): Also do duplicate constant elimination
7576         for per-translation-unit TOCs.
7577
7578         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
7579         a comment explaining _exactly_ when this pattern gets used.
7580         (builtin_setjmp_receiver): New pattern for better clarity.
7581         (init_v4_pic): Move it into a section dealing with TOC registers.
7582
7583         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
7584
7585         * rs6000.c (toc_hash_table): New variable.
7586         (rs6000_hash_constant): New function.
7587         (toc_hash_function): New function.
7588         (toc_hash_eq): New function.
7589         (toc_hash_mark_entry): New function.
7590         (toc_hash_mark_table): New function.
7591         (output_toc): Don't output duplicate TOC entries in
7592         a single file.
7593         (rs6000_add_gc_roots): Add the hash table as a GC root.
7594         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
7595         where they clearly shouldn't be.  This may need to be fixed
7596         later when there is a GNU ar for AIX.
7597         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
7598         Don't define BOOT_LDFLAGS as it is now not necessary.
7599
7600         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
7601
7602         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
7603         for va_list on AIX.  Use unsigned_char_type_node rather than
7604         constructing our own version on svr4.
7605
7606         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
7607
7608         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
7609         since patently it's not.
7610
7611         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
7612
7613         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
7614         define_expand/define_insn pair, and handle restore of the
7615         SVR4 -fpic register.
7616
7617 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
7618
7619         * acconfig.h (HAVE_GAS_WEAK): New define.
7620         * configure.in (assembler weak support): Check for .weak support.
7621         * config.in, configure: Rebuilt.
7622         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
7623         HAVE_GAS_WEAK is defined.
7624
7625 2000-03-15  Nick Clifton  <nickc@cygnus.com>
7626
7627         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
7628         asm_fprintf().
7629
7630 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
7631
7632         * cppfiles.c (open_include_file): New function.
7633         (find_include_file, cpp_read_file): Use it.
7634
7635 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
7636
7637         * cpphash.c (dump_hash_helper): Take the slot, not the element.
7638
7639 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
7640
7641         * flow.c (verify_flow_info): Check for unconditional return.
7642
7643 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
7644
7645         * config/ia64/ia64.md (restore_stack_nonlocal): New.
7646         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
7647         (__ia64_restore_stack_nonlocal): New.
7648         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
7649
7650 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7651
7652         * cpphash.c (collect_formal_parameters): Do not complain about
7653         parameter names that just start with `__VA_ARGS__'.
7654
7655 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
7656
7657         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
7658         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
7659         * i386.c (pentiumpro_cost): Set mul cost to 4.
7660         (x86_use_movx): Set for PPro.
7661
7662 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
7663
7664         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
7665         STACK_BOUNDARY for empty frames now.
7666
7667 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
7668
7669         * stor-layout.c (layout_union): Remove.
7670         (layout_union_field): New function, split out from layout_union.
7671         (finish_union_layout): Likewise.
7672         (layout_field): Handle unions by calling layout_union_field.
7673         (finish_record_layout): Handle unions.
7674         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
7675         QUAL_UNION_TYPE handling.
7676
7677 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
7678
7679         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
7680         end of basic block is jump_insn, not barrier; use create_basic_block
7681         instead of creating basic block by hand.
7682
7683 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
7684
7685         * flow.c (reorder_basic_blocks): Account for barriers when writing
7686         over NEXT_INSN (last_bb->end).
7687         (verify_flow_info): Add check for missing barriers.
7688
7689 2000-03-14  Greg McGary  <gkm@gnu.org>
7690
7691         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
7692         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
7693         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
7694         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
7695         __unbounded, __unbounded__): New keywords.
7696         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
7697         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
7698         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
7699
7700 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
7701
7702         * cselib.h: New file.
7703         * alias.c: Include "cselib.h".
7704         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
7705         MEMs as two new arguments.
7706         (get_addr): New static function.
7707         (find_base_term): Handle VALUEs.
7708         (memrefs_conflict_p): Likewise.
7709         (true_dependence): Call get_addr on the addresses.
7710         Call fixed_scalar_and_varying_struct_p with addresses that have been
7711         passed through get_addr and canon_rtx.
7712         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
7713         with true_dependence.
7714         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
7715         * loop.c: Include "cselib.h".
7716         (load_mems): Process extended basic block that enters the loop with
7717         cselib.  Use that information to change initialization of the shadow
7718         register so that a constant equivalence is seen by later passes.
7719         * reload1.c: Include "cselib.h".
7720         (reload_cse_invalidate_regno): Delete function.
7721         (reload_cse_mem_conflict_p): Likewise.
7722         (reload_cse_invalidate_mem): Likewise.
7723         (reload_cse_invalidate_rtx): Likewise.
7724         (reload_cse_regno_equal_p): Likewise.
7725         (reload_cse_check_clobber): Likewise.
7726         (reload_cse_record_set): Likewise.
7727         (reg_values): Delete static variable.
7728         (invalidate_regno_rtx): Likewise.
7729         (reload_cse_delete_noop_set): New static function.
7730         (reload_cse_simplify): New static function, broken out of
7731         reload_cse_regs_1.
7732         (reload_cse_noop_set_p): Delete unused argument INSN.
7733         Just call rtx_equal_for_cselib_p on set source and destination.
7734         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
7735         reload_cse_delete_noop_set.  Delete code to keep track of values; use
7736         cselib functions instead.  Delete code to push/pop obstacks.
7737         (reload_cse_simplify_set): Use cselib to find equivalent values.
7738         Delete code to push/pop obstacks.
7739         (reload_cse_simplify_operands): Likewise.
7740         * rtl.def (VALUE): New rtx code.
7741         * rtl.h (union rtunion_def): New elt rt_cselib.
7742         (X0CSELIB, CSELIB_VAL_PTR): New macros.
7743         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
7744         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
7745         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
7746         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
7747         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
7748         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
7749         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
7750         cselib_record_set, cselib_record_sets): New static functions.
7751         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
7752         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
7753         references_value_p): New functions.
7754         (MAX_USELESS_VALUES, REG_VALUES): New macros.
7755         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
7756         n_useless_values, reg_values, callmem, cselib_obstack,
7757         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
7758         New static variables.
7759         * varray.h (union varray_data_tag): New elt te.
7760         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
7761         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
7762         dependencies.
7763
7764 2000-03-14  Nick Clifton  <nickc@cygnus.com>
7765
7766         * gcc.c (do_spec_1): Catch the case where %* is used in a
7767         substitution pattern, but it has not been initialised.
7768         Issue a meaningful error message if an unrecognised operator
7769         is encountered in a spec string.
7770
7771 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
7772
7773         * function.c (prepare_function_start): Correctly initialize
7774         cfun->stack_alignment_needed.
7775
7776 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
7777
7778         * cppfiles.c (find_include_file): Don't assume nshort is a
7779         substring of name.
7780
7781 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
7782
7783         * configure.in (hppa configurations): Add pa32-regs.h to the
7784         list of tm files as appropriate.
7785         * configure: Rebuilt.
7786         * pa.c (compute_frame_size): Remove explicit knowledge about FP
7787         register numbering.
7788         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
7789         (fmpyaddoperands, fmpysuboperands): Likewise.
7790         * pa.h: Remove various definitions which depend on knowing
7791         how registers are numbered.
7792         * pa32-regs.h: New file with PA32 register numbering specific
7793         definitions.
7794
7795 2000-03-14  Richard Henderson  <rth@cygnus.com>
7796
7797         * regmove.c (combine_stack_adjustments): New.
7798         (stack_memref_p, single_set_for_csa): New.
7799         (free_csa_memlist, record_one_stack_memref): New.
7800         (try_apply_stack_adjustment): New.
7801         (combine_stack_adjustments_for_block): New.
7802         * rtl.h (combine_stack_adjustments): Declare.
7803         * toplev.c (rest_of_compilation): Call it.
7804
7805         * i386.md: Revert 2000-01-16 change.
7806
7807 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7808
7809         * gccbug.in: Add web category, gcc specific classes.
7810
7811 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
7812
7813         * stor-layout.c (finalize_record_size): Fix typo.
7814
7815 2000-03-14  Stan Shebs  <shebs@apple.com>
7816
7817         * c-typeck.c (c_alignof): Error on incomplete types.
7818         * extend.texi (Alignment): Document this.
7819
7820 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
7821
7822         * cppfiles.c: Include mkdeps.h.
7823         (find_include_file, read_include_file): Remove _cpp_ prefix
7824         from name, make static.
7825         (_cpp_execute_include): New function, broken out of
7826         do_include.
7827
7828         * cpplib.c: Don't include mkdeps.h.
7829         (struct directive): Remove type field. Reorder entries.  The
7830         function takes only one argument.
7831         (struct if_stack): Make type field an int.
7832         (directive_table): Rename to dtable.  Generate it, the
7833         prototypes of the directive handlers, and the enum for the
7834         directive numbers, from a template macro.
7835         (do_ifndef, do_include_next, do_import): New functions.
7836         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
7837         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
7838         do_ident, do_assert, do_unassert, do_sccs): Take only one
7839         argument.
7840         (do_sccs): Define always, but alter behavior based on
7841         SCCS_DIRECTIVE.
7842         (_cpp_handle_directive, consider_directive_while_skipping):
7843         Restructure for new directive table layout.
7844
7845         (pass_thru_directive): Take a directive number, not a pointer
7846         to a struct directive.
7847         (parse_include): New function, broken out of do_include.
7848         (do_include, do_import, do_include_next): Use parse_include
7849         and _cpp_execute_include.
7850         (do_elif, do_else): Test for T_ELSE specifically when checking
7851         for #elif/#else after #else.
7852         (parse_ifdef): New function, broken out of do_ifdef.
7853         (validate_else): Expect a name arg without a leading #.
7854         (if_directive_name): Delete.
7855         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
7856         directive handlers with only one argument.
7857
7858         * cpphash.h: Update prototypes.
7859         (enum node_type): Remove entries for directives.
7860         * Makefile.in: Update dependencies.
7861
7862         * cpphash.c (dump_hash_helper): Only dump nodes of type
7863         T_MACRO.  Emit a newline after each definition.
7864
7865 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7866
7867         * gccbug.in: New file.
7868         * configure.in (all_outputs): Add gccbug.
7869         * Makefile.in (install-common): Install gccbug.
7870         (GCCBUG_INSTALL_NAME): New variable.
7871         * configure: Rebuilt.
7872
7873 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
7874
7875         * function.c (put_var_into_stack): Use type_for_mode to calculate
7876         part_type.  Use MEM_SET_IN_STRUCT_P.
7877         * expr.c (store_field): Handle CONCAT.
7878         (store_constructor): Use fields_length.
7879         * tree.c (fields_length): New fn.
7880         * tree.h: Declare it.
7881
7882 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
7883
7884         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
7885         (cpplex.o): New target.
7886         * po/POTFILES.in: Add cpplex.c.
7887
7888         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
7889         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
7890         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
7891         skip_block_comment, skip_line_comment, skip_comment,
7892         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
7893         _cpp_parse_name, skip_string, parse_string,
7894         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
7895         _cpp_get_directive_token, find_position,
7896         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
7897         (maybe_macroexpand, _cpp_lex_token): New functions.
7898
7899         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
7900         parse_goto_mark): Delete.
7901         (_cpp_handle_eof): New function.
7902         (_cpp_handle_directive): Rename from handle_directive.
7903         (_cpp_output_line_command): Rename from output_line_command.
7904         (do_if, do_elif): Call _cpp_parse_expr directly.
7905         * cppfiles.c (_cpp_read_include_file): Don't call
7906         init_input_buffer here.
7907         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
7908         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
7909         here; pop the token_buffer and skip the rest of the line here.
7910         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
7911         here.
7912
7913         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
7914         Define here.
7915         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
7916         CPP_GOTO_MARK): New macros.
7917         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
7918         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
7919         _cpp_read_and_prescan, _cpp_init_input_buffer,
7920         _cpp_grow_token_buffer, _cpp_get_directive_token,
7921         _cpp_handle_directive, _cpp_handle_eof,
7922         _cpp_output_line_command): Prototype them here.
7923         * cpplib.h (enum cpp_token): Add CPP_MACRO.
7924         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
7925         quote_string, output_line_command): Remove.
7926
7927 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
7928
7929         * stmt.c (expand_end_case): RANGE may be signed, and when checking
7930         whether it is too large we must also verify that it isn't negative.
7931
7932 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
7933
7934         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
7935         (movsi_zero_liveg0): Remove.
7936         (movsf_insn_novis_liveg0): Remove.
7937         (negsi2): Remove.
7938         (negsi2_not_liveg0): Rename to negsi2.
7939         (one_cmplsi2): Remove.
7940         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
7941         (one_cmplsi2_liveg0): Remove.
7942         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
7943         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
7944         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
7945         (PREDICATE_CODES): Remove zero_operand.
7946         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
7947         TARGET_BROKEN_SAVERESTORE.
7948         (zero_operand): Remove.
7949         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
7950         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
7951         options.
7952         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7953         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
7954         TARGET_BROKEN_SAVERESTORE): Remove.
7955         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
7956         Remove.
7957         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
7958         Remove.
7959         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
7960         Remove.
7961
7962         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
7963
7964 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
7965
7966         * cpplib.c (do_pragma_implementation): Fix off-by-one error
7967         truncating a string.  Don't assume tokens are nul terminated.
7968         Problem noted by Andreas Jaeger <aj@suse.de>
7969
7970 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
7971
7972         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
7973         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
7974         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
7975
7976 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
7977
7978         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
7979         STRUCTURE_SIZE_BOUNDARY.
7980
7981 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
7982
7983         * tree.h (record_layout_info_s): New structure.
7984         (record_layout_info): New type.
7985         (new_record_layout_info): New function.
7986         (layout_field): Likewise.
7987         (finish_record_layout): Likewise.
7988         * stor-layout.c (layout_record): Remove.
7989         (new_record_layout_info): New function.
7990         (layout_field): New function, broken out from layout_record.
7991         (finalize_record_size): Likewise.
7992         (compute_record_mode): Likewise.
7993         (finalize_type_size): New function, broken out from layout_type.
7994         (finish_record_layout): Likewise.
7995         (layout_type): Use them.
7996
7997 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
7998
7999         * cpphash.c: Don't include version.h.
8000         (special_symbol) [case T_VERSION]: Look for the string in
8001         hp->value.cpval; don't use version_string.
8002         * cppinit.c (initialize_builtins): Set hp->value.cpval for
8003         __VERSION__ to version_string.
8004         * Makefile.in (cpphash.o): Update deps.
8005
8006 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
8007
8008         Convert cpplib to use libiberty/hashtab.c.
8009
8010         * cpplib.h (struct cpp_reader): Make hashtab and
8011         all_include_files of type 'struct htab *'.  Delete HASHSIZE
8012         and ALL_INCLUDE_HASHSIZE macros.
8013
8014         * cpphash.h: Update prototypes.
8015         (struct hashnode): Remove next, prev, and bucket_hdr members.
8016         Make length a size_t.  Add hash member.
8017         (struct ihash): Remove next member.  Add hash member.  Make
8018         name a flexible array member.
8019
8020         * cppfiles.c: Include hashtab.h.
8021         (include_hash): Delete.
8022         (IHASHSIZE): New macro.
8023         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
8024         (cpp_included): Do the hash lookup here.
8025         (_cpp_find_include_file): Rewrite.
8026         (cpp_read_file): Put the "fake" hash entry into the hash
8027         table.  Honor the control_macro, if it turns out we've seen
8028         the file before.  Don't push the buffer here.
8029         (_cpp_read_include_file): Push the buffer here.
8030         (OMODES): New macro.  Use it whenever we call open(2).
8031
8032         * cpphash.c: Include hashtab.h.
8033         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
8034         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
8035         _cpp_lookup_slot): New functions.
8036         (HASHSIZE): new macro.
8037         (hashf, _cpp_install, _cpp_delete_macro): Delete.
8038         (_cpp_lookup): Use hashtab.h routines.
8039
8040         * cppinit.c: Include hashtab.h.
8041         (cpp_reader_init): Call _cpp_init_macro_hash and
8042         _cpp_init_include_hash.  Don't allocate hashtab directly.
8043         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
8044         pfile->all_include_files.
8045         (initialize_builtins): Use _cpp_make_hashnode and
8046         htab_find_slot to add hash entries.
8047         (cpp_finish): Just call _cpp_dump_macro_hash.
8048         * cpplib.c: Include hashtab.h.
8049         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
8050         create hash entries.
8051         (do_pragma_poison, do_assert): Likewise.
8052         (do_include): Don't push the buffer here.  Don't increment
8053         system_include_depth unless _cpp_read_include_file succeeds.
8054         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
8055         or htab_remove_elt.
8056         (do_pragma_implementation): Use alloca to create copy.
8057
8058         * Makefile.in: Update dependencies.
8059
8060 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8061
8062         * cppinit.c (cl_directive_handler): More K&R fixing.
8063
8064 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
8065
8066         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
8067         STACK_BOUNDARY.
8068         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
8069
8070 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8071
8072         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
8073         Change from char[] to macros.
8074
8075 2000-03-12  Neil Booth  <NeilB@earthling.net>
8076
8077         * cppinit.c (cpp_start_read): Update indirect function
8078         call to K&R C.
8079
8080 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
8081
8082         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
8083         entry.
8084
8085         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
8086         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
8087
8088 2000-03-11  Neil Booth  <NeilB@earthling.net>
8089
8090         * cppinit.c (struct pending option): Replace undef with a
8091         pointer to a directive handling routine.
8092         (struct cpp_pending): Replace separate assert_ and define_
8093         lists with one directive_ list.
8094         (new_pending_define): Rename new_pending_directive. Extra
8095         argument is the directive's handling routine.
8096         (handle_option): Update to use new_pending_directive.
8097
8098 2000-03-11  Neil Booth  <NeilB@earthling.net>
8099
8100         * cppfiles.c (file_cleanup, _cpp_find_include_file,
8101         remap_filename, _cpp_read_include_file, actual_directory,
8102         hack_vms_include_specification): Replace bcopy(), index() etc
8103         calls.  Add casts to some allocations.  Make some variables
8104         pointers to const [unsigned] char.
8105         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
8106         collect_formal_parameters): Similarly.
8107         * cppinit.c (struct pending_option, append_include_chain,
8108         cpp_options_init, cpp_reader_init, initialize_standard_includes,
8109         cpp_start_read, new_pending_define, handle_option): Similarly.
8110         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
8111         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
8112         do_pragma_implementation, detect_if_not_defined,
8113         do_ifdef, skip_if_group, cpp_get_token, parse_string,
8114         do_assert, do_unassert): Similarly.
8115         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
8116         function prototypes.
8117         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
8118
8119 2000-03-10  Richard Henderson  <rth@cygnus.com>
8120
8121         * builtins.c (expand_builtin_strlen): Revert last change.
8122         Use emit_insn_before if we're at the beginning of a sequence.
8123
8124 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
8125
8126         * builtins.c (expand_builtin_strlen): Make sure that we have something
8127         at the beginning of the sequence.
8128
8129         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
8130         deferred inlines.
8131
8132         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
8133
8134 2000-03-10  Richard Henderson  <rth@cygnus.com>
8135
8136         * except.c (can_throw): Use INTVAL on a CONST_INT.
8137         (reachable_handlers): Likewise.
8138         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
8139
8140 2000-03-10  Andreas Jaeger  <aj@suse.de>
8141
8142         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
8143         MD_STARTFILE_PREFIX since those are not needed on linux.
8144         (ASM_FILE_START): New, from mips/gnu.h.
8145
8146 2000-03-09  Richard Henderson  <rth@cygnus.com>
8147             Alex Samuel  <samuel@codesourcery.com> and others
8148
8149         * Makefile.in (ssa.o): New rule.
8150         (OBJS): Add ssa.o.
8151         (STAGESTUFF): Add *.ssa and *.ussa.
8152         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
8153         * rtl.def (PHI): New RTL expression.
8154         * rtl.h (clear_log_links): New declaration.
8155         (convert_to_ssa): Likewise.
8156         (convert_from_ssa): Likewise.
8157         * flow.c (split_edge): If the entry node falls through to the
8158         split edge's source block, split the entry edge.
8159         (clear_log_links): New function.
8160         * toplev.c (ssa_dump): New variable.
8161         (flag_ssa): Likewise.
8162         (f_options): Add "ssa".
8163         (compile_file): Create SSA dump files.
8164         (rest_of_compilation): Go to and from SSA if enabled.
8165         (decide_d_option): Handle -de for SSA dump files.
8166         * ssa.c: New file.
8167
8168 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
8169
8170         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
8171         same as VAR_DECL.
8172
8173 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
8174
8175         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
8176
8177 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
8178
8179         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
8180         (MD_STARTFILE_PREFIX_1): New macro.
8181
8182 2000-03-09  Robert Lipe  <robertl@sco.com>
8183
8184         * config/ia64/ia64.c: Include system.h.
8185
8186 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
8187
8188         * except.c (nothrow_function_p): If -fno-exceptions, just return.
8189         (init_eh_nesting_info): Likewise.
8190
8191         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
8192         (TREE_NOTHROW): Rename from TREE_RAISES.
8193         * toplev.c (rest_of_compilation): Set it.
8194         * print-tree.c (print_node): Adjust.
8195         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
8196         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
8197         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
8198         REG_EH_REGION note as appropriate.
8199         (libfunc_nothrow): New fn.
8200         (emit_library_call, emit_library_call_value): Use it.
8201         (expand_call): Check TREE_NOTHROW.
8202
8203         * varasm.c (make_decl_rtl): Skip initial '*' when setting
8204         DECL_ASSEMBLER_NAME.
8205
8206 2000-03-09  Andreas Jaeger  <aj@suse.de>
8207
8208         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
8209         (TARGET_MEM_FUNCTIONS): Define.
8210
8211 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
8212
8213         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
8214
8215         * except.c (can_throw): See through a SEQUENCE.
8216         (nothrow_function_p): New fn.
8217         * except.h: Declare it.
8218         * function.c (current_function_nothrow): New var.
8219         (prepare_function_start): Initialize it.
8220         * output.h: Declare it.
8221         * toplev.c (rest_of_compilation): Set it.
8222         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
8223
8224 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
8225
8226         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
8227         match.  (cpp_compare_defs): Count the nul separator when
8228         advancing over argument names.
8229
8230 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
8231
8232         * recog.c (preprocess_constraints): Matching constraints affect
8233         same alternative/different operand, not same operand/different
8234         alternative.
8235
8236         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
8237         register and a constant specially.
8238
8239 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8240
8241         * libgcc2.h: New file.
8242         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
8243
8244 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
8245
8246         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
8247         * configure: Regenerate.
8248         * config/ia64: New.
8249
8250 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
8251
8252         * Makefile.in (LIBCPP_DEPS): New macro.
8253         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
8254         it to declare deps.
8255         * cpperror.c: Include cpphash.h.
8256         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
8257         dingleberry.
8258         (lex): Don't use CPP_WARN_UNDEF.
8259         (_cpp_parse_expr): Return an int, the truth value.
8260         * cppfiles.c: Include cpphash.h.
8261         (_cpp_merge_include_chains): Move to cppinit.c and make static.
8262         * cppinit.c (include_defaults_array): Disentangle.
8263         (cpp_cleanup): Don't free the if stack here.
8264         (cpp_finish): Pop off all buffers, not just one.
8265         * cpplib.c (eval_if_expr): Return int.
8266         (do_xifdef): Rename do_ifdef.
8267         (handle_directive): Don't use CPP_PREPROCESSED.
8268         (cpp_get_token): Don't use CPP_C89.
8269         * fix-header.c: Don't use CPP_OPTIONS.
8270
8271         * cpplib.h: Move U_CHAR, enum node_type, struct
8272         file_name_list, struct ihash, is_idchar, is_idstart,
8273         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
8274         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
8275         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
8276         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
8277         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
8278         of _cpp_simplify_pathname, _cpp_find_include_file,
8279         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
8280         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
8281         cppinit.c.
8282         Change all uses of U_CHAR to be unsigned char instead.
8283         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
8284
8285 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
8286
8287         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
8288         (dwarf2out_begin_prologue): Set it.
8289         (output_call_frame_info): Don't emit EH unwind info for leaves.
8290
8291         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
8292         can occur outside of an EH region.
8293         * except.c: Correct comments about rethrow behavior.
8294         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
8295
8296 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
8297
8298         * flow.c (make_edges): Always call make_eh_edge for calls.
8299
8300 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
8301
8302         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
8303         (struct cpp_buffer): Remove fname and underflow fields.
8304         (struct cpp_reader): Remove get_token field.
8305         (struct include_hash): Rename to struct ihash.  Add typedef to
8306         IHASH.
8307         (struct if_stack): Remove fname field.
8308         (IF_STACK_FRAME): Rename to IF_STACK.
8309
8310         * cpperror.c (print_containing_files): Trust that there are no
8311         macro buffers below the top file buffer.
8312         * cppfiles.c: Replace all references to 'struct include_hash'
8313         with 'IHASH'.  Rename initialize_input_buffer to
8314         init_input_buffer.  Don't set or reference cpp_buffer->fname,
8315         use buffer->ihash->name instead.
8316         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
8317         not CPP_NULL_BUFFER.
8318         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
8319         IF_STACK_FRAME, IHASH not struct include_hash.
8320         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
8321         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
8322         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
8323         references to cpp_buffer->fname (delete entirely, or use
8324         ->ihash->name instead) and IF_STACK->fname.
8325         (cpp_push_buffer): Don't set new->underflow.
8326         (do_include): Use cpp_file_buffer.
8327
8328         * cpphash.c (collect_formal_parameters): Remove duplicate
8329         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
8330         used as a macro argument name.  Don't append "..." to namebuf
8331         for varargs macros.  After we're done scanning, go through
8332         namebuf and make it NUL separated, not comma separated.
8333         (_cpp_compare_defs): Remove register tag from variables.
8334         Expect defn->argnames to be NUL separated.
8335         (_cpp_dump_definition): Expect defn->argnames to be NUL
8336         separated and in forward order.
8337         * cpphash.h: Update documentation of argnames field.
8338
8339 2000-03-08  Richard Henderson  <rth@cygnus.com>
8340
8341         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
8342         to fail.  Don't pre-expand the source operand.
8343
8344         * i386.md (strlensi): Initialize eoschar and align before use.
8345
8346 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
8347
8348         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
8349         CONSTRUCTOR element.
8350
8351 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
8352
8353         * mips.c (mips_expand_prologue): If the last
8354         named argument is the vararg marker "va_list", treat it as
8355         an unnamed argument.
8356
8357 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
8358
8359         * dbxout.c (dbxout_parms): When correcting for promoted
8360         big-endian parameters, use the mode of the DECL_RTL rather
8361         than UNITS_PER_WORD.
8362
8363 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
8364
8365         * c-common.h (make_fname_decl): Declare.
8366         * c-common.c (make_fname_decl): Define.
8367         (declare_hidden_char_array): Remove.
8368         (declare_function_name): Use make_fname_decl.
8369         * c-decl.c (c_make_fname_decl): New function.
8370         (init_decl_processing): Set make_fname_decl.
8371
8372 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
8373
8374         * cccp.c (handle_directive): Initialize backslash_newlines_p.
8375
8376 2000-03-07  Philipp Thomas  <pthomas@suse.de>
8377
8378         * po/POTFILES.in: Remove cppalloc.c from file list.
8379
8380 2000-03-07  Steve Chamberlain  <sac@pobox.com>
8381
8382         * pj.c (pj_expand_prologue): current_function->args_info is
8383         now current_function_args_info.
8384
8385         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
8386         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
8387         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
8388
8389 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8390
8391         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
8392         output as hexadecimal rather than the default octal.
8393
8394 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
8395
8396         * cpphash.c (special_symbol): Fix thinko in previous commit.
8397
8398 2000-03-07  Neil Booth  <NeilB@earthling.net>
8399
8400         * cppexp.c (struct operation, left_shift, right_shift,
8401         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
8402         "int"s to "unsigned int"s.
8403         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
8404         Similarly.
8405         * cpplib.h: Update for above.
8406         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
8407         returned from allocations.
8408
8409         * cppinit.c (opt_comp, parse_options): New functions.
8410         (handle_option): Use parse_option to parse a single command
8411         line option, that possibly takes an argument.
8412         (cpp_handle_options): Sort the array of command line options on
8413         first invocation (non-ASCII hosts only).
8414         (print_help): Update.
8415
8416 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
8417
8418         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
8419         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
8420
8421         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
8422         initialized.
8423         * cppinit.c (cpp_cleanup): Free imp->nshort also.
8424
8425         * cpperror.c (cpp_print_containing_files,
8426         cpp_print_file_and_line, v_cpp_message): Rename to
8427         print_containing_files, print_file_and_line, and v_message.
8428         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
8429         to _cpp_parse_expr, parse_escape, and lex.
8430         (parse_charconst): Remove broken multibyte support.
8431         * cppfiles.c (include_hash): Make static.
8432         (cpp_included): New function.
8433         (merge_include_chains, find_include_file, finclude,
8434         simplify_pathname): Rename to _cpp_merge_include_chains,
8435         _cpp_find_include_file, _cpp_read_include_file, and
8436         _cpp_simplify_pathname.
8437         * cpphash.c (cpp_lookup, free_definition, delete_macro,
8438         cpp_install, create_definition, macroexpand, compare_defs,
8439         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
8440         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
8441         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
8442         * cppinit.c (cpp_handle_option): Rename to handle_option, make
8443         static.
8444         * cpplib.c: Remove extern prototype of cpp_parse_expr.
8445
8446         * cpphash.h: Update prototypes.
8447         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
8448
8449 2000-03-07  Andrew Haley  <aph@cygnus.com>
8450
8451         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
8452         PTRDIFF_TYPE should be based solely on Pmode.
8453         (SIZE_TYPE): ditto.
8454
8455 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8456
8457         * rtl.h (rtunion_def): Constify member `rtstr'.
8458         (emit_line_note_after, emit_line_note, emit_line_note_force,
8459         emit_note, decode_asm_operands): Constify.
8460
8461         * cse.c (canon_hash): Likewise.
8462
8463         * dbxout.c (dbxout_block): Likewise.
8464
8465         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
8466         v_warning_for_asm): Likewise.
8467
8468         * dwarfout.c (function_start_label): Likewise.
8469
8470         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
8471         emit_line_note_force): Likewise.
8472
8473         * final.c (last_filename, asm_insn_count, final_scan_insn,
8474         output_source_line): Likewise.
8475
8476         * function.h (struct emit_status): Likewise.
8477
8478         * gcse.c (hash_expr_1): Likewise.
8479
8480         * genattr.c (gen_attr, main): Likewise.
8481
8482         * genattrtab.c (struct function_unit, current_alternative_string,
8483         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
8484         attr_numeral, check_attr_test, check_attr_value,
8485         convert_set_attr_alternative, convert_set_attr,
8486         compute_alternative_mask, simplify_by_exploding, gen_attr,
8487         gen_unit): Likewise.
8488
8489         * genflags.c (gen_insn): Likewise.
8490
8491         * gengenrtl.c (type_from_format): Likewise.
8492
8493         * genopinit.c (gen_insn): Likewise.
8494
8495         * genoutput.c (n_occurrences, process_template, process_template):
8496         Likewise.
8497
8498         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
8499         Likewise.
8500
8501         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
8502         Likewise.
8503
8504         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
8505         ggc_set_mark, ggc_get_size): Likewise.
8506
8507         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
8508
8509         * optabs.c (init_one_libfunc): Likewise.
8510
8511         * output.h (assemble_start_function): Likewise.
8512
8513         * recog.c (decode_asm_operands): Likewise.
8514
8515         * toplev.c (rest_of_compilation): Likewise.
8516
8517         * tree.h (emit_line_note_after, emit_line_note,
8518         emit_line_note_force): Likewise.
8519
8520         * varasm.c (asm_output_bss, asm_output_aligned_bss,
8521         asm_emit_uninitialised, assemble_start_function,
8522         assemble_variable, const_hash, compare_constant_1,
8523         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
8524
8525         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
8526
8527         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
8528
8529         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
8530
8531         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
8532
8533         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
8534         arm_dllimport_name_p): Likewise.
8535
8536         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
8537         Likewise.
8538
8539         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
8540
8541         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8542
8543         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
8544         arm_mark_dllexport, arm_mark_dllimport,
8545         arm_pe_encode_section_info): Likewise.
8546
8547         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
8548         ASM_FINISH_DECLARE_OBJECT): Likewise.
8549
8550         * arm/thumb.c (thumb_function_prologue): Likewise.
8551
8552         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
8553
8554         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8555
8556         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
8557
8558         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
8559
8560         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
8561
8562         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8563
8564         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
8565         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
8566
8567         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
8568
8569         * i386/i386.c (asm_output_function_prefix): Likewise.
8570
8571         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
8572
8573         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8574
8575         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
8576
8577         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
8578         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
8579         ASM_OUTPUT_SECTION_NAME): Likewise.
8580
8581         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
8582
8583         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
8584
8585         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
8586
8587         * m32r/m32r.c (m32r_encode_section_info): Likewise.
8588
8589         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8590
8591         * mcore/mcore.c (mcore_encode_section_info): Likewise.
8592
8593         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8594
8595         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8596
8597         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8598
8599         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
8600
8601         * mips/mips.md (movdi, movsi): Likewise.
8602
8603         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8604
8605         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8606
8607         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8608
8609         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
8610         ASM_OUTPUT_ASCII): Likewise.
8611
8612         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
8613         output_mi_thunk, output_toc): Likewise.
8614
8615         * rs6000/rs6000.md (movsi): Likewise.
8616
8617         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
8618
8619         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
8620
8621         * v850/v850.c (print_operand, print_operand_address,
8622         v850_encode_data_area): Likewise.
8623
8624 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
8625
8626         * config/mips/mips.md (zero_extendsidi2): Always force operand
8627         one to memory for mips16.
8628
8629 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8630
8631         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
8632         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
8633         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
8634         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
8635         (min_precision): Result is unsigned.
8636         (add_double, neg_double, mul_double): Low word is unsigned.
8637         (lshift_double, rshift_double, lrotate_double): Likewise.
8638         (rrotate_double, div_and_round_double): Likewise.
8639         (tree_floor_log2, compare_tree_int): New functions.
8640         (preserve_rtl_expr_temps): New declaration.
8641         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
8642         (decl_attributes): Use tree_log2 to find alignment.
8643         Check for TREE_INT_CST_HIGH for format args.
8644         (min_precision): Now unsigned.
8645         Use tree_floor_log2.
8646         (truthvalue_conversion): Delete long-disabled code.
8647         * c-decl.c (finish_struct): Clean up tests on field width.
8648         (finish_function): Use compare_tree_int.
8649         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
8650         * c-typeck.c (comptypes): Use tree_int_cst_equal.
8651         (default_conversion, digest_init): Use compare_tree_int.
8652         (build_binary_op): Use integer_all_onesp and compare_tree_int.
8653         Fix type errors in forming masks.
8654         * calls.c (initialize_argument_information): Use compare_tree_int.
8655         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
8656         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
8657         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
8658         (store_field): Use compare_tree_int.
8659         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
8660         (expand_expr, case ARRAY_REF): Use compare_tree_int.
8661         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
8662         (do_store_flag): Use compare_tree_int.
8663         * fold-const.c (encode, decode): Low part is always unsigned.
8664         (force_fit_type, add_double, neg_double, mul_double): Likewise.
8665         (lshift_double, rshift_double, lrotate_double): Likewise.
8666         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
8667         (fold_convert): Use compare_tree_int.
8668         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
8669         (invert_truthvalue, case INTEGER_CST): Likewise.
8670         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
8671         * mkdeps.c (deps_dummy_targets): Make I unsigned.
8672         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
8673         (lshift_double, rshift_double, lrotate_double, rrotate_double):
8674         Likewise.
8675         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
8676         (expand_end_case): Use compare_tree_int.
8677         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
8678         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
8679         (layout_decl): Likewise.
8680         (layout_record, layout_union): Make sizes unsigned.
8681         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
8682         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
8683         * tree.c (struct type_hash): hashcode is unsigned.
8684         (build_type_attribute_variant, type_hash_list): Likewise.
8685         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
8686         (attribute_hash_list, build_array_type, build_method_type): Likewise.
8687         (build_complex_type): Likewise.
8688         (real_value_from_int_cst): Remove unneeded casts.
8689         (integer_all_onesp): Add casts.
8690         (tree_floor_log2, compare_tree_int): New functions.
8691         (build_index_type): Use tree_int_cst_sgn.
8692         * varasm.c (assemble_variable): Use compare_tree_int.
8693
8694 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
8695
8696         * cpphash.c (collect_expansion): Also catch ## at start of macro.
8697
8698         * varasm.c (make_decl_rtl): Don't add a number to members of
8699         local classes.
8700         (make_function_rtl): Likewise.
8701
8702 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8703
8704         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
8705         patch from 2000-01-28.
8706
8707 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
8708
8709         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
8710         filled with an insn from the jump target.
8711
8712 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8713
8714         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
8715         (c4x_external_ref): Likewise.
8716         * config/c4x/c4x.c (struct name_list): Likewise.
8717
8718 1999-12-16  Ben Collins  <bcollins@debian.org>
8719
8720         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
8721         argument to genmultilib.
8722         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
8723         the contents into the multilib.h header.
8724         * gcc.c: Declare multilib_exclusions for the specs file.
8725         (set_multilib_dir): Use it.
8726         (print_multilib_info): Likewise.
8727         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
8728         to pass to genmultilib.
8729
8730 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8731
8732         * builtins.c (built_in_class_names, built_in_names): Constify a
8733         char*.
8734
8735         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
8736         int.
8737         (_mcleanup): Ensure value matches format specifier in sprintf.
8738
8739         * cpphash.c (special_symbol): Don't needlessly cast away
8740         const-ness.
8741
8742         * cppinit.c (base_name): Delete unused prototype.
8743
8744         * mkdeps.c (deps_init): Make definition K&R safe.
8745
8746         * tree.h (built_in_class_names, built_in_names): Constify a
8747         char*.
8748
8749 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
8750
8751         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
8752         floating point instructions for epilogue delay.
8753
8754         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
8755         to gas if it supports .register pseudo.
8756
8757         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
8758         LONG_DOUBLE_TYPE_SIZE if not defined.
8759         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
8760         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
8761         * real.c: Likewise.
8762         * gengenrtl.c: Likewise.
8763         * print-rtl.c: Likewise.
8764         * rtl.c: Likewise.
8765         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
8766         MASK_LONG_DOUBLE_128.
8767         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
8768         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
8769         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
8770         (SUBTARGET_SWITCHES): Define.
8771         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
8772         with -mlong-double-128.
8773         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
8774         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
8775         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
8776         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
8777         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
8778         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
8779         with -mlong-double-128.
8780         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
8781         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
8782         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
8783         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
8784         TARGET_LONG_DOUBLE_128): Define.
8785         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
8786         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
8787         long double on TARGET_ARCH64.
8788
8789 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
8790
8791         * function.c (free_temps_for_rtl_expr): Don't free slots
8792         that have been pushed into a higher level.
8793
8794         Revert this patch:
8795         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
8796
8797 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
8798
8799         * basic-block.h (ALLOCA_REG_SET): Remove.
8800         (INITIALIZE_REG_SET): New macro.
8801         * flow.c (update_life_info): Use it.
8802         (calculate_global_regs_live): Likewise.
8803         (propagate_block): Likewise.
8804         * global.c (build_insn_chain): Likewise.
8805         * haifa-sched.c (schedule_region): Likewise.
8806
8807 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
8808
8809         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
8810         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
8811         (DWARF_ARANGES_PAD_SIZE): New define.
8812         (output_aranges): Use it to pad the address range header.
8813         (DWARF_ROUND): Fix for non power of 2 rounding.
8814
8815 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
8816
8817         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
8818
8819 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
8820
8821         * tree.def (RTL_EXPR): Update documentation.
8822         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
8823         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
8824         * function.c (preserve_rtl_expr_temp): New function.
8825         (preserve_rtl_expr_temps): Likewise.
8826         (preserve_rtl_expr_result): Use it.
8827
8828         Revert this patch:
8829         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
8830
8831 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
8832
8833         * regmove.c (copy_src_to_dest)  Do not create src->dest move
8834         for unchanging destination.
8835
8836 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
8837
8838         * function.h (struct sequence_stack): Remove rtl_expr.
8839         (struct emit_staus): Likewise.
8840         (seq_rtl_expr): Remove.
8841         * tree.h (free_temps_for_rtl_expr): Don't declare.
8842         (start_sequence_for_rtl_expr): Likewise.
8843         * rtl.h (preserve_rtl_expr_result): Likewise.
8844         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
8845         (start_sequence_for_rtl_expr): Remove.
8846         (push_topmost_sequence): Don't save sequence_rtl_expr.
8847         (pop_topmost_sequence): Remove comment about not restoring it.
8848         (end_sequence): Don't set seq_rtl_expr.
8849         (init_emit): Don't initialize it.
8850         (mark_sequence_stack): Don't mark it.
8851         (mark_emit_status): Likewise.
8852         * except.c (protect_with_terminate): Use
8853         start_sequence_for_rtl_expr, not start_sequence.
8854         * expr.c (expand_expr, case RTL_EXPR): Don't call
8855         preserve_rtl_expr_result or free_temps_for_rtl_expr.
8856         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
8857         (preserve_rtl_expr_result): Remove.
8858         (free_temps_for_rtl_expr): Likewise.
8859         (pop_temp_slots): Likewise.
8860         (mark_temp_slot): Don't mark the rtl_expr.
8861         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
8862         start_sequence_for_rtl_expr.
8863
8864 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
8865
8866         * mkdeps.c, mkdeps.h: New files.
8867         * po/POTFILES.in: Add them.
8868         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
8869         (cpplib.o, cppinit.o): Depend on mkdeps.h.
8870         (mkdeps.o): New target.
8871
8872         * cppfiles.c: Delete deps_output.
8873         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
8874         OBJECT_SUFFIX, and base_name.
8875         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
8876         the include hash.
8877         (initialize_dependency_output): Use deps_init,
8878         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
8879         all the unnecessary string bashing.
8880         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
8881         level.
8882         * cpplib.c (do_include): Use deps_add_dep.
8883         * cpplib.h (struct cpp_reader): Replace deps_buffer,
8884         deps_allocated_size, deps_size, deps_column members with
8885         single pointer to a struct deps.  Delete prototype of
8886         deps_output.
8887
8888         * cppinit.c: Fix thinko in previous patch.
8889
8890 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8891
8892         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
8893         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
8894         (mode_for_size_tree): New function.
8895         (layout_decl, layout_type): Call it and clean up BLKmode checks.
8896         * tree.h (mode_for_size_tree): New declaration.
8897
8898         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
8899
8900 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
8901
8902         * stmt.c (is_body_block): Move...
8903         * dwarfout.c, dwarf2out.c: ...from here.
8904         * tree.h: Declare it.
8905         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
8906         * final.c (final_start_function): Do call remove_unnecessary_notes
8907         when scheduling.
8908
8909 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
8910
8911         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
8912
8913         * cpplib.h (_dollar_ok): New macro.
8914         (is_idchar, is_idstart): Use it.
8915         (IStable): Rename to _cpp_IStable.  Declare it const if
8916         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
8917         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
8918         is_space): Update for renamed IStable.
8919
8920         * cppinit.c: Delete all references to FAKE_CONST and CAT
8921         macros. Define init_IStable as empty macro if gcc >=2.7 or
8922         C99. Change TABLE() to ISTABLE and hardcode name of table.
8923         (cpp_start_read): Don't change the IStable based on
8924         dollars_in_ident.
8925
8926         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
8927         changed.  Handle '$' for char1 correctly.
8928         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
8929
8930         * cppexp.c (tokentab2): Make const.
8931         (cpp_lex): Make toktab const.
8932         * cppinit.c (include_defaults_array): Make const.
8933         (initialize_standard_includes): Make default_include const.
8934
8935 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
8936
8937         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
8938         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
8939         (gen_decl_die): Likewise.
8940         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
8941         (output_decl): Likewise.
8942
8943         * varasm.c (make_function_rtl): If we change the name used in the
8944         rtl, update DECL_ASSEMBLER_NAME accordingly.
8945         (make_decl_rtl): Likewise.
8946
8947         * toplev.c (rest_of_compilation): Tweak formatting.
8948
8949         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
8950         remove_unnecessary_notes.
8951         (debug_ignore_block): New fn.
8952         * toplev.h: Declare it.
8953         * emit-rtl.c (remove_unncessary_notes): Call it.
8954         * dwarf2out.c (dwarf2out_ignore_block): New fn.
8955         * dwarf2out.h: Declare it.
8956         * final.c (final_start_function): Don't call remove_unnecessary_notes
8957         if we did insn scheduling.
8958
8959 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
8960
8961         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
8962         * cpplib.h: Delete SET_CPP_PEDANTIC.
8963
8964 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8965
8966         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
8967         result is a RECORD_TYPE.
8968
8969 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
8970
8971         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
8972
8973 2000-03-03  Richard Henderson  <rth@cygnus.com>
8974
8975         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
8976         addition over compliments over shifts.
8977
8978 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8979
8980         * reload1.c (reload_combine_note_use): Handle return register USEs.
8981         REG case: Handle multi-hard-register hard regs.
8982
8983 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8984
8985         * md.texi: Document use of '*' in insn pattern name.
8986
8987 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
8988
8989         * calls.c (special_function_p): operator new may not be malloc-like.
8990
8991         * gcse.c (dump_hash_table): Really fix error in last change.
8992
8993 2000-03-02  Denis Chertykov  <denisc@overta.ru>
8994
8995         * avr.c (print_operand): Use print_operand_address instead of
8996         output_addr_const.
8997         * avr/libgcc.S: Cleanup code.
8998
8999 2000-03-02  Richard Henderson  <rth@cygnus.com>
9000
9001         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
9002
9003 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
9004
9005         * tree.h (TYPE_ALIGN_UNIT): New macro.
9006
9007 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
9008
9009         * i386.c: (constant_call_address_operand): Reject CONST_INT.
9010
9011 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
9012
9013         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
9014         for the buffer.
9015         (SET_CPP_PEDANTIC): New macro.
9016         * cpplib.c (do_include): Don't bother checking system_header_p.
9017         (do_warning, do_ident, do_assert, do_unassert): Likewise.
9018         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
9019
9020         * function.h (struct expr_status): Add x_arg_space_so_far.
9021         (arg_space_so_far): New macro.
9022         * expr.c (init_expr): Initialize it.
9023         * calls.c (emit_call_1): Reset it.
9024         (compute_argument_block_size, expand_call): Use it.
9025         (expand_call, store_one_arg): Increment it.
9026
9027 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9028
9029         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
9030         a UNION_TYPE.
9031
9032 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
9033
9034         * cppfiles.c (cpp_read_file): New function.
9035
9036         * cpphash.c (collect_expansion): Make sure to reset last_token
9037         to NORM when we hit a string.  Handle trailing whitespace
9038         properly when the expansion is empty.
9039         (create_definition): Disable line commands while parsing the
9040         directive line.
9041         (dump_definition): If pfile->lineno == 0, output a line
9042         command ahead of the dump, and add a trailing newline.
9043
9044         * cppinit.c (append_include_chain): Add fifth argument, which
9045         indicates whether or not system headers are C++ aware.
9046         (initialize_standard_includes): New function,
9047         broken out of read_and_prescan.  Pass 'cxx_aware' value from
9048         the include_defaults_array on to append_include_chain.
9049         (dump_special_to_buffer): Const-ify char array.
9050         (builtin_array): Don't dump __BASE_FILE__.
9051         (cpp_start_read): Use cpp_read_file.  Reorder code for
9052         clarity.  Don't output line commands here for -D/-A/-U
9053         switches.  Don't call deps_output for files included with
9054         -include or -imacros.
9055
9056         * cpplib.c (do_define): Don't pay any attention to the second
9057         argument.
9058         (cpp_expand_to_buffer): Disable line commands while scanning.
9059         (output_line_command): Work in the file buffer.
9060         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
9061         Fix formatting of comments.  Prototype cpp_read_file.
9062
9063 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9064
9065         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
9066         reference the language-equivalent of sizetype.
9067         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
9068         * fold-const.c (size_binop, size_diffop): Put back checks.
9069         * gcse.c (dump_hash_table): Fix minor error in last change.
9070         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
9071         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
9072         all sizetypes.
9073
9074 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
9075
9076         * calls.c (expand_call)  Do not attempt to combine stack adjustments
9077         with inhibit_defer_pop set.
9078
9079 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
9080
9081         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
9082         the DECL_SIZE for a FIELD_DECL.
9083
9084 2000-03-01  Bruce Korb  <bkorb@gnu.org>
9085
9086         * fixinc/inclhack.tpl: remove unused symlinks
9087         * fixinc/README: GCC Maintainer info
9088         * fixinc/inclhack.sh: regen
9089         * fixinc/fixincl.sh: regen
9090
9091 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
9092
9093         * cpphash.c (collect_expansion): Trim trailing white space
9094         from macro definitions, but don't go past the last insertion
9095         point.
9096
9097 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
9098
9099         * i386.md (mulqi3): New pattern.
9100
9101 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
9102
9103         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
9104         token types.
9105         (struct cpp_reader): Add parsing_if_directive and
9106         parsing_define_directive flags.
9107         (struct cpp_options): Remove output_conditionals flag.
9108         (check_macro_name): Delete prototype.
9109
9110         * cpphash.h (struct macrodef): Delete.
9111         (struct reflist): Separate from struct definition.
9112         (struct definition): Remove unused fields.  Add column number.
9113         (create_definition): Returns a DEFINITION *.  Takes a
9114         cpp_reader * and an int.
9115
9116         * cpphash.c (SKIP_WHITE_SPACE): Delete.
9117         (PEEKC): Copy defn from cpplib.c.
9118         (rest_extension, REST_EXTENSION_LENGTH): Delete.
9119         (struct arg): New.
9120         (struct arglist): Simplify.
9121         (collect_expansion): Rewrite.  Get tokens by calling
9122         cpp_get_token.  Add more error checking.
9123         (collect_formal_parameters): New function, broken out of
9124         create_definition and reworked to use get_directive_token.
9125         (create_definition): All real work is now in collect_expansion
9126         and collect_formal_parameters.  do_define handles finding the
9127         macro name.  Return a DEFINITION, not a MACRODEF.
9128         (macroexpand): Replace bcopy with memcpy throughout.  Replace
9129         character-at-a-time copy loop with memcpy and pointer increments.
9130         (compare-defs): d1->argnames / d2->argnames might be null.
9131
9132         * cpplib.c (copy_rest_of_line): Delete function.
9133         (skip_rest_of_line): Do all the work ourselves.
9134         (skip_string): New function.
9135         (parse_string): Use skip_string.
9136         (get_macro_name): New function.
9137         (check_macro_name): Delete.
9138         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
9139         (cpp_skip_hspace): Use CPP_BUMP_LINE.
9140         (handle_directive): ICE if we're called on a macro buffer.
9141         (do_define): Determine macro name and type (funlike/objlike)
9142         here.  Expunge all uses of MACRODEF.
9143         (cpp_push_buffer): Set line_base to NULL.
9144         (do_undef, read_line_number): Don't worry about getting a POP token.
9145         (eval_if_expression): Set/reset parsing_if_directive around
9146         cpp_parse_expr. Don't clear only_seen_white.
9147         (skip_if_group): Remove output_conditionals logic.  Use
9148         skip_rest_of_line.
9149         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
9150         tokens under appropriate conditions.
9151         (cpp_unassert): Call do_unassert not do_assert.  Oops.
9152
9153         * cppexp.c (parse_defined): New function, break out of
9154         cpp_lex.
9155         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
9156         ourselves, with cpp_defined.
9157         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
9158
9159         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
9160         * gcc.dg/strpaste-2.c: New.
9161
9162 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
9163
9164         * fold-const.c (size_binop): Don't asert inputs are the same and
9165         have TYPE_IS_SIZETYPE set.
9166         (size_diffop): Likewise.
9167
9168 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
9169
9170         * dwarfout.c (output_block): Output abstract blocks even if they
9171         don't have TREE_ASM_WRITTEN set.
9172
9173         * calls.c (emit_library_call): Check for null REG.
9174
9175 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
9176
9177         * c-decl.c (current_function_decl): Move to toplev.c.
9178         (init_decl_processing): Don't add current_function_decl as a ggc
9179         root here.
9180         * dbxout.c (dbxout_symbol): Change return type to int.
9181         (dbxout_symbol_location, dbxout_syms): Likewise.
9182         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
9183         any locals. Use current_function_func_begin_label if set.
9184         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
9185         * dwarf2out.c (dwarf2out_begin_prologue): Set
9186         current_function_func_begin_label.
9187         * final.c (final_start_function): Reset it.
9188         * toplev.c (current_function_decl): Define it here.
9189         (current_function_func_begin_label): New variable.
9190         (main): Add both as ggc roots.
9191         * tree.h (current_function_func_begin_label): Declare.
9192
9193 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9194
9195         * gcse.c: Cleanups throughout: mostly white-space, but also
9196         some minor rearrangement of code.
9197
9198 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
9199
9200         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
9201         returns a PARALLEL.  Use emit_group_load and use_group_regs
9202         as needed.
9203         (emit_library_call_value): Similarly.
9204
9205         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
9206         * pa/quadlib.asm: Remove.
9207         * pa/quadlib.c: New file.
9208
9209         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
9210         * configure: Rebuilt.
9211
9212 2000-02-29  Philip Blundell  <pb@futuretv.com>
9213
9214         * config/arm/conix-elf.h: New file.
9215         * configure.in (arm*-*-conix*): New configuration.
9216         * configure: Regenerate.
9217
9218 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
9219
9220         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
9221         don't have TREE_ASM_WRITTEN set.
9222
9223 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9224
9225         * Eliminate DECL_FIELD_SIZE.
9226         * builtins.c (built_in_class_names, built_in_names): New variables.
9227         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
9228         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
9229         DECL_SIZE, not DECL_FIELD_SIZE.
9230         * print-tree.c (print_node): Remove code that prints extra blank
9231         lines in some cases.
9232         Properly handle inline and builtin function cases.
9233         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
9234         * tree.h (built_in_class_named, built_in_names): New declarations.
9235         (union tree_decl): Rename internal unions to u1 and u2 and change
9236         some of their components.
9237         Add new field built_in_class.
9238         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
9239         Reflect above changes.
9240         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
9241         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
9242         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
9243         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
9244
9245 2000-02-28  Dmitri Makarov  <dim@windriver.com>
9246
9247         * extend.texi: Document ARM's support for long/short calls.
9248
9249         * invoke.texi: Document ARM's -mlong-calls command line switch.
9250
9251         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
9252         (arm_encode_call_attribute): Add prototype.
9253         (arm_set_default_type_attribute): Add prototype.
9254         (arm_strip_name_encoding): Add prototype.
9255
9256         * config/arm/arm.c (arm_init_cumulative_args): replace
9257         initialisation og 'long_calls' field with initialisation of
9258         'call_cookie' field.
9259         (enum arm_pragma_enum): New enum.
9260         (arm_pragma_long_calls): New static variable.
9261         (arm_process_pragma): Also process "#pragma long_calls_off".
9262         (arm_valid_type_attribute_p): Accept short_call attribute.
9263         (arm_comp_type_attributes): Check long/short call attributes.
9264         (arm_encode_call_attribute):  New function:  Encode long_call
9265         or short_call attribute in function name.
9266         (arm_set_default_type_attributes): New function: Assign
9267         default attributes to newly defined type.
9268         (current_file_function_operand): New function: Return true if
9269         the symbol is a function which has already been compiled.
9270         (arm_is_longcall_p): New function: Return true if the
9271         indicated function should be called via a long call.
9272         (arm_get_strip_length): New function.  Returns number of
9273         prefix characters to be stripped from a function's name.
9274         (arm_strip_name_encoding): New function.  Strip prefix characters
9275         from a function's name.
9276
9277         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
9278         with 'call_cookie'.
9279         (SHORT_CALL_FAG_CHAR): Define.
9280         (LONG_CALL_FAG_CHAR): Define.
9281         (ENCODED_SHORT_CALL_ATTR_P): Define.
9282         (ENCODED_LONG_CALL_ATTR_P): Define.
9283         (ARM_NAME_ENCODING_LENGTHS): Define.
9284         (STRIP_NAME_ENCODING): Define.
9285         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
9286         (ARM_ENCODE_CALL_TYPE): Define.
9287         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
9288         (ARM_DECLARE_FUNCTION_SIZE): Define.
9289         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
9290
9291         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
9292         if a long call is needed.
9293         (call_value): Ditto.
9294         (call_symbol): Ditto.
9295
9296         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
9297         ARM_DECLARE_FUNCTION_SIZE.
9298
9299         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
9300         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
9301         (ARM_STRIP_NAME_ENCODING): Undefine.
9302         (STRIP_NAME_ENCODING): Undefine.
9303         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
9304         (ASM_DECLARE_FUNCTION_NAME): Ditto.
9305         (ASM_OUTPUT_COMMON): Ditto.
9306         (ASM_DECLARE_OBJECT_NAME): Ditto.
9307
9308         * config/arm/pe.c (arm_dllexport_name_p): Check for
9309         ARM_PE_FLAG_CHAR.
9310         (arm_dllimport_name_p): Ditto.
9311         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
9312         (arm_mark_dllimport): Ditto.
9313
9314 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9315
9316         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
9317
9318 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
9319
9320         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
9321
9322 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
9323
9324         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
9325         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
9326         NO_BUILTIN_WCHAR_TYPE is not defined.
9327         (CPP_WCHAR_TYPE): Delete.
9328         * cccp.c (main): Don't change wchar_type if cplusplus.
9329         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
9330
9331 2000-02-28  Nick Clifton  <nickc@cygnus.com>
9332
9333         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
9334
9335 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
9336
9337         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
9338         (ASM_WEAKEN_LABEL): Define.
9339
9340 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
9341
9342         * expr.c (store_constructor): Do not emit USE.
9343         * rtl.h (stupid_life_analysis): Remove.
9344
9345 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9346
9347         * function.c (number_blocks): Reset next_block_index based on
9348         what debugging format is used, not what is defined.
9349
9350         * lcm.c: Minor reformatting throughout.
9351         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
9352
9353         * toplev.c (rest_of_compilation): Account for time in
9354         optimize_mode_switching.
9355
9356         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
9357         if only marking labels.
9358
9359 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
9360
9361         * calls.c (expand_call): Attempt to combine stack adjustments with
9362         pending stack adjustments.
9363
9364 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9365
9366         * loop.c (reg_in_basic_block_p): Don't abort when falling through
9367         to the end of the function.
9368
9369 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
9370
9371         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
9372         blocks.
9373         * final.c (next_block_index): Remove.
9374         (max_block_depth): Likewise.
9375         (pending_blocks): Likewise.
9376         (init_final): Don't initialize them.
9377         (final_start_function): Don't set next_block_index.  Set up
9378         BLOCK_NUMBER.
9379         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
9380         * function.h (number_blocks): New function.
9381         * function.c (get_block_vector): New function.
9382         (identify_blocks): Use it.
9383         (reorder_blocks): Set NOTE_BLOCK.
9384         (number_blocks): New function.
9385         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
9386         * tree.h (BLOCK_NUMBER): New macro.
9387         (tree_block): Add block_num field.
9388         * dbxout.c (next_block_number): Remove.
9389         (dbxout_init): Don't set it.
9390         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
9391         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
9392         block numbers.
9393         * toplev.c (rest_of_compilation): Always call
9394         find_loop_tree_blocks.  Fix indentation.
9395         * dwarf2out.c (next_block_number): Remove.
9396         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
9397         to determine block numbers.
9398         (gen_inlined_subroutine_die): Likewise.
9399         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
9400         (decls_for_scope): Don't increment next_block_number.
9401         * dwarfout.c (next_block_number): Remove.
9402         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
9403         to determine block numbers.
9404         (output_inlined_subroutine_die): Likewise.
9405         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
9406         (output_decls_for_scope): Don't increment next_block_number.
9407         * sdbout.c (next_block_number): Remove.
9408         (sdbout_block): Use BLOCK_NUMBER.
9409         (sdbout_begin_block): Simplify.
9410         * xcoffout.c (next_block_number): Remove.
9411         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
9412         (xcoffout_begin_block): Don't set next_block_number.
9413         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
9414         next_block_number.
9415
9416 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9417
9418         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
9419         (expand_builtin_strcpy): Pass correct type to size_binop.
9420         (expand_builtin_strcmp): Likewise.
9421         Clean up conditional structure.
9422         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
9423         (complete_array_type): Don't use size_binop for MAXINDEX.
9424         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
9425         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
9426         (c_alignof): Use size_one_node.
9427         (build_unary_op): Pass arg of proper type to size_binop.
9428         (really_start_incremental_init, push_init_level): Use sizetype for
9429         constructor{,_bit,_unfilled}_index.
9430         (pop_init_label, output_init_element): Likewise.
9431         (output_pending_init_elements, process_init_element): Likewise.
9432         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
9433         * expr.c (store_expr): Use size_int.
9434         (store_constructor): Use proper types for size_binop args.
9435         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
9436         (expand_expr_unaligned): Likewise.
9437         (string_contant): Return object of sizetype.
9438         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
9439         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
9440         (ARGS_SIZE_TREE): Pass proper types to size_binop.
9441         * fold-const.c (int_const_binop): Refine when size_int is called.
9442         (fold_convert): Likewise.
9443         (size_int_wide): Rework to take KIND as arg, only take low order
9444         bits, handle new sizetype_tab datatype, and chain entries in
9445         size_table.
9446         (size_int_type_wide): New function.
9447         (size_binop): Validate types of arguments.
9448         (ssize_binop): Deleted.
9449         (size_diffop): New function.
9450         (extract_muldiv): Only fold division into multiplication for sizetypes.
9451         * function.c (assign_parms): Use size_diffop and make sure
9452         VAR field is of ssizetype; also pass proper type to size_binop.
9453         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
9454         (round_down): Deleted from here.
9455         * store-layout.c (sizetype_tab): Now an array.
9456         (sizetype_set, early_root_list): New variables.
9457         (variable_size): Use size_one_node.
9458         (round_up): Pass proper type to size_binop.
9459         (round_down): Moved to here and corrected as above.
9460         (layout_record): Pass proper arg types to size_binop.
9461         (layout_type): Likewise.
9462         If sizetype_set is zero, record the type just laid out.
9463         (make_unsigned_type): Don't call set_sizetype;
9464         (make_signed_type): Likewise; also, call fixup_signed_type.
9465         (initialize_sizetypes): New function.
9466         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
9467         set name of bitsizetype to "bit_size_type".
9468         Fix up type of sizes of all types made before call.
9469         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
9470         * tree.c (fix_sizetype): Deleted.
9471         (build_common_tree_nodes): Call initialize_sizetypes.
9472         (build_common_tree_nodes_2): Don't call fix_sizetype.
9473         * tree.h (TYPE_IS_SIZETYPE): New macro.
9474         (initialize_sizetype): New declaration.
9475         (enum size_type_kind): New type.
9476         (struct sizetype_tab): Deleted.
9477         (sizetype_tab): Now array; adjust sizetype macros.
9478         (size_diffop, size_int_type_wide): New functions.
9479         (size_int_wide): Change number of args and type; access macros changed.
9480         (ssize_int, sbitsize_int): New macros.
9481         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
9482         (ROUND_TYPE_SIZE_UNIT): New macro.
9483
9484 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
9485
9486         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
9487
9488 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9489
9490         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
9491         Mark as possibly unused.
9492
9493         * cse.c (cse_insn): Delete dead code involving tablejump.
9494         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
9495
9496         * Makefile.in (libcpp.a): Start by deleting it.
9497
9498 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9499
9500         * cpplib.h (enum file_change_code): Added rename_file.
9501         * cpplib.c (do_line): If a filename is given, set file_change to
9502         rename_file.
9503         (output_line_command): If file_change is rename_file, always
9504         output a # directive with the file name.
9505
9506         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
9507
9508 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
9509
9510         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
9511         when copying a PARM_DECL or RESULT_DECL.
9512
9513 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9514
9515         * fix-header.c (recognized_function): Also fix prototypes for
9516         functions taking "void".
9517
9518 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
9519
9520         * reload1.c (do_output_reload): Check reg_reloaded_valid before
9521         looking at reg_reloaded_contents.
9522
9523 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
9524
9525         * Makefile.in (STMP_FIXINC): New toggle.
9526         (LIBGCC2_DEPS): Delete all references.
9527         (stmp-headers): Delete target.  All references either deleted
9528         or changed to stmp-int-headers.
9529         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
9530         (LIBCPP_OBJS): Take out cppalloc.o.
9531         (cppalloc.o): Delete target.
9532         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
9533         (gen-protos, fix-header): Link with libiberty.a.
9534         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
9535         to empty.
9536
9537         * configure.in: Remove refs to strerror.
9538         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
9539         * system.h: Take out strerror stanza.
9540
9541         * cpperror.c (my_strerror): Delete function.
9542         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
9543         * cppmain.c (main): Call xmalloc_set_program_name first thing.
9544         * cppalloc.c: Delete file.
9545         * gen-protos.c: Don't provide xrealloc.
9546
9547         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
9548         xstrerror throughout.
9549
9550 2000-02-26  Bruce Korb  <bkorb@gnu.org>
9551
9552         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
9553         match for DOS headers, too.
9554         * fixinc/inclhack.sh,fixincl.x: Regenerate.
9555
9556 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
9557
9558         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
9559         is right for most ELF targets.
9560         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
9561         Let the default file use %U properly.
9562         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
9563         default.
9564
9565         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
9566         numbers.
9567
9568 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9569
9570         * toplev.c (documented_lang_options): Correct spelling error.
9571         (decode_d_option, decode_f_option, main): Likewise.
9572
9573         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
9574
9575         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
9576         to tell assembler it is permitted to expand large constants.
9577
9578 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
9579
9580         * protoize.c: (AUX_INFO_SUFFIX): New macro.
9581         (aux_info_suffix): Use.
9582         (SAVE_SUFFIX): New macro.
9583         (save_suffix): Use.
9584         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
9585         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
9586         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
9587
9588         * invoke.texi (Running Protoize): Update documentation.
9589
9590 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
9591
9592         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
9593
9594 2000-02-25  John Wehle  (john@feith.com)
9595
9596         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
9597
9598 2000-02-25  Anthony Green  <green@cygnus.com>
9599
9600         * toplev.c (rest_of_compilation): Rebuild jump labels if
9601         combine_instructions has created a new direct jump.
9602         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
9603         when appropriate.
9604         (combine_instructions): Call try_combine with new argument.
9605         Return non-null value when new direct jump instruction is created.
9606         * rtl.h: combine_instructions returns an int.
9607
9608 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
9609
9610         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
9611         jump when changing a computed jump into a jump to a known
9612         target.
9613
9614 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
9615
9616         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
9617         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
9618
9619         * i386.md (define_expand "clrstrsi"): Fix typo.
9620
9621 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
9622
9623         * rtl.texi: Fix typo.
9624
9625 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9626
9627         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
9628         UNITS_PER_WORD.  Change caller initial_elimination_offset.
9629         (rounded_frame_size): Take into account that argument pushed has
9630         changed.  Fix TARGET_ALIGN_DOUBLE problem.
9631
9632 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
9633
9634         * haifa-sched.c (schedule_block): Explain the real reason
9635         we delete REG_SAVE_NOTEs on the first insn of a block.
9636         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
9637
9638 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
9639
9640         * input.h (push_srcloc): New function.
9641         (pop_srcloc): Likewise.
9642         * toplev.c (push_srcloc): Define it.
9643         (pop_srcloc): Likewise.
9644
9645 2000-02-24  Richard Henderson  <rth@cygnus.com>
9646
9647         * flow.c (life_analysis): When collecting reg info, clear
9648         regs_ever_live.
9649
9650 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9651
9652         Fix bug exposed by reload.c no longer rounding the frame
9653         size to BIGGEST_ALIGNMENT:
9654         * sh.c (rounded_frame_size): New function.
9655         (sh_expand_prologue, sh_expand_epilogue): Use it.
9656         (initial_elimination_offset): Likewise.
9657
9658 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9659
9660         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
9661         * sh-protos.h (sh_need_epilogue): Declare.
9662         * sh.c (sh_need_epilogue_known): New static variable.
9663         (sh_need_epilogue): New function.
9664         (function_epilogue): Clear need_epilogue_known.
9665         * sh.md (return): Split into expander / insn pattern.
9666         Make the expander conditional on ! sh_need_epilogue ().
9667
9668 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
9669
9670         * machmode.h (get_mode_alignment): Declare.
9671         (GET_MODE_ALIGNMENT): Call it.
9672         * stor-layout.c (get_mode_alignment): New function. Make
9673         sure alignment is always power of 2.
9674
9675 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
9676
9677         * i386.h: Remove useless definition of "I386" and misleading
9678         comment above it.
9679
9680 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
9681
9682         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
9683         under which TREE_PERMANENT will be set.
9684         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
9685         build1): Use TREE_SET_PERMANENT.
9686         * print-tree.c (print_node): Don't report value of
9687         TREE_PERMANENT if ggc_p is true.
9688
9689         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
9690         decide whether to give a type a new alias set.
9691         * objc/objc-act.c (build_objc_string_object): Never copy the string.
9692         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
9693         of value of 'obstack'.
9694
9695
9696 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9697
9698         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
9699
9700 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9701
9702         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
9703         * cpplib.c (cpp_get_token): Produce them.
9704         * cppexp.c (cpp_lex): Handle them.
9705
9706 2000-02-23  Nick Clifton  <nickc@cygnus.com>
9707
9708         * config/arm/arm.c (arm_comp_type_attributes): Simply and
9709         comment tests on type attributes.
9710
9711 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9712
9713         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
9714         conform to documentation.
9715         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
9716         to check for special cases.
9717         * sh-protos.h (sh_loop_align): Declare.
9718         * sh.c (sh_loop_align): Define.
9719
9720 2000-02-22  Andrew Haley  <aph@cygnus.com>
9721
9722         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
9723         (SIZE_TYPE): Is 32 bits when using -mgp32.
9724         (PTRDIFF_TYPE): Ditto.
9725
9726 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9727
9728         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
9729
9730 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
9731
9732         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
9733         BIGGEST_FIELD_ALIGNMENT a constant.
9734
9735 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
9736
9737         * dwarf2out.c (output_line_info): Put the marker for the end of
9738         the line number info at the actual end.
9739         (gen_struct_or_union_type_die): Use decl_function_context
9740         to check for local classes.
9741         * dwarfout.c (output_type): Likewise.
9742
9743 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
9744
9745         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
9746         for arguments with a mode, but no type.
9747         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
9748         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
9749         * pa/long_double.h: New file.
9750         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
9751         both have 128bit wide long doubles.
9752         * configure: Rebuilt.
9753
9754 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9755
9756         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
9757
9758         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
9759         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
9760         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
9761
9762         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
9763
9764         * integrate.c (compare_blocks, find_block): Likewise.
9765
9766         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
9767
9768         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
9769
9770         * stmt.c (stmt_status, set_file_and_line_for_stmt,
9771         expand_asm_operands): Likewise.
9772
9773 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
9774
9775         * predict.c (estimate_probability): Added the pointer heuristic to
9776         the collection of static branch predictors.
9777
9778 2000-02-21  Catherine Moore  <clm@cygnus.com>
9779
9780         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
9781         * invoke.texi (-mfix7000): Document.
9782
9783 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
9784
9785         * diagnostic.c (init_output_buffer): Make it possible to output at
9786         least 32 characters if we're given a too long prefix.
9787
9788 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
9789
9790         * varasm.c (initializer_constant_valid_p): Call
9791         lang_expand_constant to simplify the constant.
9792
9793 2000-02-20  Bruce Korb  <bkorb@gnu.org>
9794
9795         * fixinc/inclhack.def(stdio_va_list):
9796         typedef needs to be disabled.
9797         * fixinc/inclhack.sh: regen
9798         * fixinc/fixincl.x: regen
9799
9800 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
9801
9802         * print-rtl.c (print_rtx): Don't print addresses when
9803         flag_dump_unnumbered.
9804
9805 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9806
9807         * sparc.c (sparc_output_scratch_registers): Mark parameter with
9808         ATTRIBUTE_UNUSED.
9809         (sparc_va_arg, sparc_flat_output_function_prologue,
9810         sparc_flat_output_function_epilogue): Cast value to unsigned in
9811         comparison.
9812         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
9813
9814         * sparc.md: Add default case in switch.
9815
9816 2000-02-19  Richard Henderson  <rth@cygnus.com>
9817
9818         * c-typeck.c (add_pending_init): Don't abort for multiple
9819         fields at the same offset.
9820         (pending_init_member): Test the correct member.
9821
9822 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9823
9824         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
9825         instead of SImode.
9826         (start_catch_handler) : Same.
9827
9828 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
9829
9830         * Makefile.in: Have flow.o depend on $(EXPR_H)
9831
9832 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9833
9834         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
9835         * c-decl.c (duplicate_decls, finish_enum): Likewise.
9836         (finish_decl): Remove -Wlarger-than code from here.
9837         * flags.h (id_clash_len): Now int.
9838         (larger_than_size): Now HOST_WIDE_INT.
9839         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
9840         Clean up checking to see if in table.
9841         (make_bit_field_ref): Remove extra parm to bitsize_int.
9842         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
9843         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
9844         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
9845         and for computing size of decl.
9846         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
9847         Move -Wlarger-than code to here.
9848         (layout_record): Remove extra arg to bitsize_int.
9849         Set TYPE_BINFO_SIZE_UNIT.
9850         (layout_union): Remove extra arg to bitsize_int.
9851         Use proper type for size of QUAL_UNION.
9852         (layout_type): Remove extra arg to bitsize_int.
9853         * toplev.c (id_clash_len): Now int.
9854         (larger_than_size): Now HOST_WIDE_INT.
9855         (decode_W_option): Clean up id-clash and larger-than- cases.
9856         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
9857         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
9858         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
9859         (struct tree_decl): New field size_unit.
9860         (size_int_wide): No HIGH operand; NUMBER is now signed.
9861         (size_int_2): Deleted.
9862         (size_int, bitsize_int): Don't use it and rework args.
9863         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
9864
9865 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
9866
9867         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
9868
9869 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
9870
9871         * invoke.texi (Warning Options): Add an explanation of why
9872         you might want the -Wfloat-equal flag.
9873
9874 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9875
9876         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
9877         * cppinit.c (new_pending_define): Add cast to avoid warning.
9878         * expmed.c (extract_bit_field): Likewise.
9879         * flow.c (enum reorder_skip_type): New type.
9880         (skip_insns_between_blcok): New it.
9881         Rework to avoid warning about possibly undefined variable.
9882         * function.c (assign_parms): Make thisparm_boundary unsigned.
9883         * genrecog.c (write_switch): Cast XWINT result to int.
9884         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
9885         * mips-tfile.c (init_file): Make two versions of FDR intializer:
9886         one for MIPS and one for Alpha.
9887         (get_tag, copy_object): Add casts to avoid warnings.
9888         * optabs.c (init_one_libfunc): Cast NAME to (char *).
9889         * reload.c (find_reloads): Make TYPE enum reload_type.
9890         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
9891         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
9892         * varasm.c (compare_constant_1): Add cast to avoid warning.
9893         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
9894         to (char *).
9895         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
9896         Cast switch operand of size to int.
9897         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
9898         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
9899         in unhandled case.
9900
9901 2000-02-18  Nick Clifton  <nickc@cygnus.com>
9902
9903         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
9904         anything for an alignment of zero.
9905
9906         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
9907         anything for an alignment of zero.
9908
9909 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
9910
9911         * gcc.texi (Bug Reporting): Refer to bugs.html.
9912         (Bug Lists): Likewise.
9913         * system.h (GCCBUGURL): New preprocessor define.
9914         * rtl.c (fancy_abort): Use it.
9915         * gcc.c (main): Likewise.
9916
9917 2000-02-18  Richard Henderson  <rth@cygnus.com>
9918
9919         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
9920         (life_analysis_1): Subsume into ...
9921         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
9922         Use update_life_info for the relaxation.
9923         (update_life_info): Update REG_BASIC_BLOCK for registers live on
9924         entry and regs_live_at_setjmp.
9925         (set_noop_p): Simplify.
9926         (notice_stack_pointer_modification_1): Renamed from s/_1//.
9927         (record_volatile_insns): Split into ...
9928         (delete_noop_moves): ... here,
9929         (notice_stack_pointer_modification): ... here,
9930         (insn_dead_p): ... and here.
9931         (propagate_block): Don't query INSN_VOLATILE.
9932         (mark_used_regs): Mind !PROP_REG_INFO.
9933         * toplev.c (rest_of_compilation): Call mark_constant_function here,
9934         not in life_analysis.
9935
9936 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
9937
9938         * loop.c (canonicalize_condition): New function,
9939         broken out of get_condition.
9940         (get_condition): Use it.
9941         * expr.h (canonicalize_condition): Prototype it.
9942
9943         * tree.h (tree_int_cst_msb): Declare.
9944         * tree.c (tree_int_cst_msb): New function.
9945
9946 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
9947
9948         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
9949         isn't set.
9950
9951         * invoke.texi (-fmessage-length=n): Document.
9952
9953 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
9954
9955         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
9956
9957 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
9958
9959         * function.c (thread_prologue_and_epilogue_insns): Put a line note
9960         after the prologue.
9961
9962 2000-02-17  Nick Clifton  <nickc@cygnus.com>
9963
9964         * config/arm/thumb.c: Replace includes of system headers with
9965         #include "system.h".
9966
9967 2000-02-16  Richard Henderson  <rth@cygnus.com>
9968
9969         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
9970         Add crtbeginS.o and crtendS.o.
9971         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
9972         (ENDFILE_SPEC): Use crtendS.o.
9973         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
9974
9975         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
9976         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
9977         shared and present.
9978         (__dso_handle): New variable.
9979         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
9980         bias to __CTOR_END__.
9981
9982 2000-02-16  Richard Henderson  <rth@cygnus.com>
9983
9984         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
9985
9986 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
9987
9988         * longlong.h (__clz_tab): Declare as static to match definition.
9989
9990 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
9991
9992         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
9993         (XREF_FILE_NAME): Define.
9994
9995         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
9996         (EH_FRAME_SECTION_ASM_OP): Define.
9997         (IDENT_ASM_OP): Define.
9998         (TEXT_SECTION_ASM_OP): Define.
9999         (CPP_SPEC): Define.
10000         (CTORS_SECTION_ASM_OP): Define.
10001         (CTOR_SECTION_FUNCTION): Use it.
10002         (DTORS_SECTION_ASM_OP): Define.
10003         (DTOR_SECTION_FUNCTION): Use it.
10004
10005 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
10006
10007         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
10008         NOTE_BASIC_BLOCK.
10009
10010         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
10011         debug_bb_n): New functions.
10012         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
10013         * basic-block.h: Prototype new functions.
10014
10015 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
10016
10017         * configure.in: Add support for avr target.
10018         * configure: Rebuilt.
10019
10020         * invoke.texi: Add AVR invocation docs.
10021         * install.texi: Add information about AVR.
10022         * md.texi: Add AVR constraint letters description.
10023         * extend.texi: Add description for AVR specific attributes.
10024
10025 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
10026
10027         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
10028
10029 2000-02-16  Nick Clifton  <nickc@cygnus.com>
10030
10031         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
10032         (make_insn_raw): Move RTL check here.
10033
10034 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10035
10036         * version.c: Include gansidecl.h and version.h.
10037
10038         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
10039
10040         * configure.in (gcc_version): When setting, narrow search to
10041         lines containing `version_string'.
10042
10043         * Makefile.in (mainversion): Likewise.
10044         (GCC_H): New variable.
10045         (gcc.h): Delete target.
10046         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
10047         (version.o): Depend on version.h.
10048         (dbxout.o): Don't depend on gcc.h.
10049
10050 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10051                           Michael Meissner  <meissner@cygnus.com>
10052
10053         * md.texi (Simple Constraints): Add item about whitespace.
10054         * genoutput.c (strip_whitespace): New.
10055         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
10056         strip_whitespace for constraints.
10057         Test pointer using NULL, not 0.
10058
10059 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10060
10061         * cpplib.c (do_line): Pedwarn for #line > 32767.
10062
10063         * c-lex.c (readescape): Warn about '\x', but do not reject it.
10064
10065 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
10066
10067         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
10068         to default cpp spec.
10069         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
10070         * cpp.texi: Document __GNUC_PATCHLEVEL__.
10071         * cpp.1: Likewise.
10072
10073         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
10074         default spec.
10075
10076 2000-02-15  Denis Chertykov  <denisc@overta.ru>
10077
10078         * configure.in: Add support for avr target.
10079
10080 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10081
10082         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
10083         (sh_addr_diff_vec_mode): Don't declare.
10084         * sh.c (sh_addr_diff_vec_mode): Delete.
10085
10086 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10087
10088         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
10089
10090 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10091
10092         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
10093         (smulsi3_highpart_i): Name.
10094         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
10095         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
10096         (smulsi3_highpart, umulsi3_highpart): Likewise.
10097
10098         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
10099         correctly independent of endianness.
10100         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
10101         confuse the optimizers.
10102         (mulsidi3+1, umulsidi3+1): New define_split.
10103
10104 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
10105
10106         * config/sh/sh.md: Guard insn splits against illegal registers.
10107         * config/sh/sh.h: Correct comment about macros.
10108
10109 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10110                           Andrew MacLeod  <amacleod@cygnus.com>
10111
10112         * Makefile.in (lcm.o): Depend on insn-attr.h.
10113         * basic-block.h (optimize_mode_switching): Declare.
10114         * lcm.c (tm_p.h, insn-attr.h): #include.
10115         (seginfo, bb_info): New structs.
10116         (antic, transp, comp, delete, insert) : New file-scope static variables.
10117         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
10118         (reg_becomes_live, optimize_mode_switching): Likewise.
10119         * tm.texi: Add description of mode switching macros.
10120         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
10121
10122         * sh-protos.h (remove_dead_before_cse): Remove prototype.
10123         (fldi_ok, fpscr_set_from_mem): New prototypes.
10124         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
10125         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
10126         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
10127         (sh_flag_remove_dead_before_cse): Remove declaration.
10128         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
10129         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
10130         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
10131         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
10132         (barrier_align): Allow for JUMP_INSNS containing a parallel.
10133         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
10134         (fldi_ok): New function.
10135         (get_fpscr_rtx): Add fpscr_rtx as GC root.
10136         (emit_sf_insn): Only generate fpu switches when optimize < 1.
10137         (emit_df_insn): Likewise.
10138         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
10139         (sh_flag_remove_dead_before_cse): Delete.
10140         (get_free_reg, fpscr_set_from_mem): New functions.
10141         * sh.md (movdf, movsf): Remove no_new_pseudos code.
10142         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
10143
10144 2000-02-15  Loren Rittle  <ljrittle@acm.org>
10145
10146         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
10147
10148 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10149
10150         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
10151         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
10152
10153         * cccp.c: Include version.h and/or don't declare `version_string'.
10154         * collect2.c: Likewise.
10155         * alpha.c: Likewise.
10156         * arm/aof.h: Likewise.
10157         * arm/coff.h: Likewise.
10158         * arm/elf.h: Likewise.
10159         * arm/pe.h: Likewise.
10160         * arm/tcoff.h: Likewise.
10161         * arm/telf.h: Likewise.
10162         * arm/tpe.h: Likewise.
10163         * arm/vxarm.h: Likewise.
10164         * convex/convex.c: Likewise.
10165         * i386/dgux.c: Likewise.
10166         * i386/sun386.h: Likewise.
10167         * m88k/m88k.c: Likewise.
10168         * mcore/mcore-pe.h: Likewise.
10169         * mips/mips.h: Likewise.
10170         * romp/romp.h: Likewise.
10171         * sh/sh.c: Likewise.
10172         * cpphash.c: Likewise.
10173         * cppinit.c: Likewise.
10174         * dwarf2out.c: Likewise.
10175         * dwarfout.c: Likewise.
10176         * gcc.c: Likewise.
10177         * gcc.h: Likewise.
10178         * mips-tfile.c: Likewise.
10179         * protoize.c: Likewise.
10180         * toplev.c: Likewise.
10181         * tree.h: Likewise.
10182
10183         * version.c (version_string): Constify a char*.
10184
10185         * version.h: New file.
10186
10187 2000-02-14  Nick Clifton  <nickc@cygnus.com>
10188
10189         * configure.in: Add mcore-elf and mcore-pe targets.
10190         * configure: Regenerate.
10191
10192         * NEWS: Add note that MCore port has been contributed.
10193
10194         * invoke.texi: Document command line switches for MCore port.
10195         * install.texi: Add MCore to list of supported targets.
10196
10197 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
10198
10199         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
10200         then we will need to import the frame handling functions.
10201         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
10202         to import the frames themselves.
10203
10204 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
10205                           Jason Eckhardt  <jle@cygnus.com>
10206
10207         * basic_block.h: Added prototype for reorder_basic_blocks.
10208         * toplev.c: Changes to add -freorder-blocks and graph dump after
10209         block reordering is done.
10210         * flow.c (reorder_block_def): New structure for use during block
10211         reordering.
10212         (REORDER_BLOCK_*): New macros to access members of above structure.
10213         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
10214         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
10215         functions for block reordering.
10216
10217 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10218
10219         * gcc.texi (Passes): Fix typo.
10220         * md.texi (Standard Names): Ditto.
10221         * tm.texi (Storage Layout): Ditto.
10222
10223 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
10224
10225         * cpplib.c (do_define): Only free the old definition if it
10226         actually had one.
10227
10228 2000-02-13   Neil Booth  <NeilB@earthling.net>
10229
10230         * cppfiles.c (read_and_prescan): When emitting deferred
10231         newlines, test speccase[] again instead of checking each
10232         possible whitespace character in turn.  When we encounter \r,
10233         look behind for \n first, then ahead.
10234
10235 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
10236
10237         * cse.c (cse_altered): New internal flag.
10238         (cse_insn): Set it if we changed an insn.
10239         (cse_main): Clear cse_altered before each basic block.
10240         Only garbage collect if cse_altered is true afterward.
10241
10242 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10243
10244         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
10245
10246 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
10247
10248         * combine.c (simplify_comparison): Fix typo.
10249
10250 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
10251
10252         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
10253         consistently.
10254
10255 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10256
10257         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
10258         previously inserted node instead of root node.  Caller changed.
10259
10260 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10261
10262         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
10263
10264 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10265
10266         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
10267         __dereg_frame_dtor): Add prototype argument.
10268
10269         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
10270
10271         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
10272
10273         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
10274
10275         * gthr-vxworks.h (__gthread_once): Likewise.
10276
10277         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
10278
10279 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
10280
10281         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
10282         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
10283         stack pointer in functions w/o saved registers, output LEAVE more often
10284         on TARGET_USE_LEAVE machines.
10285
10286 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
10287
10288         * config/arm/arm.c (arm_init_cumulative_args); New function:
10289         Initlaise the CUMULATIE_ARGS strcuture for a function
10290         defintion.
10291         (arm_function_arg): New function: Determine where to place a
10292         function's argument.  Also handles deciding the function's
10293         call cookie.
10294         (current_file_function_operand): New function: Return true if
10295         the symbol is a function which has already been compiled.
10296         (arm_is_long_call_p): New function: Return true if the
10297         indicated function should be called via a long call.
10298         (arm_valid_type_attribute_p): New function: Return true if the
10299         attribute is a valid, arm specific, attribute.
10300         (arm_comp_type_attribute): New function: Return true if the
10301         two types have compatable, arm specific, attributes.
10302
10303         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
10304         structure.
10305         (FUNCTION_ARG): Redefine to call arm_function_arg.
10306         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
10307         structure field.
10308         (INIT_CUMULATIVE_ARGS): Redefine to call
10309         arm_init_cumulative_args.
10310         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
10311         field.
10312         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
10313         field.
10314         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
10315         functions.
10316         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
10317         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
10318         (COMP_TYPE_ATTRIBUTES): Define.
10319
10320         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
10321         if a long call is needed.
10322         (call_value): Call arm_is_long_call_p to decide if a long call
10323         is needed.
10324         (call_symbol): Call arm_is_long_call_p to decide if a long call
10325         is needed.
10326
10327         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
10328
10329 2000-02-11  Denis Chertykov  <denisc@overta.ru>
10330
10331         * README.AVR: New file with information about the avr ports.
10332         * config/avr: New directory with avr port files.
10333
10334 2000-02-11  Andreas Jaeger  <aj@suse.de>
10335
10336         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
10337
10338 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
10339
10340         * cpphash.c: Fix formatting, update commentary.
10341         (dump_definition): Take three separate arguments instead of a
10342         MACRODEF structure argument.
10343         * cpphash.h: Update prototype of dump_definition.
10344         * cppinit.c (cpp_finish): Update call of dump_definition.
10345
10346         * cpplib.c (do_define): Always create new hash entry with
10347         T_MACRO type.  Remove redundant check for redefinition of
10348         poisoned identifier.  Update call of dump_definition.
10349         (do_undef): Don't call check_macro_name.  Rename sym_length to
10350         len.
10351         (do_error, do_warning): Don't use copy_rest_of_line or
10352         SKIP_WHITE_SPACE.
10353         (do_warning): Don't use pedwarn for the actual warning,
10354         only the notice about its not being in the standard.  (Fixes
10355         bug with #warning in system headers.)
10356         (do_ident): Stricter argument checking - accept only a single
10357         string after #ident.  Also, macro-expand the line.
10358         (do_xifdef): Use cpp_defined.  De-obfuscate.
10359
10360         (do_pragma): Split out specific pragma handling to separate
10361         functions.  Use get_directive_token.  Update commentary.  Do
10362         not pass on #pragma once or #pragma poison to the front end.
10363         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
10364         do_pragma_default): New.
10365
10366 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
10367
10368         * jump.c (jump_optimize_1): The first operand in a relational
10369         can be a CONST_INT.
10370         * optabs.c (emit_conditional_move): Handle relationals which
10371         have a known true/false result.
10372
10373 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
10374
10375         * function.c (thread_prologue_and_epilogue_insns): Don't insert
10376         a RETURN insn into a block which already ends with a jump.
10377
10378 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
10379
10380         * haifa-sched.c (BUF_LEN): Increase a lot.
10381
10382 2000-02-11  Nick Clifton  <nickc@cygnus.com>
10383
10384         * configure.in: Add tm_p_file specification for thumb targets.
10385         * configure: Regenerate.
10386
10387         * config/arm/thumb-protos.h: New file: Prototypes for exported
10388         functions defined in thumb.c.
10389
10390 2000-02-11  Robert Lipe  <robertl@sco.com>
10391
10392         * Makefile.in (bootstrap-lean): Remove additional files.
10393         (bootstrap2-lean): Likewise.
10394         (VOL_FILES): List of files for above.
10395
10396 2000-02-11  Nathan Sidwell  <nathan@acm.org>
10397
10398         * cpphash.c (special_symbol): Remove spurious argument to
10399         cpp_lookup.
10400
10401 2000-02-11  Joel Sherrill (joel@OARcorp.com>
10402
10403         * configure.in: (i*86-*-rtems*): Swapped elf and coff
10404         stanzas.
10405         * configure: Rebuilt.
10406
10407 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
10408
10409         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
10410
10411 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
10412
10413         * pa.c, pa.h: Remove trigraph sequences within comments.
10414
10415 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
10416
10417         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
10418
10419 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
10420
10421         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
10422
10423 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10424
10425         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
10426
10427 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10428
10429         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
10430         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
10431         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10432         (ASM_FILE_END): Use c4x_file_end.
10433         * config/c4x/c4x.c (c4x_global_label): New function.
10434         (c4x_external_ref, c4x_file_end): Likewise.
10435
10436         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
10437         (c4x_external_ref, c4x_end_file): Likewise.
10438
10439 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
10440
10441         * cppexp.c: Don't include cpphash.h.
10442         (parse_charconst, cpp_lex): Use cpp_defined.
10443         (cpp_lex): Use get_directive_token throughout.  Remove
10444         unnecessary cases from switch.  Move assertion-handling code
10445         down to OTHER case.
10446         (cpp_parse_expr): If we see '+' or '-', check the context to
10447         determine if they are unary or binary operators.  Streamline
10448         the jumps a bit.  Do not call skip_rest_of_line.
10449
10450         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
10451         static.  Export get_directive_token.  Update commentary.
10452         (cpp_defined): New function.
10453         (do_define): Remove reference to T_PCSTRING.  Call
10454         free_definition to release memory for old definition, when
10455         redefining a macro.
10456         (eval_if_expression): Set only_seen_white to 0 before calling
10457         cpp_parse_expr.  Call skip_rest_of_line after it returns.
10458         (cpp_read_check_assertion): Don't preserve a pointer into the
10459         token buffer across a call to cpp_get_token.
10460
10461         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
10462         * cppfiles.c (redundant_include_p): Use cpp_defined.
10463         * cpphash.c (free_definition): New function.
10464         (delete_macro): Use it.  Update commentary.
10465         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
10466         free_definition.
10467         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
10468         from enum node_type.  Prototype cpp_defined and get_directive_token.
10469         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
10470
10471         * fix-header.c (check_macro_names): Use cpp_defined.
10472         (read_scan_file): Set inhibit_warnings and inhibit_errors in
10473         the options structure.
10474
10475 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10476
10477         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
10478
10479 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
10480
10481         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
10482         rather than die->die_tag.
10483
10484 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10485
10486         * combine.c (make_extraction, force_to_mode): Avoid warning on
10487         mixed-signedness conditionals.
10488         (make_field_assignment, nonzero_bits): Likewise.
10489         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
10490         (store_split_bit_field, extract_split_bit_field): Likewise.
10491         (extract_fixed_bit_field, store_bit_field,
10492         * expr.c: Change alignment to be unsigned everywhere.
10493         (move_by_pieces, store_constructor_field, store_constructor):
10494         Alignment parm is unsigned.
10495         (emit_block_move, emit_group_load, emit_group_store): Likewise.
10496         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
10497         (do_compare_rtx_and_jump): Likewise.
10498         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
10499         Compare align with GET_MODE_ALIGNMENT.
10500         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
10501         (get_inner_reference): Likewise.
10502         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
10503         (expand_assignment): Local vars for alignment now unsigned.
10504         (store_constructor, store_field, expand_expr, do_jump): Likewise.
10505         (do_compare_and_jump): Likewise.
10506         (store_field): Call new function expr_align.
10507         * expr.h (emit_block_move, emit_group_load, emit_group_store):
10508         Alignment arg now unsigned.
10509         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
10510         (do_compare_rtx_and_jump, store_bit_field): Likewise.
10511         (extract_bit_field): Likewise.
10512         * fold-const.c (add_double): Add cast to eliminate signedness warning.
10513         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
10514         (get_best_mode): Alignment arg is unsigned.
10515         * rtl.h (move_by_pieces): Likewise.
10516         * store-layout.c (maximum_field_alignment, set_alignment):
10517         Now unsigned.
10518         (layout_decl): Alignment arg is now unsigned.
10519         Remove unneeded casts.
10520         (layout_record, layout_union, layout_type): Remove unneeded casts.
10521         Local alignment variables now unsigned.
10522         (get_best_mode): Alignment arg now unsigned.
10523         * tree.c (expr_align): New function.
10524         * tree.h (expr_align): Likewise.
10525         (maximum_field_alignment, set_alignment): Now unsigned.
10526         (get_inner_reference): Alignment argument is now pointer to unsigned.
10527         * varasm.c (assemble_variable): Add cast to eliminate warning.
10528
10529 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
10530
10531         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
10532         then store directly into op0.
10533
10534         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
10535         the CALL_INSN, and emit the note immediately after it.
10536
10537 2000-02-10  Nick Clifton  <nickc@cygnus.com>
10538
10539         * config/arm/thumb.md (epilogue): Include a (return) in the
10540         generated insn, and emit it using emit_jump_insn not
10541         emit_insn.
10542
10543 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
10544
10545         * function.c (assign_temp): Change zero-sized arrays to size 1.
10546         * integrate.c (expand_inline_function): Do not update
10547         stack_alignment_needed
10548         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
10549         add some sanity checking, remove optimization for function with
10550         zero frame size.
10551
10552 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10553
10554         * flow.c (mark_regs_live_at_end): Delete unused variables.
10555
10556         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
10557
10558         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
10559         in macro FRAME_GROWS_DOWNWARD.
10560
10561         * stmt.c (expand_end_bindings): Delete unused variable.
10562
10563         * unroll.c (iteration_info): Mark parameter `loop' with
10564         ATTRIBUTE_UNUSED.
10565
10566 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10567
10568         * fixinc/server.c (load_data): Return NULL if the marker line is
10569         not found.
10570         (run_shell): If load_data returns NULL, retry the command once, in
10571         a new shell.
10572
10573         * configure: Rebuilt.
10574
10575 2000-02-09  Bruce Korb  <bkorb@gnu.org>
10576
10577         * gcc/fixincludes:  ** DELETED **
10578         * gcc/fixcpp:  ** DELETED **
10579         * gcc/fixinc-nt.sed:  ** DELETED **
10580         * gcc/just-fixinc:  ** DELETED **
10581         * gcc/Makefile.in:  Removed out-dated commentary
10582         * gcc/configure.in: Removed fast-fixincludes disablement.
10583         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
10584
10585 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
10586         * function.c (thread_prologue_and_epilogue_insns): Uncomment
10587         last change.
10588
10589 2000-02-09  Richard Henderson  <rth@cygnus.com>
10590
10591         * jump.c (delete_insn): Don't delete user labels at -O0.
10592
10593 2000-02-09  Robert Lipe  <robertl@sco.com>
10594
10595         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
10596         Don't link with HOST_LIBS.
10597
10598 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
10599
10600         * configure.in: Correct --help text for --with-dwarf2.
10601         Put tm-dwarf2.h after other tm files, if it's requested.
10602         * configure: Regenerate.
10603         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
10604         defining it.
10605
10606 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
10607
10608         * cpplib.h: Provide HASHNODE typedef and forward decl of
10609         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
10610         DEFINITION, struct hashnode, struct macrodef, struct
10611         definition, scan_decls prototype, default defn of
10612         INCLUDE_LEN_FUDGE moved elsewhere.
10613
10614         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
10615         definition, and struct hashnode moved here. Remove the unused
10616         'predefined' field from struct definition.  Replace the 'args'
10617         union with its sole member.  All users updated (cpphash.c).
10618         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
10619         multiple include guard.
10620
10621         * cpphash.c (hashf): Make static; use better algorithm; drop
10622         HASHSIZE parameter; return an unsigned int.
10623         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
10624         used. Calculate HASHSIZE modulus here.
10625         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
10626         here.
10627         (create_definition): Drop PREDEFINITION parameter.
10628         * cpplib.c (do_define): Don't calculate a hash value here.
10629         Don't pass (keyword == NULL) to create_definition.
10630
10631         * scan.h: Prototype scan_decls here.
10632         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
10633         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
10634         callers of cpp_lookup and cpp_install updated.
10635
10636         * cpphash.c (macarg): Hoist all the flag diddling out of the
10637         function...
10638         (macroexpand): ... and out of the loop that calls macarg.
10639         Skip over the initial paren before macro arguments with
10640         cpp_get_non_space_token; point may be some distance before
10641         that paren.  Abort if it's not there.
10642
10643         * cpplib.c (parse_clear_mark): Delete function.
10644         (parse_set_mark, parse_goto_mark): Make static.
10645         (ACTIVE_MARK_P): New macro.
10646         (skip_block_comment, skip_line_comment): Do not bump the line
10647         if ACTIVE_MARK_P is true.
10648         (cpp_pop_buffer): The buffer to be popped may not have an
10649         active mark.
10650         (cpp_get_token): When looking for the initial paren before
10651         macro arguments, only set a mark in a file buffer, Always
10652         return to that mark before proceeding to call macroexpand or
10653         return a NAME token.
10654
10655         * cpplib.h: Remove prototypes of parse_set_mark,
10656         parse_clear_mark, parse_goto_mark.
10657         (struct cpp_options): Rename 'put_out_comments' to
10658         'discard_comments' and invert its sense.
10659         * cppinit.c, cpphash.c, cpplib.c: All users of
10660         put_out_comments changed to use discard_comments, with
10661         opposite sense.
10662
10663 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
10664
10665         * function.c (thread_prologue_and_epilogue_insns): Don't delete
10666         the edge from a block that both jumps and falls through to the
10667         fallthru block.
10668
10669 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
10670
10671         * config/arm/arm.md (movsi): In PIC mode, make sure that a
10672         constant source address is legitimate.
10673
10674 2000-02-09  Philip Blundell  <pb@futuretv.com>
10675
10676         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
10677         correctly.
10678
10679         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
10680         generating PIC.
10681         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
10682
10683 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
10684
10685         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
10686         ends with a newline and a NUL.  Don't be so clever manipulating
10687         strings.
10688
10689 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
10690
10691         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
10692         not to BIGGEST_ALIGNMENT.
10693
10694 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
10695
10696         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
10697         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
10698         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
10699         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
10700         * frame.c (execute_cfa_insn): Handle
10701         DW_CFA_GNU_negative_offset_extended.
10702
10703 2000-02-08  Richard Henderson  <rth@cygnus.com>
10704
10705         * flow.c (tidy_fallthru_edges): Split out from ...
10706         (delete_unreachable_blocks): ... here.
10707         (find_basic_blocks): Use it.
10708
10709 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10710
10711         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
10712
10713 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
10714
10715         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
10716         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
10717         (fix-header.o): Don't depend on cpphash.h.
10718
10719         * scan.c (hashstr): New function.
10720         * scan.h: Prototype it.
10721         * fix-header.c: Don't include cpphash.h.  Use hashstr.
10722         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
10723         hashstr.  Report hash table statistics.  Add private
10724         definition of xrealloc.
10725
10726 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10727
10728         * i386.h (TARGET_SWITCHES): Fix typo in option name.
10729
10730 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
10731
10732         * function.c (thread_prologue_and_epilogue_insns): Don't replace
10733         jumps with returns unless they are jumps to the fallthru block.
10734
10735 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
10736
10737         * i386.md (addqi3_cc): Fix contraints.
10738
10739 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10740
10741         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
10742
10743 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
10744
10745         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
10746         carriage return after a macro name.
10747
10748 2000-02-07  Fred Fish  <fnf@be.com>
10749
10750         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
10751         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
10752
10753 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
10754
10755         * cppfiles.c (deps_output): Count spacers in deps_column.
10756
10757 2000-02-07  Neil Booth  <NeilB@earthling.net>
10758
10759         * cppinit.c (initialize_dependency_output): If there is no
10760         suffix, don't try to look for known suffixes.  Use strrchr.
10761         (cpp_start_read): Remove duplicate initialization.
10762
10763 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
10764
10765         * calls.c (compute_argument_block_size): New argument
10766         preferred_stack_boundary.
10767         (expand_call): update cfun->preferred_stack_boundary, update call of
10768         compute_argument_block_size
10769         (emit_library_call): Increate cfun->preferred_stack_boundary
10770         to PREFERRED_STACK_BOUNDARY
10771         (emit_library_call_value): Likewise.
10772         * explow.c (allocate_dynamic_stack_spave): Likewise.
10773         * function.c (prepare_function_start): Set
10774         cfun->preferred_stack_boundary
10775         * function.h (struct function): Add preferred_stack_boundary field.
10776         * integrate.c (expand_inline_function): Update
10777         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
10778         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
10779         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
10780
10781 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
10782
10783         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
10784         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
10785         cpp_pedwarn, cpp_pedwarn_with_line,
10786         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
10787         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
10788         v_cpp_error_with_line, v_cpp_warning_with_line,
10789         cpp_message_from_errno, cpp_perror_with_name): Delete.
10790
10791         * cpperror.c (cpp_print_containing_files): Take starting
10792         buffer as argument.
10793         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
10794         (v_cpp_message): Now called directly by all entry points.
10795         Remove -1 case.
10796         (cpp_pfatal_with_name, cpp_message): Delete.
10797         (cpp_notice_from_errno, cpp_ice): New functions.
10798         (cpp_notice): Is now for reporting error conditions, just
10799         without an associated file.
10800         (cpp_error, cpp_error_with_line): Don't do anything if
10801         opts->inhibit_errors is on.
10802         (cpp_pedwarn_with_file_and_line): Take column argument also.
10803
10804         * cpplib.h: Update prototypes of exported functions.
10805         (struct cpp_options): Add inhibit_errors.
10806
10807         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
10808         non-error messages.  Include intl.h.
10809
10810         * cppinit.c, cppmain.c: Likewise.  Also, use
10811         cpp_notice_from_errno instead of cpp_perror_with_name or
10812         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
10813
10814         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
10815         report internal errors.
10816
10817         * cpplib.c (do_define): Switch bcopy to memcpy.
10818         Give cpp_pedwarn_with_file_and_line a dummy column argument.
10819
10820         * cpplib.c (copy_rest_of_line): Revert previous change: don't
10821         bail out early if we hit a line comment.
10822
10823 2000-02-06  Richard Henderson  <rth@cygnus.com>
10824
10825         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
10826         * basic-block.h: Declare them.
10827         * emit-rtl.h (active_insn_p): New.
10828         (next_active_insn, prev_active_insn): Use it.
10829         * rtl.h: Declare it.
10830         * function.c (emit_return_into_block): New.
10831         (thread_prologue_and_epilogue_insns): Insert return insns instead
10832         of epilogues when possible.
10833         * jump.c (jump_optimize_1): Remove code to insert a return insn
10834         on the fallthru to the exit block.
10835
10836         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
10837         and for non-empty stack frames.
10838         * i386.md (return): Expand to return-pop as needed.
10839
10840 2000-02-06  Richard Henderson  <rth@cygnus.com>
10841
10842         * simplify-rtx.c (simplify_relational_operation): Canonicalize
10843         constant to op1 for testing.
10844
10845 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10846
10847         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
10848         (fixuns_truncqfqi2): Use it.
10849
10850 2000-02-06  Richard Henderson  <rth@cygnus.com>
10851
10852         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
10853         as a TYPE_LEA insn.
10854
10855         * i386.md (widening and peepholes): Mask the constant instead of
10856         using gen_lowpart.
10857
10858 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
10859
10860         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
10861         input pointer before possibly branching off to the backslash
10862         code.
10863         * cpphash.c (macroexpand): Correctly delete \r escapes when
10864         stringifying parameters.
10865         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
10866         if we can; bail out early if we hit a line comment.
10867         (handle_directive): Treat '# 123' in an .S file just like
10868         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
10869         Return 1 for '# not_a_directive'.
10870         (get_directive_token): Pop macro buffers here, so that
10871         cpp_get_token can't sneakily move past a newline.
10872         Add sanity checks.
10873         (cpp_get_token): goto randomchar if handle_directive returns 0.
10874
10875         * cppalloc.c: Update copyright.
10876         * cpplib.c: Merge all the static function prototypes into one
10877         block.
10878         * cpplib.h: Remove #if 0 block.
10879
10880         * cpperror.c: Remove #ifdef EMACS block.
10881         * cppmain.c: Likewise.
10882         * cpphash.c: Remove #if 0 blocks.
10883         * cppinit.c: Remove #if 0 blocks, and the -lint option.
10884         * cpplib.c: Remove #if 0 blocks and code referencing
10885         pcp_inside_if or for_lint.  Remove duplicate error message.
10886         Fix error messages for #else after #else or #elif.  Reformat.
10887         Remove archaic TODO list.
10888         * cpplib.h: Remove pcp_inside_if and for_lint flags.
10889
10890 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
10891
10892         * i386/osf1elf.h: Add missing backslash to multiline string.
10893
10894 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10895
10896         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
10897
10898 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10899
10900         * Makefile.in (c-common.o): Depend on $(EXPR_H).
10901
10902         * c-common.c: Include expr.h.
10903
10904         * c-pragma.c (mark_align_stack): Add prototype.
10905
10906         * caller-save.c (add_stored_regs): Likewise.
10907
10908         * combine.c (record_promoted_value): Likewise.
10909
10910         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
10911         Likewise.
10912
10913         * cppinit.c (new_pending_define): Likewise.
10914
10915         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
10916
10917         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
10918         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
10919         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
10920         class_scope_p): Likewise.
10921
10922         * dwarf2out.h (dwarf2out_set_demangle_name_func,
10923         dwarf2out_add_library_unit_info): Likewise.
10924
10925         * ggc.h (ggc_page_print_statistics): Likewise.
10926
10927         * haifa-sched.c (propagate_deps): Likewise.
10928
10929         * reg-stack.c (next_flags_user, record_label_references): Likewise.
10930
10931         * rtl.h (set_stack_check_libfunc): Likewise.
10932
10933         * toplev.h (set_fatal_function): Likewise.
10934
10935         * toplev.c (set_fatal_function): Delete prototype.
10936
10937         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
10938
10939 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
10940
10941         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
10942         (FUNC_END): Likewise.
10943
10944 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10945
10946         * caller-save.c: Include tm_p.h.
10947
10948 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10949
10950         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
10951
10952 2000-02-04  Neil Booth  <NeilB@earthling.net>
10953
10954         * cccp.c (main): Check 'dir' for a NULL pointer before passing
10955         it to strcmp.
10956
10957 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
10958
10959         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
10960         * genflags.c: Use the max_operand_1 logic from genemit.c to
10961         calculate how many arguments gen_insn prototypes have.  Remove
10962         NO_MD_PROTOTYPES ifdefs from the generated file.
10963         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
10964         file.  Cast gen_insn initializers to insn_gen_fn.
10965         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
10966         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
10967
10968 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10969
10970         * fixinc/Makefile.in (HDR): Add machname.h.
10971         (clean): Likewise.
10972
10973 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10974
10975         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
10976         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
10977         (c4x_cpu_version): Ditto.
10978         * config/c4x/c4x-protos.h: ... here.
10979
10980 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
10981
10982         * dwarf2out.c (add_abstract_origin_attribute): Don't call
10983         gen_abstract_function on our context if we're a nested function.
10984
10985 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10986
10987         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
10988         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
10989
10990 2000-02-04  Bruce Korb  <bkorb@gnu.org>
10991
10992         * fixinc/genfixes(machname.h):
10993         Move the functionality from gen-machine.h into this file.
10994         UNdef MN_NAME_PAT if there are no names to change.
10995         Also, be a little kinder when AutoGen is not present.
10996
10997         * fixinc/Makefile.in(machname.h):
10998         Change the generation rule to use genfixes.
10999
11000         * fixinc/fixfixes.c(machine_name):
11001         machine_name_fix's functionality now dependent upon whether
11002         MN_NAME_PAT is defined.
11003
11004         * fixinc/fixtests.c(machine_name):
11005         ditto.
11006
11007         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
11008         of MN_NAME_PAT.
11009
11010         * fixinc/fixlib.h(mn_get_regexps):
11011         ditto
11012
11013         * fixinc/gen-machine.h: DELETED
11014
11015 2000-02-04  Jan Hubicka  <jh@suse.cz>
11016             Richard Henderson  <rth@cygnus.com>
11017
11018         * i386.c (SAVE_REGS_FIRST): Remove.
11019         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
11020         (ix86_compute_frame_size): Likewise.
11021         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
11022         (ix86_emit_restore_regs): Remove.
11023         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
11024         when a frame pointer is in use.
11025         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
11026         instead of pop to restore a register when profitable; emit leave
11027         when profitable.
11028         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
11029         as a TYPE_LEA insn.
11030         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
11031         * i386.md (prologue_allocate_stack): Remove.
11032         (epilogue_deallocate_stack): Remove.
11033         (pro_epilogue_adjust_stack): New.
11034
11035 2000-02-04  Richard Henderson  <rth@cygnus.com>
11036
11037         * function.c (diddle_return_value): Rework to use a callback function.
11038         Use current_function_return_rtx if it's been set up.
11039         (do_clobber_return_reg, clobber_return_register): New.
11040         (do_use_return_reg, use_return_register): New.
11041         (expand_function_end): Use them.
11042         * stmt.c (expand_null_return): Likewise.
11043         * function.h: Declare them.
11044         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
11045         (mark_reg): Change arguments as appropriate for callback.
11046         * integrate.c (expand_inline_function): Revert 19 Jan change.
11047
11048 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11049
11050         * tm.texi (Values in Registers): Fix typo: "fo" "for".
11051         (Misc): Say the scheduler, not the Haifa scheduler.
11052
11053 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
11054
11055         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
11056         when in_mem is set.  Update all callers.
11057
11058 2000-02-04  Richard Henderson  <rth@cygnus.com>
11059
11060         * i386/openbsd.h (INT_ASM_OP): Define.
11061
11062 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11063
11064         * tm.texi: Fix various typos.
11065
11066 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
11067
11068         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
11069         (MD_STARTFILE_PREFIX_1): New macro.
11070
11071 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
11072
11073         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
11074         destination when needed.
11075         (strmovsi, strsetsi): New expander.
11076         (strmovsi_1, strsetsi_1): New pattern.
11077         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
11078         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
11079         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
11080         * invoke.texi (align-stringops, inline-all-stringops): Document.
11081
11082 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
11083
11084         * i386/netbsd.h (INT_ASM_OP): Define.
11085
11086 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
11087
11088         * cpplib.h (cpp_reader): Add new flag, no_directives.
11089         * cpphash.c (macarg): Set it.
11090         * cpplib.c (handle_directive): If no_directives is on and we
11091         find a directive, issue an error and discard the line.
11092
11093 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
11094
11095         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
11096         FP constants.  Add ! TARGET_FPU check for FP constants.
11097
11098 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
11099
11100         * flow.c (find_basic_blocks): Don't kill label_value_list
11101         here.
11102         (cleanup_cfg): Kill it here.
11103
11104 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11105
11106         * expr.c (store_field): Ensure ALIGN is no stricter than the
11107         alignment of EXP.
11108
11109 2000-02-02  Richard Henderson  <rth@cygnus.com>
11110
11111         * jump.c (delete_insn): Partially revert 19 Jan change;
11112         don't convert unused code labels to notes at -O0.
11113
11114 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11115
11116         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
11117         split_all_insns to recreate REG_LABEL notes for flow2 pass.
11118
11119 2000-02-01  Richard Henderson  <rth@cygnus.com>
11120
11121         * i386.c (general_no_elim_operand): New.
11122         (nonmemory_no_elim_operand): New.
11123         (ix86_expand_move): Copy eliminable operands before a push.
11124         * i386-protos.h: Declare new functions.
11125         * i386.h (CAN_ELIMINATE): Simplify.
11126         (PREDICATE_CODES): Update.
11127         * i386.md (push insns): Don't allow eliminable register operands.
11128
11129 2000-02-01  Richard Henderson  <rth@cygnus.com>
11130
11131         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
11132         replace BLKmode with DECL_RTL's mode.
11133
11134 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
11135
11136         * frame.c (find_fde): Convert for loop to do-while so compiler
11137         sees it's always executed at least once.
11138         * libgcc2.c (BBINBUFSIZE): Kill.
11139         (__bb_init_prg): Use fgets.
11140         (__bb_exit_trace_func): Don't paste strings.
11141         * unroll.c (unroll_loop): Initialize unroll_type, not
11142         unroll_number, and tweak logic to match.
11143
11144         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
11145         all failure paths.
11146         (ix86_flags_dependant): Likewise.  Disentangle control flow.
11147         (ix86_sched_reorder): Break guts out to
11148         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
11149         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
11150         any possible use.
11151
11152         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
11153         use string concatenation.  Don't save and restore esi.
11154
11155         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
11156         (machname.h): Remove script to separate file.  Use two-step
11157         sequence so target is not created if script fails.
11158         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
11159         identifiers are defined.
11160         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
11161         an empty string, machine_name doesn't need to do anything at
11162         all.
11163         (is_cxx_header): Add more cases to regexp.
11164         * fixinc/fixlib.h: Update prototype.
11165         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
11166         mn_get_regexps.
11167         * fixinc/fixincl.c: Define NO_BOGOSITY.
11168
11169         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
11170         (hp_sysfile): Add missing comma.
11171         (math_exception): Put the wrapper ifdefs at the beginning and
11172         the end of the file.
11173         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
11174
11175 2000-02-01  Richard Henderson  <rth@cygnus.com>
11176
11177         * sparc.c (fp_zero_operand): Turn into a normal predicate.
11178         Use CONST0_RTX.  Update all callers.
11179         * sparc.h, sparc-protos.h: Update accordingly.
11180         * sparc.md (fp mov insns): Use fp_zero_operand directly
11181         where applicable.
11182
11183 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11184
11185         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
11186         example.
11187
11188 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11189
11190         * Makefile.in (specs.ready): New target.
11191         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
11192
11193 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11194
11195         * fixinc.irix: Use unique filenames for writing into /tmp,
11196         * fixinc.ptx: Likewise.
11197         * fixinc.sco: Likewise.
11198         * fixinc.svr4: Likewise.
11199         * fixinc.winnt: Likewise.
11200
11201 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11202
11203         * tsystem.h: New file.
11204
11205         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
11206         s-crtS): Depend on tsystem.h.
11207
11208         * crtstuff.c: Include tsystem.h.
11209         * frame.c: Likewise.
11210         * libgcc2.c: Likewise.
11211
11212 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
11213
11214         * builtins.c (expand_builtin_memset): Expand for variable sized
11215         lengths too.
11216
11217 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
11218
11219         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
11220         on ABI.
11221
11222 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11223
11224         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
11225
11226         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
11227
11228 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
11229
11230         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
11231         case 3->2 combining (combining with splitting) in which 2 is CC0
11232         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
11233         checked at the begining of the function with the aid of calling
11234         function 'can_combine_p'.
11235
11236 2000-01-31  Dave Brolley  <brolley@redhat.com>
11237
11238         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
11239
11240 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
11241
11242         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
11243         new label.
11244
11245 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11246
11247         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
11248
11249         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
11250         PROTO -> PARAMS.
11251
11252 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
11253
11254         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
11255         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
11256         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
11257         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
11258         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
11259         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
11260         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
11261         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
11262         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
11263         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
11264
11265         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
11266         Add %(cpp_cpu) to CPP_SPEC.
11267
11268         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
11269         Add %(cc1_cpu) to CC1_SPEC.
11270
11271 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
11272
11273         * c-decl.c (c_decode_option): Accept optional numeric argument to
11274         -Wformat and set warn_format.
11275         * c-common.c: Don't emit warning about non-constant printf format
11276         string unless warn_format > 1.
11277
11278 2000-01-30  Richard Henderson  <rth@cygnus.com>
11279
11280         * alpha.md (return_internal): Allow after reload only.
11281
11282 2000-01-30  Richard Henderson  <rth@cygnus.com>
11283
11284         * i386.c (ix86_compute_frame_size): Omit padding1 if the
11285         local frame size is zero.
11286
11287 2000-01-30  Richard Henderson  <rth@cygnus.com>
11288
11289         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
11290         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
11291         * alpha.md (return): Turn into an expander.
11292         (return_internal): Don't use $26.
11293         (epilogue): Emit the return insn.
11294
11295 2000-01-30  Richard Henderson  <rth@cygnus.com>
11296
11297         * alpha.md (negtf2, abstf2): Fix word order thinko.
11298         (extendsftf2): New.
11299         (trunctfsf2): Avoid intermediate rounding errors.
11300
11301 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
11302
11303         * cppfiles.c (find_position): Drop 'colp' argument, return the
11304         new line base.
11305         (read_and_prescan): Adjust to match.  Don't ever manipulate
11306         line or line_base except via find_position.
11307
11308 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
11309
11310         * c-parse.in: Apply Ulrich's changes from c-parse.y.
11311         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
11312         Regenerate.
11313
11314 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
11315
11316         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
11317         just print "<command line>".  If 'filename' is null or an
11318         empty string, print "<stdin>" for the filename.
11319         * cpplib.c (do_define): Don't print the 'location of the
11320         previous definition' message if we're still parsing the
11321         command line.
11322         (cpp_pedwarn_with_file_and_line): Always call
11323         cpp_file_line_for_message.
11324
11325 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
11326
11327         * flow.c (mark_regs_live_at_end): Fix typo.
11328
11329 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
11330
11331         * c-common.c: Adjust variable names, comments, help strings to c99.
11332         * c-lex.c: Likewise.
11333         * c-parse.y: Likewise.
11334         * c-tree.h: Likewise.
11335         * cccp.c: Likewise.
11336         * cpplib.h: Likewise.
11337         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
11338         * cppinit.c: Likewise.
11339
11340 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11341
11342         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
11343         * c4x.c: Define the optab rtx values.
11344         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
11345         (c4x_emit_libcall): Use new optab rtx values.
11346         (c4x_emit_libcall3): Likewise.
11347         (c4x_emit_libcall_mulhi): Likewise.
11348         * c4x-protos.h: Add prototypes for optab rtx values and change
11349         prototypes for above c4x_emit_libcall functions.
11350
11351 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11352
11353         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
11354         syntax is used.
11355         (c4x_function_prologue): Use regnames intead of float_reg_names when
11356         TI syntax is used.
11357         (c4x_function_epilogue): Likewise.
11358         (c4x_print_operand): Likewise.
11359         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
11360         * c4x.md (set_high): Disable for TARGET_TI.
11361
11362 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11363
11364         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
11365         of framepointer + constant to ADDR_REGS class.
11366         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
11367         * c4x.c (std_or_reg_operand): New function.
11368         * c4x-protos.h (std_or_reg_operand): Prototype it.
11369
11370 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11371
11372         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
11373                 object names as libgcc2.c.
11374         * libgcc.S: Use newly defined names.
11375
11376 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
11377         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
11378         function.
11379         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
11380         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
11381         (FLOW_LOOP_LAST_BLOCK): Likewise.
11382
11383 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11384
11385         * basic-block.h (struct loop): New fields 'first' and 'last'.
11386         * flow.c (flow_loops_find): Compute loop->first and loop->last.
11387         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
11388         and loop->last to check for NOTE_INSN_LOOP_END.
11389
11390 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
11391
11392         * predict.c (estimate_probability): Use the new FIRST and LAST fields
11393         of the loop descriptor rather than HEADER and LATCH. Also added
11394         missing break statements as well making some coding style modifications
11395         as suggested by Michael Hayes.
11396
11397 2000-01-28  Richard Henderson  <rth@cygnus.com>
11398
11399         * flow.c (find_basic_blocks): Remove do_cleanup argument.
11400         Break out that code ...
11401         (cleanup_cfg): ... here.
11402         (commit_one_edge_insertion): Detect a return instruction being
11403         emitted to an edge.  Emit a barrier following; clear fallthru.
11404         (commit_edge_insertions): Verify CFG consistency.
11405         * function.c (expand_function_start): Kill unused variable.
11406         (expand_function_end): Likewise.
11407         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
11408         to insert the epilogue.
11409
11410         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
11411         (delete_null_pointer_checks): Likewise.
11412         * output.h: Likewise.
11413         * reg-stack.c (reg_to_stack): Likewise.
11414         * toplev.c (rest_of_compilation): Likewise.  Run
11415         thread_prologue_and_epilogue_insns after rebuilding the CFG.
11416
11417 2000-01-28  Richard Henderson  <rth@cygnus.com>
11418
11419         * Makefile.in (flow.o): Revert 24 Jan change.
11420         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
11421         FUNCTION_VALUE result to DECL_RESULT's mode.
11422
11423         * haifa-sched.c (schedule_insns): Don't recompute reg info
11424         after reload.
11425
11426 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
11427
11428         * configure.in: Make --enable-cpplib the default.
11429         * configure: Regenerate.
11430         * gcc.dg/990119-1.c: No longer expected to fail.
11431
11432 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
11433
11434         * jump.c (jump_optimize_1): Delete an optimization that is also done
11435         by merge_blocks in flow.
11436
11437 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11438
11439         * diagnostic.c (build_message_string, output_printf,
11440         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
11441         (build_location_prefix): Fix non-literal format string.
11442
11443 2000-01-27  Richard Henderson  <rth@cygnus.com>
11444
11445         * alpha.md (trunctfsf2): New.
11446
11447 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
11448
11449         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
11450
11451 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
11452
11453         * cppinit.c (cpp_handle_option): Recognize C++ comments under
11454         -std=gnu89.
11455         * cpplib.c (skip_block_comment, skip_line_comment): Split code
11456         out of...
11457         (skip_comment) ... here.  Permit C++ comments in system
11458         headers always.  Warn about C++ comments in user code under
11459         -std=gnu89 -pedantic.
11460         (copy_comment): Use skip_comment.
11461         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
11462         return EOF.
11463         (consider_directive_while_skipping, do_else, do_endif): Call
11464         validate_else unconditionally.
11465         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
11466         text after the conditional in a system header.
11467         * cpplib.h (struct cpp_buffer): Add flag
11468         warned_cplusplus_comments.
11469
11470 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
11471
11472         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
11473         Use unshare_all_rtl_1.
11474         (unshare_all_rtl_again): New function.
11475         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
11476
11477         * function.c (purge_addressof_1): Use unshare_all_rtl_again
11478         rather than resetting the 'used' flags ourself.
11479
11480         * toplev.c (rest_of_compilation): Add current_function_decl
11481         to the unshare_all_rtl call.
11482         * tree.h: Prototype unshare_all_rtl.
11483         * rtl.h: Prototype unshare_all_rtl_again here.
11484
11485 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
11486
11487         * genoutput.c (output_prologue): Include ggc.h in generated
11488         files.
11489         * Makefile.in (insn-output.o): Depends on ggc.h.
11490
11491 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
11492             Hans-Peter Nilsson  <hp@bitrange.com>
11493
11494         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
11495         Remove redundant include of xm-ns32k.h.
11496         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
11497         Remove redundant include of xm-ns32k.h.
11498         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
11499         Remove redundant include of xm-ns32k.h.
11500         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
11501
11502         * ns32k/ns32k.h: Update comment on multiply-add instructions.
11503         (TARGET_SWITCHES): Add documentation strings.
11504         (DWARF_FRAME_REGNUM): Override default definition.
11505         (REG_CLASS_CONTENTS): Add comments.
11506         (SUBSET_P): Format to reduce line length.
11507         (SMALL_REGISTER_CLASSES): Make a run time option.
11508         (GO_IF_NONINDEXED_ADDRESS): Reformat.
11509         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
11510         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
11511         (regclass_map): fix typo in comment.
11512         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
11513         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
11514         (trace, reg_or_mem_operand): Delete, unused function.
11515         (calc_address_cost): Small offsets are cheaper than large ones.
11516         (expand_block_move): Generate more efficient code when bytes is a
11517         known at compile time.
11518         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
11519         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
11520         instead of reg_or_mem_operand.
11521
11522         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
11523         not general_operand.  Similarly use "=rm" or stricter, not "=g".
11524         For input operands, use stricter constraints than "g" if not
11525         general_operand.  Similarly use stricter predicate than
11526         "general_operand" when stricter constraints than "g" are present,
11527         except for matching constraints.
11528         (movstrsi): Use "memory_operand" for operands 0 and 1.
11529         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
11530         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
11531         not reg_or_mem_operand.
11532         (udivmoddisi4): Ditto.
11533         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
11534         Use nonimmediate_operand for operand 3, not register_operand.
11535         (udivmoddiqi4_internal): Use register_operand for operand 1, not
11536         reg_or_mem_operand.
11537
11538 2000-01-27  Fred Fish  <fnf@be.com>
11539
11540         * gthr-posix.h: Fix typo; compatibily -> compatibility.
11541         * gthr-single.h: Likewise.
11542         * gthr-solaris.h: Likewise.
11543         * gthr-vxworks.h: Likewise.
11544         * gthr-win32.h: Likewise.
11545         * gthr.h: Likewise.
11546
11547 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
11548
11549         * cppinit.c: Add " (cpplib)" to end of string printed by
11550         -v / --version.
11551
11552 2000-01-27  Richard Henderson  <rth@cygnus.com>
11553
11554         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
11555         testing for a signed comparison.
11556         (alpha_emit_floatuns): New.
11557         * alpha-protos.h: Declare it.
11558         * alpha.md (floatunsdisf2, floatunsdidf2): New.
11559         (extendsfdf2): Tidy.
11560
11561 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
11562
11563         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
11564         no -g option specifying debugging format, default to -gstabs+.
11565
11566 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
11567
11568         * calls.c (special_function_p): New argument fork_or_exec.
11569         (expand_call): When profile_arc_flag is set and the function
11570         is in the fork_or_exec group, call __bb_fork_func first.
11571         * libgcc2.c, _bb module (__bb_fork_func): New function.
11572         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
11573         output file.
11574         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
11575         * tree.h (special_function_p): Update prototype.
11576
11577 2000-01-26  Richard Henderson  <rth@cygnus.com>
11578
11579         * alpha.c (alpha_split_tfmode_pair): New.
11580         * alpha-protos.h: Declare it.
11581         * alpha.md (abstf2, negtf2): New.
11582         (movtf insn): Add input G constraint.
11583         (movtf splitter): Use alpha_split_tfmode_pair.
11584
11585 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11586
11587         * i386/cygwin.h: PROTO -> PARAMS.
11588
11589 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
11590
11591         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
11592         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
11593         using _Qp_cmp/_Q_cmp and testing the return value.
11594         (print_operand): Call reverse_condition_maybe_unordered if
11595         we are handling CCFPmode or CCFPEmode.
11596         Handle ORDERED, UN* and LTGT comparisons.
11597         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
11598         if not TARGET_HARD_QUAD.
11599         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
11600         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
11601         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
11602         Adjust gen_b* calls so that they reflect return comparison of
11603         sparc_emit_float_lib_cmp.
11604
11605 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11606
11607         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
11608         incoming operands array is large enough for one more operand.
11609         (alpha_emit_xfloating_arith): Likewise.
11610
11611 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
11612
11613         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
11614         file with one line and no trailing newline.
11615         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
11616         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
11617         checking if the match is on the line.
11618         * fixinc/gnu-regex.c: Provide regerror not __regerror.
11619
11620 2000-01-25  Richard Henderson  <rth@cygnus.com>
11621
11622         * sparc.c (output_cbranch): Fix accidental squashing of the
11623         fp branch pre-delay nop.
11624
11625 2000-01-25  Richard Henderson  <rth@cygnus.com>
11626
11627         * tree.def (UNNE_EXPR): Remove.
11628         * c-typeck.c (build_binary_op): Don't handle it.
11629         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
11630
11631         * rtl.def (UNNE): Remove.
11632         (LTGT): Add.
11633         * jump.c (reverse_condition): Update accordingly.
11634         (swap_condition): Likewise.
11635         (comparison_dominates_p): Handle unordered comparisons.
11636         (reverse_condition_maybe_unordered): New.
11637         * rtl.h (reverse_condition_maybe_unordered): Declare.
11638
11639         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
11640         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
11641         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
11642         * sparc.md (bltgt): New.
11643
11644 2000-01-25  Nick Clifton  <nickc@redhat.com>
11645
11646         * emit-rtl.c (emit_insn): Only check machine class insns for
11647         improper emission of a RETURN.
11648
11649 2000-01-25  Richard Henderson  <rth@cygnus.com>
11650
11651         * Makefile.in (flow.o): Depend on $(EXPR_H).
11652         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
11653         duplicate the structure of diddle_return_value for keeping regs live.
11654
11655 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11656
11657         * loop.c (current_loop_info): Delete.
11658         (consec_sets_invariant_p): Add loop argument, update callers.
11659         (get_condition_for_loop): Likewise.
11660         (count_nonfixed_reads, update_giv_derive): Likewise.
11661         (simplify_giv_expr, general_induction_var): Likewise.
11662         (consec_sets_giv, recombine_givs): Likewise.
11663         (move_movables): Delete loop_start and loop_end arguments,
11664         add loop argument, and update callers.
11665         (find_mem_givs, check_final_value): Likewise.
11666         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
11667         (loop_invariant_p): Rename from invariant_p, add loop argument, and
11668         update callers.
11669         (basic_induction_var): Add loop argument, delete loop_level argument,
11670         and update callers.
11671         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
11672         add loop argument, and update callers.
11673         (find_splittable_regs, find_splittable_givs): Likewise.
11674         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
11675         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
11676         (biv_total_increment): Delete loop_start and loop_end arguments;
11677         update callers.
11678         (precondition_loop_p): Delete loop_start and loop_info arguments;
11679         update callers.
11680         * loop.h (get_condition_for_loop): Add loop argument.
11681         (biv_total_increment): Delete loop_start and loop_end arguments.
11682         (precondition_loop_p): Delete loop_start and loop_info arguments;
11683         add loop argument.
11684         (final_biv_value): Delete loop_start and loop_end arguments;
11685         add loop argument.
11686         (final_giv_value, back_branch_in_range_p): Likewise.
11687
11688 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
11689
11690         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
11691
11692 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
11693
11694         * Makefile.in (c-gperf.h) : Change the "See" pointer to
11695         point to the new "generated_files" doc.
11696
11697 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
11698
11699         * config/fp-bit.c (_unord_f2): Fix typo.
11700
11701 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
11702
11703         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
11704         c-typeck.c, objc/objc-act.c: Remove all references to obstack
11705         functions obsoleted by GC, such as push_obstacks_nochange,
11706         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
11707         and code which existed only to decide whether or not to call
11708         them.  Remove now-unused NESTED argument from start_function;
11709         all callers changed.  Do not change behavior based on ggc_p.
11710         The use of the ixp_obstack in c-iterate.c and the util_obstack
11711         in objc/objc-act.c remain; these are not obsoleted by garbage
11712         collection.
11713         * c-tree.h: Update prototype for start_function.
11714
11715         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
11716
11717 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
11718
11719         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
11720         mips16.
11721
11722 2000-01-25  Richard Henderson  <rth@cygnus.com>
11723
11724         * sparc-protos.h (select_cc_mode): Declare.
11725         * sparc.c (select_cc_mode): New.  Handle unordered compares.
11726         (output_cbranch): Always reverse via code change.  Handle
11727         unordered compares.  Factor tests and string updates.
11728         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
11729         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
11730         * sparc.md (bunordered, bordered): New.
11731         (bungt, bunlt, buneq, bunge, bunle): New.
11732
11733 2000-01-25  Richard Henderson  <rth@cygnus.com>
11734
11735         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
11736         * ggc-common.c (ggc_add_rtx_varray_root): New.
11737         (ggc_mark_rtx_varray): New.
11738         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
11739         functions down below ggc_mark_foo.
11740         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
11741
11742 2000-01-25  Richard Henderson  <rth@cygnus.com>
11743
11744         * alpha.c (secondary_reload_class): Don't allocate a secondary
11745         for integral mode memories into FLOAT_REGS.  Rearrange the more
11746         complicated memory expression inward.
11747
11748 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
11749
11750         * inclhack.def: Fixes to play nicer with FreeBSD, and
11751         corrections to comments.
11752         (cxx_unready): Add select expression.
11753         (irix_sockaddr): Add bypass expression.
11754         (machine_ansi_h_va_list): New fix.
11755         (stdio_va_list): No need to edit _BSD_VA_LIST_.
11756         Split out addition of "#include <stdarg.h>" to...
11757         (stdio_stdarg_h): ... here.
11758         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
11759         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
11760         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
11761         size_t.
11762         (ultrix_ifdef): Tighten up select expression.
11763
11764         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
11765         re_ct and max_mach to avoid use of shell.  Make printed names
11766         match names in inclhack.def.  Use static copyright date.
11767         Don't count c_test and test expressions as requiring regex_t
11768         slots.  Add some commentary.
11769         * inclhack.tpl: Do not include the 'This script contains N
11770         fixup scripts' line if PROGRAM is defined.  Use static
11771         copyright date.
11772
11773 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
11774
11775         * dwarf2out.c: include "varray.h", not dyn-string.h.
11776         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
11777         (addr_const_to_string, addr_to_string): Lose.
11778         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
11779         (struct dw_val_struct): val_addr is now an rtx.
11780         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
11781         (used_rtx_varray): New varray.
11782         (dwarf2out_init): Initialize it.
11783         (save_rtx): New fn.
11784         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
11785         addr_to_string.
11786         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
11787         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
11788         * Makefile.in (dwarf2out.o): Update dependencies.
11789
11790 2000-01-24  Richard Henderson  <rth@cygnus.com>
11791
11792         * i386.c (i386_dwarf_output_addr_const): New.
11793         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
11794
11795         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
11796         if defined.
11797         * dwarfout.c (output_mem_loc_descriptor): Likewise.
11798         * i386.c (i386_simplify_dwarf_addr): New.
11799         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
11800
11801 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
11802
11803         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
11804         TYPE_STUB_DECL is NULL.
11805
11806 2000-01-24  Richard Henderson  <rth@cygnus.com>
11807
11808         * builtins.c (expand_tree_builtin): Move ...
11809         * c-common.c (expand_tree_builtin): ... here.
11810
11811 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11812
11813         * loop.h (LOOP_INFO): New accessor macro.
11814         * basic-block.h (struct loop): Rename field `info' to `aux'.
11815         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
11816         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
11817         * unroll.c (loop_iterations, unroll_loop): Likewise.
11818
11819 2000-01-24  Christopher Faylor <cgf@cygnus.com>
11820
11821         * config/i386/t-cygwin: Accomodate new winsup directory layout
11822         when searching for include files.
11823
11824 2000-01-24  Richard Henderson  <rth@cygnus.com>
11825
11826         * rtl.def: Add unordered fp comparisions.
11827         * tree.def: Likewise.
11828         * tree.h: Add ISO C 9x unordered fp comparision builtins.
11829
11830         * builtins.c (expand_tree_builtin): New function.
11831         * c-typeck.c (build_function_call): Use it.
11832         (build_binary_op): Support unordered compares.
11833         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
11834
11835         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
11836         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
11837         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
11838         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
11839         * jump.c (reverse_condition): Don't abort for UNLE etc, but
11840         return UNKNOWN.
11841         (swap_condition): Handle unordered compares.
11842         (thread_jumps): Check can_reverse before reversing.
11843         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
11844         reversed for FP.
11845
11846         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
11847         setcc is present before acking for cmp_optab.  Update all callers.
11848         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
11849         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
11850         * expr.c (expand_expr): Likewise.  Support unordered compares.
11851         (do_jump, do_store_flag): Likewise.
11852         * expr.h (enum libfunc_index): Add unordered compares.
11853
11854         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
11855         (DPBIT_FUNCS): Add _unord_df.
11856         * config/fp-bit.c (_unord_f2): New.
11857         * fp-test.c (main): Try unordered compare builtins.
11858
11859         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
11860         * alpha.c (alpha_comparison_operator): Check mode properly.
11861         (alpha_swapped_comparison_operator): Likewise.
11862         (signed_comparison_operator): Likewise.
11863         (alpha_fp_comparison_operator): New.
11864         (alpha_emit_conditional_branch): Handle unordered compares.
11865         * alpha.h (PREDICATE_CODES): Update.
11866         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
11867         (bunordered, bordered): New.
11868
11869 2000-01-24  Richard Henderson  <rth@cygnus.com>
11870
11871         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
11872         * alpha.md (movtf): New expander, insn, and splitter.
11873
11874 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
11875
11876         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
11877         dead registers.
11878
11879 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
11880
11881         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
11882         (FIXED_REGISTERS, CALL_USED_REGISTERS,
11883          REG_ALLOC_ORDER): Add frame pointer
11884         (FRAME_POINTER_REGNUM): Set to 20
11885         (HARD_FRAME_POINTER_REGNUM): New macro.
11886         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
11887         to HARD_FRAME_POINTER.
11888         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
11889         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
11890         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
11891         (HI_REGISTER_NAMES): Add "frame".
11892         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
11893         (debug_reg): Handle FRAME_POINTER_REGNUM.
11894         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
11895         GENERAL_REGS and INDEX_REGS.
11896         * i386.c (SAVED_REGS_FIRST): new macro.
11897         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
11898         (ix86_decompose_address, memory_address_length): Likewise.
11899         (regclass_map): Add frame pointer.
11900         (call_insn_operand): Handle frame_pointer_rtx.
11901         (reg_no_sp_operand): Likewise.
11902         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
11903         (print_operand, legitimize_pic_address): Fix formating.
11904         (ix86_compute_frame_size): Make static, update prototype, new
11905         parameters padding1, padding2, use ix86_nsaved_regs, use
11906         stack_alignment_needed.
11907         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
11908         to HARD_FRAME_POINTER_REGNUM conversions.
11909         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
11910         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
11911         (print_reg): Abort on FRAME_POINTER_REGNUM
11912
11913 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
11914
11915         * i386.h (PREDICATE_CODES): Add aligned_operand.
11916         * i386.c (aligned_operand): New function.
11917         (ix86_aligned_p): Kill.
11918         * i386.md (movhi_1): Emit mov for aligned operands.
11919         (promoting peep2s): Use aligned_operand.
11920
11921 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
11922
11923         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
11924         expression to allow underscores in macro names.
11925         (fix_char_macro_defines): Increment scanning pointer.
11926
11927 2000-01-23  Richard Henderson  <rth@cygnus.com>
11928
11929         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
11930         * alpha/osf5.h: New file.
11931         * configure.in (alpha-*-osf5): Add it to tm_file.
11932
11933         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
11934
11935         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
11936         (alpha_emit_xfloating_cvt, function_arg): Declare.
11937         * alpha.c (alpha_emit_conditional_branch): Call
11938         alpha_emit_xfloating_compare for TFmode compares.
11939         (alpha_lookup_xfloating_lib_func): New.
11940         (alpha_compute_xfloating_mode_arg): New.
11941         (alpha_emit_xfloating_libcall): New.
11942         (alpha_emit_xfloating_arith): New.
11943         (alpha_emit_xfloating_compare): New.
11944         (alpha_emit_xfloating_cvt): New.
11945         (print_operand): Add default abort case.
11946         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
11947         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
11948         (BIGGEST_ALIGNMENT): Increase to 128 bits.
11949         (RETURN_IN_MEMORY): True for TF/TCmode.
11950         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
11951         (FUNCTION_ARG): Move to function_arg.
11952         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
11953         (ASM_OUTPUT_LONG_DOUBLE): New.
11954         (ASM_OUTPUT_DOUBLE): Always output bits.
11955         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
11956         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
11957         (extenddftf2, trunctfdf2): New.
11958
11959 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11960
11961         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
11962         * config/sparc/sol2.h: ... here.
11963
11964 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11965
11966         * basic-block.h (struct loops): New field `levels'.
11967         * flow.c (flow_loops_level_compute): Traverse all outer loops.
11968         (flow_loop_level_compute): Initialise level to 1.
11969         (flow_loops_find): Set loops->levels.
11970         (flow_loops_dump): Print loops->levels.
11971
11972 2000-01-23  Richard Henderson  <rth@cygnus.com>
11973
11974         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
11975         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
11976
11977 2000-01-23  Richard Henderson  <rth@cygnus.com>
11978
11979         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
11980         * i386.h (DBX_REGISTER_NUMBER): Use them.
11981         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
11982         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
11983         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
11984         * i386/sequent.h: Kill incorrect comment.
11985
11986 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
11987
11988         * ggc-page.c (struct page_entry): Make `context_depth' an
11989         `unsigned short'.
11990         (struct globals): Likewise.
11991
11992 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
11993
11994         * loop.c (check_dbra_loop): When checking a loop for
11995         reversability, check the source of any stores to ensure
11996         they don't depend on an initial value.
11997
11998 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11999
12000         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
12001
12002 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
12003
12004         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
12005         'pz_scan' into scope of entire function.  Only affects
12006         compiles with -DDEBUG.
12007
12008 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
12009
12010         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
12011         section naming to that prior to 2000-01-07 patch.
12012         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
12013         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
12014         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
12015         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
12016         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
12017
12018 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
12019
12020         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
12021         constant.
12022
12023 2000-01-21  Jim Wilson  <wilson@cygnus.com>
12024
12025         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
12026         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
12027
12028 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
12029
12030         * cpphash.c (change_newlines): Delete function.
12031         (struct argdata): Delete 'newlines' and 'use_count' fields.
12032         (macroexpand): Remove code referencing those fields.
12033
12034 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12035
12036         * loop.c (loops_info): New variable.
12037         (loop_optimize): Allocate loops->array and free it on exit.
12038         Allocate memory for loops_info and assign to each loop,
12039         replacing alloca.
12040         (find_and_verify_loops): Do not allocate loops->array.
12041
12042 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
12043
12044         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
12045
12046 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
12047
12048         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
12049         pseudos if expanded after first flow.
12050         (movdi_pic_label_ref): Likewise.
12051
12052 2000-01-20  Richard Henderson  <rth@cygnus.com>
12053
12054         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
12055
12056 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
12057
12058         * Makefile.in (fixinc.sh): Depend on specs.
12059         * fixinc/Makefile.in: Add rule to create machname.h.
12060         (fixlib.o): Depend on machname.h.
12061         * fixinc/fixtests.c (machine_name): New test.
12062         * fixinc/fixfixes.c (machine_name): New fix.
12063         * fixinc/fixlib.c (mn_get_regexps): New helper function for
12064         the machine_name test and fix.
12065         * fixinc/fixlib.h: Prototype it.
12066         * fixinc/inclhack.def (machine_name): Use the C test and fix.
12067         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
12068
12069         * gcc.c (do_spec_1) [case P]: Take care not to create
12070         identifiers with three leading or trailing underscores.
12071
12072         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
12073         (fixincl): Don't specify libraries twice on link line.
12074         (gnu-regex.o): Remove special rule.
12075         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
12076         defined by config.h.  Do not define _REGEX_RE_COMP.
12077         (regcomp): Allocate and initialize a fastmap.
12078         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
12079
12080 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
12081
12082         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
12083
12084 2000-01-19  Richard Henderson  <rth@cygnus.com>
12085
12086         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
12087         arguments with BB.  Update all callers.  Tidy line wrapping.
12088
12089 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
12090
12091         * emit-rtl.c (try_split): Return last_insn if we split the
12092         last_insn.
12093
12094 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
12095
12096         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
12097         (ix86_initial_elimination_offset): Declare.
12098         * i386.c (ix86_nsaved_regs): Break out from ...
12099         (ix86_can_use_return_insn_p): ... here.
12100         (ix86_emit_save_regs): Break out from ...
12101         (ix86_expand_prologue): ... here.
12102         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
12103         out from ...
12104         (ix86_expand_epilogue): ... here.
12105         (ix86_compute_frame_size): Make static, add prototype.
12106         (ix86_initial_elimination_offset): Break out from ...
12107         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
12108
12109 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12110
12111         * recog.h (OUT_FCN): Delete.
12112
12113         * vax.md: Call `get_insn_template' instead of OUT_FCN.
12114
12115 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12116
12117         * cppalloc.c: PROTO -> PARAMS.
12118         * cpperror.c: Likewise.
12119         * cppfiles.c: Likewise.
12120         * cpplib.c: Likewise.
12121         * cpplib.h: Likewise.
12122
12123         * config/arm/arm-protos.h: PROTO -> PARAMS.
12124         * config/arm/arm.c: Likewise.
12125         * config/c4x/c4x.c: Likewise.
12126         * config/fr30/fr30-protos.h: Likewise.
12127         * config/nextstep.c: Likewise.
12128         * config/pa/pa.c: Likewise.
12129         * config/pj/pj.c: Likewise.
12130         * config/rs6000/rs6000.c: Likewise.
12131         * config/v850/v850-protos.h: Likewise.
12132         * config/v850/v850.c: Likewise.
12133
12134 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12135
12136         * i370-protos.h: New file.
12137
12138         * i370.c: Include tm_p.h.  Fix compile time warnings.
12139
12140         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
12141         warnings.
12142
12143         * i370.md: Likewise.
12144
12145 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12146
12147         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
12148         (target_isinf, target_isnan, eisnan): Mark parameter with
12149         ATTRIBUTE_UNUSED.
12150         (eiisinf): Wrap in INFINITY.
12151         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
12152         (ibmtoe): Remove unused variable `rndsav'.
12153
12154 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12155
12156         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
12157         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
12158
12159 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
12160
12161         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
12162         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
12163         (fix_char_macro_defines, fix_char_macro_uses): New functions.
12164
12165         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
12166         Recognize Emacs mode markers also.
12167         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
12168         C++ comments in C++ headers.  Call is_cxx_header only if
12169         necessary.
12170
12171         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
12172         bypass for ncurses.
12173         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
12174         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
12175         ... these, which use the new C fixes.
12176         (math_exception): Escape literal '+' in bypass expression.
12177
12178         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
12179         Regenerate.
12180
12181 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12182
12183         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
12184         inside the MEM.
12185
12186 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12187
12188         * loop.c (loop_optimize): Allocate loop_info structure for each loop
12189         prior to calling scan_loop.
12190
12191 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12192
12193         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
12194         (split_branches, calc_live_regs): Likewise.
12195
12196 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12197
12198         * sh.md (fpu_single, fp_mode): New attributes.
12199
12200 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12201
12202         * loop.c (current_loop_info): Renamed from loop_info_data
12203         and changed to a pointer.
12204         (loop_optimize): Allocate loop_info structure for each loop
12205         and initialise to zero.
12206         (scan_loop): Set current_loop_info.
12207
12208         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
12209         on iteration_var.
12210
12211 2000-01-19  Richard Henderson  <rth@cygnus.com>
12212
12213         * stupid.c: Die die die.
12214         * Makefile.in (OBJS): Remove stupid.o.
12215         (stupid.o): Likewise.
12216
12217         * except.c (emit_eh_context): Don't emit USEs for stupid.
12218         * explow.c (probe_stack_range): Likewise.
12219         * flags.h (obey_regdecls): Remove.
12220         * flow.c (find_basic_blocks): Don't run try_merge_blocks
12221         when not optimizing.
12222         (life_analysis): Limit data collection when not optimizing.
12223         (mark_regs_live_at_end): Always mark the return value registers.
12224         (mark_used_regs): Remove dummy RETURN case.
12225         (print_rtl_with_bb): Don't consult obey_regdecls.
12226         * function.c (use_variable, use_variable_after): Remove.
12227         (assign_parms): Consult optimize not obey_regdecls.
12228         (expand_function_start): Don't emit USEs for stupid.
12229         (expand_function_end): Likewise.
12230         * global.c (build_insn_chain): Export.
12231         * integrate.c (expand_inline_function): Kill return-value USE
12232         handling code.
12233         * jump.c (jump_optimize_1): Do simple jump optimizations and
12234         dead code elimination.
12235         (calculate_can_reach_end): Remove check_deleted argument.
12236         (delete_insn): Patch out insns even when not optimizing.
12237         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
12238         * rtl.h (use_variable, use_variable_after): Remove declarations.
12239         (build_insn_chain): Declare.
12240         * stmt.c (expand_value_return): Don't emit USEs for stupid.
12241         (expand_end_bindings): Likewise.
12242         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
12243         * toplev.c (obey_regdecls): Remove.
12244         (rest_of_compilation): Don't set it.  Kill stupid in favour of
12245         flow1, local-alloc, and reload.
12246         (main): Don't set obey_regdecls.
12247
12248         * config/nextstep.c (handle_pragma): Likewise.
12249
12250         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
12251
12252         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
12253
12254 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12255
12256         * alpha-protos.h: PROTO -> PARAMS.
12257         * alpha.c: Likewise.
12258         * elf.h: Likewise.
12259         * h8300.c: Likewise.
12260         * i386-protos.h: Likewise.
12261         * i386.c: Likewise.
12262         * m32r-protos.h: Likewise.
12263         * m32r.c: Likewise.
12264         * mips.c: Likewise.
12265         * mips.md: Likewise.
12266         * gmon-sol2.c: Likewise.
12267         * sparc.c: Likewise.
12268
12269 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12270
12271         * ns32k-protos.h: New file.
12272
12273         * ns32k.c: Fix compile time warnings.
12274
12275         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
12276         warnings.
12277
12278         * ns32k.md: Likewise.
12279
12280 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12281
12282         * vax-protos.h: New file.
12283
12284         * vax.c: Fix compile time warnings.
12285
12286         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
12287         warnings.
12288
12289         * vax.md: Likewise.
12290
12291         * vaxv.md: Likewise.
12292
12293 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12294
12295         * romp-protos.h: New file.
12296
12297         * romp.c: Fix compile time warnings.
12298
12299         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
12300         warnings.
12301
12302         * romp.md: Likewise.
12303
12304 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12305
12306         * we32k-protos.h: New file.
12307
12308         * we32k.c: Fix compile time warnings.
12309
12310         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
12311         warnings.
12312
12313 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12314
12315         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
12316
12317         * except.c (eh_regs): Likewise.
12318
12319         * final.c (output_operand): Likewise.
12320
12321         * fold-const.c (target_isinf, target_isnan): Likewise.
12322
12323 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
12324
12325         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
12326         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
12327
12328         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
12329         when optimize_size.
12330         (clrstrsi): Rewrite.
12331         (strsethi, strsetqi): New expanders.
12332         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
12333         (cmpstrsi): Emit compare insn before cmpstrsi_1
12334         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
12335         (strlensi_1): Likewise.
12336         (cmpstrsi_1): Likewise; do not output compare.
12337         (strlen expander): Do not unroll when optimizing for size.
12338         (*subsi3_carry): Rename to subsi3_carry
12339         (addqi3_cc): New pattern.
12340         * i386.h (processor_costs): Add move_ratio field.
12341         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
12342         * i386.c (*_cost): Set move_ratio.
12343         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
12344         (x86_expand_strlensi_1): Rewrite the main loop.
12345
12346 2000-01-17  Richard Henderson  <rth@cygnus.com>
12347
12348         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
12349         * cse.c (find_comparison_args, fold_rtx): Likewise.
12350         * integrate.c (subst_constants): Likewise.
12351         * loop.c (get_condition): Likewise.
12352
12353         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
12354
12355         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
12356
12357 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12358
12359         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
12360         (RESTORE_WARN_FLAGS): Unpack it.
12361         Change semantic type of extension to ttype.
12362         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
12363         * c-parse.y, c-parse.c, objc/objc-parse.y,
12364         objc/objc-parse.c: Regenerate.
12365
12366 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
12367
12368         * fixinc/fixlib.c: Add copyright notice.
12369         (compile_re): New function.
12370         * fixinc/fixlib.h: Prototype compile_re.
12371
12372         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
12373         Use compile_re to compile regular expressions.
12374
12375         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
12376         where the pattern matched.
12377
12378         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
12379         use 'replace'.
12380         (ultrix_ansi_compat): Likewise.
12381         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
12382         add egrep test.
12383         (interactv_add2, interactv_add3): Delete.
12384         (x11_sprintf): Don't use filename glob.
12385         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
12386         Regenerate.
12387
12388 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12389
12390         * print-rtl.c: PROTO -> PARAMS.
12391         * real.c: Likewise.
12392         * reg-stack.c: Likewise.
12393         * resource.c: Likewise.
12394         * sdbout.h: Likewise.
12395         * simplify-rtx.c: Likewise.
12396         * stor-layout.c: Likewise.
12397         * stupid.c: Likewise.
12398         * xcoffout.c: Likewise.
12399         * xcoffout.h: Likewise.
12400
12401 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12402
12403         * toplev.c: PROTO -> PARAMS.
12404         * toplev.h: Likewise.
12405         * tree.c: Likewise.
12406         * tree.h: Likewise.
12407         * unroll.c: Likewise.
12408         * varasm.c: Likewise.
12409         * varray.c: Likewise.
12410         * varray.h: Likewise.
12411
12412 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12413
12414         * reload.c: PROTO -> PARAMS.
12415         * reload.h: Likewise.
12416         * reload1.c: Likewise.
12417         * reorg.c: Likewise.
12418         * resource.h: Likewise.
12419         * rtl.c: Likewise.
12420         * rtl.h: Likewise.
12421         * rtlanal.c: Likewise.
12422         * sbitmap.h: Likewise.
12423         * sdbout.c: Likewise.
12424         * stack.h: Likewise.
12425         * stmt.c: Likewise.
12426         * system.h: Likewise.
12427
12428 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12429
12430         * machmode.h: PROTO -> PARAMS.
12431         * mbchar.h: Likewise.
12432         * mips-tdump.c: Likewise.
12433         * mips-tfile.c: Likewise.
12434         * optabs.c: Likewise.
12435         * output.h: Likewise.
12436         * prefix.c: Likewise.
12437         * profile.c: Likewise.
12438         * protoize.c: Likewise.
12439         * real.h: Likewise.
12440         * recog.c: Likewise.
12441         * recog.h: Likewise.
12442         * regclass.c: Likewise.
12443         * regmove.c: Likewise.
12444         * regs.h: Likewise.
12445
12446 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12447
12448         * ggc-common.c: PROTO -> PARAMS.
12449         * ggc-page.c: Likewise.
12450         * ggc-simple.c: Likewise.
12451         * ggc.h: Likewise.
12452         * global.c: Likewise.
12453         * graph.c: Likewise.
12454         * gthr-win32.h: Likewise.
12455         * haifa-sched.c: Likewise.
12456         * halfpic.h: Likewise.
12457         * integrate.c: Likewise.
12458         * integrate.h: Likewise.
12459         * jump.c: Likewise.
12460         * lcm.c: Likewise.
12461         * local-alloc.c: Likewise.
12462         * loop.c: Likewise.
12463         * loop.h: Likewise.
12464
12465 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12466
12467         * genattr.c: PROTO -> PARAMS.
12468         * genattrtab.c: Likewise.
12469         * gencheck.c: Likewise.
12470         * gencodes.c: Likewise.
12471         * genconfig.c: Likewise.
12472         * genemit.c: Likewise.
12473         * genextract.c: Likewise.
12474         * genflags.c: Likewise.
12475         * gengenrtl.c: Likewise.
12476         * genopinit.c: Likewise.
12477         * genoutput.c: Likewise.
12478         * genpeep.c: Likewise.
12479         * genrecog.c: Likewise.
12480
12481 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
12482
12483         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
12484
12485 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12486
12487         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
12488         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
12489         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
12490         * configure, config.in: Rebuilt.
12491
12492 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
12493
12494         * config/i386/i386.md: Add peephole to merge successive stack
12495         adjusts.
12496
12497 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
12498
12499         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
12500         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
12501         when walking backwards to find all the parameter loads when
12502         the basic block ends in a call.
12503
12504 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12505
12506         * loop.c (this_loop_info): Delete.
12507         (uid_loop): Add in place of uid_loop_num.  All uses updated.
12508         (loop_number_exit_count): Delete and replace with entry in loop
12509         structure.  All uses updated.
12510         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
12511         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
12512         (loop_outer_loop): Likewise.
12513         (loop_invalid, loop_number_exit_labels): Likewise.
12514         (loop_used_count_register): Delete and replace with entry in
12515         loop_info structure.
12516         (find_and_verify_loops): Add loops argument.
12517         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
12518         loop_end, etc. arguments with loop structure pointer.  All callers
12519         changed.
12520         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
12521         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
12522         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
12523         (insert_bct): Likewise.
12524         (basic_induction_var): New argument level.
12525         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
12526         vtop, and cont.  Add used_count_register.
12527         (uid_loop): Delete declaration.
12528         (loop_number_exit_count): Likewise.
12529         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
12530         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
12531         (loop_outer_loop, loop_used_count_register): Likewise.
12532         (loop_invalid, loop_number_exit_labels): Likewise.
12533         (unroll_loop): Replace loop_start and loop_end arguments
12534         with loop structure pointer.
12535         (loop_precondition_p, loop_iterations): Likewise.
12536         Include basic-block.h.
12537         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
12538         with loop structure pointer.
12539         (loop_precondition_p, loop_iterations): Likewise.
12540         * basic-block.h (struct loop): New entries vtop, cont,
12541         cont_dominator, start, end, top, scan_start, exit_labels,
12542         exit_count.
12543         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
12544
12545 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12546
12547         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
12548
12549 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
12550
12551         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
12552
12553 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12554
12555         * pdp11-protos.h: New file.
12556
12557         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
12558         time warnings.
12559
12560         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
12561         warnings.
12562
12563         * pdp11.md: Likewise.
12564
12565         * 2bsd.h: Likewise.
12566
12567 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12568
12569         * mn10300-protos.h: New file.
12570
12571         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
12572         time warnings.
12573
12574         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
12575         warnings.
12576
12577         * mn10300.md: Likewise.
12578
12579 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12580
12581         * mn10200-protos.h: New file.
12582
12583         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
12584         time warnings.
12585
12586         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
12587         warnings.
12588
12589         * mn10200.md: Likewise.
12590
12591 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12592
12593         * h8300-protos.h: New file.
12594
12595         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
12596         time warnings.
12597
12598         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
12599         warnings.
12600
12601         * h8300.md: Likewise.
12602
12603 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12604
12605         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
12606         (asm_emit_uninitialised): Likewise.
12607
12608 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
12609
12610         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
12611         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
12612
12613 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
12614
12615         * config/mips/mips.c (override_options): Don't turn on extra
12616         alignment for mips16.
12617
12618 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
12619
12620         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
12621         eabi, and make sure queued POSTINCREMENT rtl is emitted at
12622         the right point.
12623
12624 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
12625
12626         * builtins.c (PAD_VARARGS_DOWN): Define.
12627         (std_expand_builtin_va_arg): Use the above macro.
12628         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
12629         * tm.texi (Register Arguments): Document the above macro.
12630
12631 2000-01-14  Nick Clifton  <nickc@cygnus.com>
12632
12633         * emit-rtl.c (emit_insn): If checking is enabled, make sure
12634         that this function has not been used to emit a jump
12635         instruction.
12636
12637         * jump.c (return_jump_1): Cope with being passed a null rtx.
12638
12639 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12640
12641         * eh-common.h: PROTO -> PARAMS.
12642         * emit-rtl.c: Likewise.
12643         * errors.c: Likewise.
12644         * errors.h: Likewise.
12645         * except.c: Likewise.
12646         * except.h: Likewise.
12647         * explow.c: Likewise.
12648         * expmed.c: Likewise.
12649         * expr.c: Likewise.
12650         * expr.h: Likewise.
12651         * final.c: Likewise.
12652         * fix-header.c: Likewise.
12653         * flow.c: Likewise.
12654         * fold-const.c: Likewise.
12655         * function.c: Likewise.
12656         * function.h: Likewise.
12657         * gcc.c: Likewise.
12658         * gcov-io.h: Likewise.
12659         * gcov.c: Likewise.
12660         * gcse.c: Likewise.
12661
12662 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12663
12664         * sh-protos.h: New file.
12665
12666         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
12667         Add static prototypes.  Fix compile time warnings.
12668
12669         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
12670         * sh.md: Likewise.
12671         * elf.h: Likewise.
12672
12673 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12674
12675         * arc-protos.h: New file.
12676
12677         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
12678         time warnings.
12679
12680         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
12681         warnings.
12682
12683         * arc.md: Likewise.
12684
12685 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12686
12687         * dsp16xx-protos.h: New file.
12688
12689         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
12690         time warnings.
12691
12692         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
12693         warnings.
12694
12695         * dsp16xx.md: Likewise.
12696
12697 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12698
12699         * convex-protos.h: New file.
12700
12701         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
12702         time warnings.
12703
12704         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
12705         warnings.
12706
12707 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12708
12709         * elxsi-protos.h: New file.
12710
12711         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
12712         time warnings.
12713
12714         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
12715         warnings.
12716
12717         * elxsi.md: Likewise.
12718
12719 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
12720
12721         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
12722         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
12723         match the comment for MIPS16.
12724
12725 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
12726
12727         * flow.c (split_edge): Do not call set_block_for_insn if we
12728         do not have a basic_block_for_insn structure.
12729
12730         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
12731         and destination functions are 32bit aligned within the trampoline.
12732         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
12733         (TRAMPOLINE_ALIGNMENT): Define.
12734
12735         * cse.c (cse_insn): When changing (set (pc) (reg)) to
12736         (set (pc) (label_ref)), verify the change creates a valid insn.
12737
12738         * fr30.c (call_operand): Tighten and rework to match rules for
12739         call RTL expressions.
12740         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
12741         * fr30.md (call patterns): Improve constraints.
12742
12743 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
12744
12745         * fr30.c (fr30_expand_epilogue): Revert last change.
12746         Use emit_jump_insn for the return insn.
12747
12748 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
12749                           Stan Cox  <scox@cygnus.com>
12750
12751         * predict.c: New file. Preliminary infrastructure work for static
12752         branch prediction and basic block reordering.
12753         * basic-block.h: Add prototype for estimate_probability.
12754         * Makefile.in: Add rules for predict.o.
12755
12756 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
12757
12758         * fixincludes (va_list): Use __not_va_list__ for the dummy.
12759         * fixinc/*: Likewise.
12760
12761 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12762
12763         * cccp.c: PROTO -> PARAMS.
12764         * cexp.y: Likewise.
12765         * collect2.c: Likewise.
12766         * combine.c: Likewise.
12767         * convert.h: Likewise.
12768         * cse.c: Likewise.
12769         * dbxout.c: Likewise.
12770         * dbxout.h: Likewise.
12771         * diagnostic.c: Likewise.
12772         * doprint.c: Likewise.
12773         * dwarf2out.c: Likewise.
12774         * dwarf2out.h: Likewise.
12775         * dwarfout.c: Likewise.
12776         * dwarfout.h: Likewise.
12777         * dyn-string.h: Likewise.
12778
12779 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12780
12781         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
12782         macro conditionals guarding use.
12783
12784         * dwarf2out.c: Include "tm_p.h".
12785
12786         * function.c (locate_and_pad_parm): Mark parameter with
12787         ATTRIBUTE_UNUSED.
12788         (expand_function_end): Likewise for variable `context'.
12789
12790         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
12791
12792 2000-01-13  Nick Clifton  <nickc@cygnus.com>
12793
12794         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
12795         register to prevent compile time warnings.
12796
12797 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
12798
12799         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
12800         to avoid -Wtraditional warning.
12801
12802 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12803
12804         * 1750a-protos.h: New file.
12805
12806         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
12807         time warnings.
12808
12809         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
12810         warnings.
12811
12812         * 1750a.md: Likewise.
12813
12814 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12815
12816         * a29k-protos.h: New file.
12817
12818         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
12819         time warnings.
12820
12821         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
12822         warnings.
12823
12824 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12825
12826         * clipper-protos.h: New file.
12827
12828         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
12829         time warnings.
12830
12831         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
12832         warnings.
12833
12834 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12835
12836         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
12837
12838 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
12839
12840         * configure.in (--enable-new-gxx-abi): New option.
12841         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
12842         * Makefile.in (GXX_ABI_FLAG): New variable.
12843         * configure: Regenerate.
12844
12845 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12846
12847         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
12848         * tm.texi (FORCE_STRUCT_BLK): Document.
12849         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
12850
12851 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
12852
12853         * config/ns32k/ns32k.md: Revert Jan 9 change.
12854
12855         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
12856         to a mode-test, if the predicate is address_operand.
12857
12858 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
12859
12860         * combine.c (if_then_else_cond): Be careful about what kinds
12861         of RTL expressions are passed to operand_subword.
12862
12863         * flow.c (split_edge): If we have to insert a new jump, make
12864         sure to associate it with a basic block.
12865
12866         * flow.c (commit_one_edge_insertion): A block with one successor
12867         can end in a JUMP_INSN that is not a simplejump.
12868
12869 2000-01-12  Robert Lipe  <robertl@sco.com>
12870
12871         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
12872         (BUILD_VA_LIST_TYPE): Define.
12873         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
12874         with crtstuff.c.
12875
12876 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
12877
12878         * cccp.c (do_pragma): Add cast to (char *).
12879
12880 2000-01-12  Richard Henderson  <rth@cygnus.com>
12881             Fred Fish  <fnf@be.com>
12882             Jason Merrill  <jason@cygnus.com>
12883
12884         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
12885         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
12886         * i386/beos-elf.h, i386/beos-pe.h: New files.
12887
12888         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
12889         * cross-make (SYSTEM_HEADER_DIR): Define using
12890         CROSS_SYSTEM_HEADER_DIR.
12891
12892         * gcc.c (LIBRARY_PATH_ENV): Provide default.
12893         (process_command): Use it.
12894         (main): Likewise.  Kill trailing = from env vars.
12895         (build_search_list): Put it back.
12896         * collect2.c (main): Use LIBRARY_PATH_ENV.
12897
12898         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
12899         * toplev.c: Use NEED_DECLARATION_ENVIRON.
12900
12901         * tm.texi (Frame Layout): Document SMALL_STACK.
12902         * c-common.c (c_common_nodes_and_builtins): Check it.
12903
12904         * system.h: Undef alloca after including glibc's <stdlib.h>,
12905         if USE_C_ALLOCA is defined.
12906
12907         * gcc.c (set_input): New fn.
12908         (main): After all input files are compiled, reset the input file
12909         info to the first.
12910
12911         * aclocal.m4 (rindex, index): If already defined, don't attempt
12912         to redefine.
12913
12914         * ginclude/varargs.h: (__va_list__): Define ifndef.
12915         * ginclude/stdarg.h: Likewise.
12916
12917         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
12918         instead of unsigned char.
12919
12920         * hash.h (true, false, boolean): Undef before enum.
12921
12922         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
12923         proper type of "HOST_WIDE_INT *", rather than their natural type of
12924         "unsigned HOST_WIDE_INT *".
12925
12926 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12927
12928         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
12929
12930         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
12931
12932         * regclass.c (choose_hard_reg_mode): Likewise.
12933
12934         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
12935
12936         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
12937
12938 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12939
12940         * c-common.c: PROTO -> PARAMS.
12941         * c-common.h: Likewise.
12942         * c-decl.c: Likewise.
12943         * c-iterate.c: Likewise.
12944         * c-lang.c: Likewise.
12945         * c-lex.c: Likewise.
12946         * c-lex.h: Likewise.
12947         * c-parse.in: Likewise.
12948         * c-pragma.c: Likewise.
12949         * c-pragma.h: Likewise.
12950         * c-tree.h: Likewise.
12951         * c-typeck.c: Likewise.
12952         * objc/objc-act.c: Likewise.
12953         * objc/objc-act.h: Likewise.
12954
12955 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12956
12957         * m88k-protos.h: New file.
12958
12959         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
12960         time warnings.
12961
12962         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
12963
12964         * m88k.md: Likewise.
12965
12966         * tekXD88.h: Likewise.
12967
12968 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12969
12970         * m68k-protos.h: New file.
12971
12972         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
12973         time warnings.
12974
12975         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
12976
12977         * mot3300.h: Likewise.
12978
12979 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
12980
12981         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
12982         extract_bitlst.
12983         (extract_bitlist): Declare bitlen.
12984
12985 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
12986
12987         * cccp.c: Accept and ignore -lang-fortran.
12988
12989         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
12990         qualifiers don't match at any level of pointerness.
12991
12992 2000-01-12  Robert Lipe  <robertl@sco.com>
12993
12994         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
12995
12996 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
12997
12998         * reload1.c (reload_reg_unavailable): New static variable.
12999         (reload_reg_free_p): Test it.
13000         (reload_reg_free_for_value_p): Test it instead of
13001         reload_reg_used.
13002         (choose_reload_regs_init): Compute it.
13003
13004 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
13005
13006         * reorg.c (fill_slots_from_thread): Check modified_in_p
13007         before replacing.
13008
13009 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
13010
13011         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
13012         these nodes even if INTERNALS is not set.
13013
13014 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
13015
13016         * gcse.c (delete_null_pointer_checks_1): Cope when
13017         get_condition cannot determine the condition.
13018
13019 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
13020
13021         * toplev.h (set_message_length): Declare.
13022
13023         * diagnostic.c (obstack_chunk_alloc): Define macro.
13024         (obstack_chunk_free): Likewise.
13025         (struct output_buffer): New data structure.
13026         (vmessage): Remove.
13027         (output_maximum_width): New variable.
13028         (doing_line_wrapping, set_message_length, init_output_buffer,
13029         get_output_prefix, output_space_left, emit_output_prefix,
13030         output_newline, output_append, output_puts, dump_output,
13031         vbuild_message_string, build_message_string, build_location_prefix,
13032         voutput_notice, output_printf, line_wrapper_printf,
13033         vline_wrapper_message_with_location):  New functions. Implement
13034         automatic line wrapping.
13035         (v_message_with_decl): Make it handle automatic line wrapping.
13036         (v_error_with_file_and_line): Likewise.
13037         (v_warning_with_file_and_line): Likewise.
13038         (announce_function): Likewise.
13039         (default_print_error_function): Likewise.
13040
13041 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
13042
13043         * cpplib.h (struct cpp_options): Change lang_asm to char.
13044         Add lang_fortran.
13045         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
13046         done in cpp_handle_option now.
13047         (initialize_builtins): Take out special case code used only by
13048         __STDC_VERSION__.
13049         (cpp_handle_option): Turn off trigraphs and trigraph warnings
13050         if -traditional.  Recognize -lang-fortran and set
13051         lang_fortran, also turn off cplusplus_comments.
13052         (print_help): Document -lang-fortran.
13053         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
13054         lang_asm. Ignore all directives other than `# 123 "file"' if
13055         CPP_PREPROCESSED.
13056         (cpp_get_token): If -traditional, don't recognize directives
13057         unless the # is in column 1.
13058         (parse_string): If lang_fortran or lang_asm, silently
13059         terminate strings ('' or "") at end of line.
13060         Remove unnecessary braces.
13061
13062 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13063             Richard Henderson  <rth@cygnus.com>
13064
13065         * resource.c (mark_referenced_resources): Mark a set strict_low_part
13066         as used.
13067         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
13068         strict_low_part when possible.
13069
13070 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13071
13072         * alias.c: PROTO -> PARAMS.
13073         * basic-block.h: Likewise.
13074         * bitmap.c: Likewise.
13075         * bitmap.h: Likewise.
13076         * builtins.c: Likewise.
13077         * c-aux-info.c: Likewise.
13078         * caller-save.c: Likewise.
13079         * calls.c: Likewise.
13080
13081 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13082
13083         * Makefile.in (toplev.o): Depend on regs.h.
13084
13085         * output.h (tdesc_section): Prototype.
13086
13087         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
13088
13089         * sdbout.c: Include "tm_p.h".
13090
13091         * toplev.c: Include "regs.h".
13092
13093 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
13094
13095         * unroll.c (unroll_loop): Add EH support.
13096
13097 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13098
13099         * pa-protos.h: New file.
13100
13101         * pa.c: Include recog.h and tm_p.h.
13102         (compute_zdepwi_operands, compute_movstrsi_length,
13103         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
13104         find_addr_reg, import_milli): Add static prototypes.
13105         (pa_cpu_string, pa_arch_string): Constify a char*.
13106         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
13107         (read_only_operand): Add argument `mode'.
13108         (singlemove_string, output_move_double, output_fp_move_double,
13109         output_block_move, output_and, output_ior, output_ascii,
13110         remove_useless_addtr_insns, milli_names, output_mul_insn,
13111         output_div_insn, output_mod_insn, output_arg_descriptor,
13112         output_cbranch, output_bb, output_bvb, output_dbra, ,
13113         output_millicode_call, output_call, hppa_encode_label,
13114         output_parallel_movb, output_parallel_addb): Constify a char*.
13115         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
13116         (output_parallel_addb): Remove extra arg to `constrain_operands'
13117
13118         * pa.h:  Move all prototypes to pa-protos.h.
13119         (pa_cpu_string, pa_arch_string): Constify a char*.
13120         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
13121
13122         * pa.md: Call `function_label_operand' with mode argument.
13123         Likewise for `read_only_operand'.
13124         Fix nesting of parens in call to `symbolic_operand'.
13125
13126 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13127
13128         * i860-protos.h: New file.
13129
13130         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
13131         time warnings.
13132
13133         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
13134
13135         * i860.md: Likewise.
13136
13137 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
13138
13139         * i386.md (movstrsi expander): Rewrite.
13140         (movstrsi_1 insn): Deleted.
13141         (strmovhi, strmovqi expander): New expanders.
13142         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
13143         * i386.c (x86_single_stringop): New global variable.
13144         * i386.h (x86_single_stringop): Declare.
13145         (TARGET_SINGLE_STRINGOP): New macro.
13146
13147 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
13148
13149         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
13150         integer vararg POSTINCREMENT before the destination of the jump
13151         for the hard fp case.
13152         (function_arg_pass_by_reference): Pass a copy of CUM to
13153         FUNCTION_ARG.
13154
13155         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
13156         for CONSTANT_ADDRESS_P above while loop for subreg.
13157
13158 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
13159
13160         * flow.c (propagate_block): When a prologue/epilogue insn
13161         is marked dead, unconditionally clear libcall_is_dead and
13162         insn_is_dead, and only dump rtl if warnings aren't being
13163         suppressed.
13164
13165 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
13166
13167         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
13168         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
13169         (FIXED_REGISTERS): Set dirflag as fixed.
13170         (CALL_USED_REGISTERS): Set dirflag as used.
13171         (REG_ALLOC_ORDER): Set dirflag as last one.
13172         (DIRFLAG_REG): New macro.
13173         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
13174         (HI_REGISTER_NAMES): Add dirflag.
13175         (DEBUF_PRINT_REG): Handle dirflag.
13176         * i386.md (type attribute): New cld and str types.
13177         (length_opcode attribute): Set cld and str to 1.
13178         (memory attribute): Set str to unknown - it is not clear from the
13179         patterns.
13180         (pent_np function unit): Prefixed string operations takes 12 cycles
13181         minimally; cld takes 2 cycles.
13182         (ppro_uops attribute): Str is "many" and cld is "few".
13183         (ppro_p0 unit): Handle cld here.
13184         (k6_alux unit): Handle cld and str types.
13185         (k6_load unit): It is ocupied by str opcodes.
13186         (k6_store unit): It is ocupied by str opcodes.
13187         (athlon_decode): Str is vector decoded.
13188         (athlon_ieu): Handle str and cld.
13189         (cld pattern): New.
13190         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
13191         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
13192         cmpstrsi_nz_1 insn): Do not output cld instruction
13193
13194 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
13195
13196         * gcc.texi (G++ and GCC): Add Java and Chill.
13197         (Bug Critera): Don't list languages.
13198
13199         * gcc.texi (Incompatibilities): No longer claim most C compilers
13200         are K&R.
13201
13202         * gcc.texi (G++ and GCC): Update other front-ends list.
13203
13204 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
13205
13206         * i386.c (ix86_expand_setcc): Fix typo.
13207         (ix86_expand_movcc): Similarly.
13208
13209         * Band-aid until haifa's bitset implementation is nuked.
13210         * haifa-sched.c (extract_bitlst): New parameter for size of the
13211         bitset in bits.  All callers changed.  Avoid looking at undefined
13212         bits in the bitset.
13213         (edgeset_bitsize): New variable.
13214         (schedule_region): Initialize edgeset_bitsize.
13215
13216 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13217
13218         * Makefile.in (optabs.o): Depend on real.h
13219         (resource.o): Depend on insn-attr.h
13220
13221         * builtins.c (result_vector): Wrap prototype in macro conditions
13222         governing definition and use.
13223
13224         * c-common.c: Include tm_p.h.
13225
13226         * c-lex.c: Likewise.
13227
13228         * elfos.h: Constify a char*.
13229
13230         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
13231         (get_attr_length, shorten_branches, profile_after_prologue): Mark
13232         parameter with ATTRIBUTE_UNUSED.
13233
13234         * fold-const.c (exact_real_inverse): Wrap variable `i' in
13235         CHECK_FLOAT_VALUE.
13236
13237         * haifa-sched.c (schedule_insns): Mark parameter with
13238         ATTRIBUTE_UNUSED.
13239
13240         * optabs.c: Include real.h.
13241
13242         * real.h (ereal_atof): Add prototype arguments.
13243
13244         * resource.c: Include insn-attr.h.
13245
13246         * sdbout.c (sdbout_queue_anonymous_type,
13247         sdbout_dequeue_anonymous_types): Wrap in macro
13248         SDB_ALLOW_FORWARD_REFERENCES.
13249         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
13250         ATTRIBUTE_UNUSED.
13251
13252         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
13253
13254         * stupid.c: Include tm_p.h.
13255
13256         * tree.c (real_value_from_int_cst): Mark parameter with
13257         ATTRIBUTE_UNUSED.
13258
13259 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13260
13261         * i960-protos.h: New file.
13262
13263         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
13264         time warnings.
13265
13266         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
13267
13268 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13269
13270         * combine.c (expand_field_assignment): Do not discard SUBREGs
13271         while computing nonzero_bits.
13272
13273 2000-01-09  Nick Clifton  <nickc@cygnus.com>
13274
13275         * config/arm/arm.c: Fix compile time warnings about signed vs
13276         unsigned constants.
13277         * config/arm/arm.h: Fix compile time warnings about signed vs
13278         unsigned constants.
13279
13280 2000-01-09  Philip Blundell  <philb@gnu.org>
13281
13282         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
13283         than `ldm' with only one register.
13284         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
13285         only one register.
13286
13287         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
13288         clobbered.
13289
13290 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
13291
13292         * config/ns32k/ns32k.md (load or push effective address): Operand 1
13293         must have SImode.
13294
13295 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13296
13297         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
13298         assignment used as truth value.
13299
13300         * function.c (assign_temp): Mark parameter `dont_promote' with
13301         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
13302         PROMOTE_FOR_CALL_ONLY.
13303
13304         * genrecog.c (write_subroutine): Mark variable `operands' with
13305         ATTRIBUTE_UNUSED.
13306
13307         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
13308         ATTRIBUTE_UNUSED.
13309
13310         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
13311         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
13312
13313         * toplev.c (note_deferral_of_defined_inline_function): Likewise
13314         for `decl'.
13315
13316 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13317
13318         * config/c4x.h: Tidy up comments.
13319         * config/c4x.c: Likewise.
13320
13321 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
13322
13323         * fold-const.c (lshift_double, rshift_double): Handle
13324         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
13325
13326 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13327
13328         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
13329         in prepare_function_start().
13330
13331 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
13332
13333         * config/v850/v850.c (expand_epilogue): Interrupt functions no
13334         longer allocate extra stack for function calls.
13335
13336 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13337
13338         * config/c4x/c4x.md (*subqf3_set): Fix typo.
13339
13340 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13341
13342         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
13343
13344 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
13345
13346         * rs6000.c (processor_target_table): Add power3 as alias for 630.
13347         * aix43.h: Revert Aug 2 change.
13348         (HAS_INIT_SECTION): Define, not visible yet.
13349         (LD_INIT_SWITCH): Define, not visible yet.
13350         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
13351
13352         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
13353
13354         * collect2.c (main): Expand ld2 size further.
13355         (export_object_lst): Cast assignment to avoid warning.
13356         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
13357         (scan_prog_file, COFF): Do not collect initialization or
13358         finalization functions generated for entire shared object if
13359         init/fini support present.
13360
13361 2000-01-07  Nick Clifton  <nickc@cygnus.com>
13362
13363         * config/elfos.h: Tidy up formatting of marcos.  Make sure
13364         that .section directives are always prefixed by a tab.
13365
13366         * config/svr4.h: Add #include "elfos.h" and remove duplicate
13367         definitions.
13368
13369 2000-01-07  Matt Austern  <austern@sgi.com>
13370
13371         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
13372         expon.
13373
13374 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
13375
13376         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
13377         crtstuff.c.
13378         (crtbegin.o, s-crtS): Likewise.
13379
13380 2000-01-06  Richard Henderson  <rth@cygnus.com>
13381
13382         * alpha.md (adddi_2+1): Limit offset such that it will be
13383         loadable with a single ldah+lda pair.
13384         (adddi_2+2): Explicitly fail split if we can't make it work.
13385
13386 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
13387
13388         * protoize.c: Conditionally include unistd.h.
13389         (IS_SAME_PATH_CHAR): New macro.
13390         (IS_SAME_PATH): New macro.
13391         (CPLUS_FILE_SUFFIX): New macro.
13392         (cplus_suffix): New static variable.
13393         (is_abspath): New static function.
13394         (in_system_include_dir): Handle DOS style pathnames.
13395         (file_could_be_converted): Likewise.
13396         (file_normally_convertible): Likewise.
13397         (directory_specified_p): Likewise.
13398         (file_excluded_p): Likewise.
13399         (abspath): Likewise.
13400         (shortpath): Likewise.
13401         (referenced_file_is_newer): Likewise.
13402         (save_def_or_dec): Likewise.
13403         (do_processing): Likewise.
13404         (main): Likewise.
13405         (edit_file): Likewise. Use rename instead of link.
13406         (rename_c_file): Likewise. Don't rename syscalls file.
13407         (munge_compile_params): Define null device for DOS based systems.
13408         (process_aux_info_file): Use binary mode if appliable.
13409         (edit_file): Likewise.
13410         * invoke.texi (Running Protoize): Document C++ suffixes used.
13411
13412         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
13413         IS_DIR_SEPARATOR macros.
13414         * collect2.c: Likewise.
13415         * cppinit.c: Likewise.
13416         * dwarf2out.c: Likewise.
13417         * gcc.c: Likewise.
13418         * gcov.c: Likewise.
13419         * prefix.c: Likewise.
13420         * rtl.c: Likewise.
13421         * toplev.c: Likewise.
13422         * system.h: And move to here.
13423
13424         * prefix.c (update_path): Fix typo in variable name.
13425
13426 2000-01-06  Richard Henderson  <rth@cygnus.com>
13427
13428         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
13429         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
13430         (count_reg_sets_1, count_reg_references): Likewise.
13431         (flow_loops_level_compute): Start counting actual loop depth at 1.
13432         (flow_loops_find): Likewise.
13433         * local-alloc.c (update_equiv_regs): Likewise.
13434         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
13435
13436 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
13437
13438         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
13439         FIRST_PSEUDO_REGISTER
13440         * dwarf2out.c: Don't include frame.h
13441         * dwarfout.c: Likewise
13442         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
13443         frame.h
13444
13445 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
13446
13447         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
13448         dead registers.
13449
13450         * i386.c (movsf splitter): Fix typo in my last checkin.
13451
13452 2000-01-05  Nick Clifton  <nickc@cygnus.com>
13453
13454         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
13455         own definition of this macro.
13456         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
13457         flag_data_sections or UNIQUE_SECTION_P are true.
13458
13459         * tm.texi (UNIQUE_SECTION): Document that it can be called for
13460         unitialised data decls.
13461
13462         * config/i386/winnt.c (i386_pe_unique_section): Cope with
13463         being called for uninitialised data.
13464
13465         * config/i386/interix.c (i386_pe_unique_section): Cope with
13466         being called for uninitialised data.
13467
13468         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
13469         for uninitialised data.
13470
13471         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
13472         for uninitialised data.
13473
13474         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
13475         for uninitialised data.
13476
13477         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
13478         (UNIQUE_SECTION_P): Always generate a unique section if
13479         flag_data_sections is true.
13480         (UNIQUE_SECTION): Also generate unique sections for
13481         uninitialised data.
13482         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
13483         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
13484         named_section().
13485
13486 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13487
13488         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
13489         SI, or DI.
13490
13491 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13492
13493         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
13494         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
13495         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
13496         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
13497         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
13498
13499         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
13500
13501 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
13502
13503         * c-decl.c (finish_enum): Simplify code to determine minimum and
13504         maximum values of the enum, and calculate the type.  Remove check
13505         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
13506         the DECL_INITIAL of each enumeration constant with a copy converted
13507         to the enumeration type.  When updating variant types, don't bother
13508         updating the type itself.
13509
13510         * c-typeck.c (build_binary_op): Simplify conditional expressions
13511         when weeding out spurious signed-unsigned warnings.  Add new
13512         spurious warning category: if the unsigned quantity is an enum
13513         and its maximum value fits in signed_type(result_type).  Update
13514         commentary.
13515         (build_conditional_expr): Warn here if one alternative is signed
13516         and the other is unsigned.
13517
13518 2000-01-05  Nick Clifton  <nickc@cygnus.com>
13519
13520         * config/fr30/fr30.h: Remove extraneous comments.
13521
13522 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
13523
13524         * reload1.c (choose_reload_regs): When disabling a reload, also
13525         set reload_spill_index to -1.
13526
13527 2000-01-04  Joel Sherrill (joel@OARcorp.com>
13528
13529         * configure.in (m68*-*-rtemscoff*): New target, formal name for
13530         old m68*-*-rtems*.
13531         (m68*-*-rtemself*): New target.
13532         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
13533         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
13534         (sparc*-*-rtemself*): New target.
13535         (sparc*-*-rtems*): Now elf not a.out.
13536         * config/i386/rtems.h: Include config/rtems.h.
13537         * config/i386/rtemself.h: Include config/rtems.h.
13538         * config/i960/rtems.h: Include config/rtems.h.
13539         * config/m68k/rtems.h: Include config/rtems.h.
13540         * config/m68k/rtemself.h: Include config/rtems.h.
13541         * config/mips/rtems64.h: Include config/rtems.h.
13542         * config/pa/rtems.h: Include config/rtems.h.
13543         * config/rs6000/rtems.h: Include config/rtems.h.
13544         * config/sh/rtems.h: Include config/rtems.h.
13545         * config/sh/rtemself.h: Include config/rtems.h.
13546         * config/sparc/rtems.h: Include config/rtems.h.
13547         * config/sparc/rtemself.h: Include config/rtems.h
13548
13549 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
13550
13551         * final.c (shorten_branches): Correctly compute length of
13552         asms without operands.
13553
13554 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
13555
13556         * configure.in: Add pj target.
13557         * configure: Regenerate.
13558         * config/pj: New directory.
13559         * config/pj/lib1funcs.S: New file.
13560         * config/pj/linux.h: New file.
13561         * config/pj/pj.c: New file.
13562         * config/pj/pj.md: New file.
13563         * config/pj/pjl.h: New file.
13564         * config/pj/t-pj: New file.
13565         * config/pj/xm-pj.h: New file
13566
13567 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
13568
13569         * toplev.c (rest_of_compilation): Run shorten-branches before
13570         reg-stack for now.
13571
13572 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13573
13574         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
13575         macros so that they're consistent with their names.
13576         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
13577         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
13578
13579 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13580
13581         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
13582         modified inadvertently.
13583
13584 2000-01-04  Joel Sherrill <joel@OARcorp.com>
13585
13586         * configure.in (v850*-*-rtems*): New target.
13587         * configure: Regenerate.
13588         * config/v850/rtems.h: New file.
13589
13590 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
13591
13592         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
13593         (__gthread_key_create): Likewise.
13594         (__gthread_key_dtor):  Likewise.
13595         (__gthread_once): Fix logic.
13596         (__gthread_key_delete): Cast away constness.
13597
13598         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
13599         * invoke.texi: Document.
13600         * i386/mingw32.h (CPP_SPEC): Use.
13601         (LIBGCC_SPEC): Likewise.
13602         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
13603
13604 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
13605
13606         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
13607         (HANDLE_PRAGMA_PACK): Undefine.
13608         (SLOW_UNALIGNED_ACCESS): Define.
13609
13610 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
13611
13612         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
13613         to default definition.
13614         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
13615         (store_fixed_bit_field): Call macro with word_mode and alignment.
13616         (extract_bit_field): Call macro with relevant mode and alignment.
13617         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
13618         to default definition.
13619         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
13620         and alignment.
13621         (move_by_pieces_ninsns): Likewise.
13622         (clear_by_pieces): Likewise.
13623         (emit_push_insn): Likewise.
13624         (store_field): Call macro with relevant mode and alignment.
13625         (expand_expr): Likewise.
13626         (expand_expr_unaligned): Likewise.
13627
13628         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
13629         (SLOW_UNALIGNED_ACCESS): Define.
13630         (CASE_VECTOR_MODE): Always use 32-bit offsets.
13631         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
13632         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
13633         (toc_section): Likewise and .toc pseudo-op.
13634         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
13635         64-bit mode.
13636         (TEXT_SECTION_ASM_OP): Likewise.
13637         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
13638         32-bit offsets.
13639
13640         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
13641         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
13642         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
13643         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
13644         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
13645
13646 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
13647
13648         * regclass.c: Revert my Jan 4 change to loop cost computation.
13649
13650 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13651
13652         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
13653         compilation.
13654
13655 2000-01-04  Stan Cox  <scox@cygnus.com>
13656
13657         * haifa-sched.c (build_control_flow): Change unreachable simple
13658         loop test to check if current block has only one predecessor.
13659         (find_rgns): Initialize degree.  Use dest as degree index, not src.
13660
13661 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13662
13663         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
13664
13665         * calls.c (expand_call): Likewise for
13666         `old_stack_arg_under_construction'.
13667
13668         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
13669
13670         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
13671         `save_constant'.
13672
13673         * gcc.c (execute): Likewise for `ut' and `st'.
13674
13675         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
13676
13677         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
13678
13679         * jump.c (jump_optimize_1): Likewise for `temp2'.
13680
13681         * local-alloc.c (block_alloc): Likewise for `r1'.
13682
13683         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
13684
13685         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
13686         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
13687
13688         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
13689         and `set2'.
13690
13691         * reload.c (find_reloads): Likewise for `goal_alternative_number'
13692         and `goal_earlyclobber'.
13693
13694         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
13695
13696         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
13697
13698         * stupid.c (stupid_life_analysis): Likewise for `chain'.
13699
13700         * unroll.c (copy_loop_body): Likewise for `copy'.
13701
13702         * varasm.c (output_constructor): Likewise for `byte'.
13703
13704 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13705
13706         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
13707         all FP constants for constant->reg moves.
13708         (ix86_split_to_parts): Try to convert memory address into immediate
13709         when available in the constant pool.
13710         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
13711         moves.
13712         (LEGITIMATE_CONSTANT_P): Return 1.
13713         * i386.md (pushsf): New splitter to convert constant pool memory
13714         reference to immediate.
13715         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
13716         reload.
13717
13718 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
13719
13720         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
13721         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
13722         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
13723         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
13724         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
13725
13726 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
13727
13728         * ginclude/stdbool.h:  Support compilation as C++.
13729
13730 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13731
13732         * fold-const.c (make_range): Don't try to reverse an unbounded range.
13733
13734 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
13735
13736         * regclass.c (regclass): Properly compute loop_cost.  Adjust
13737         comments.
13738
13739         * regclass.c: Fix minor whitespace problems.
13740
13741 2000-01-03  Anthony Green  <green@cygnus.com>
13742
13743         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
13744         Restore the pic register if required.
13745
13746 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
13747
13748         * c-common.c (format_char_info): Update comment.
13749         (check_format_info): Recognize 'z' modifier in the same way 'Z'
13750         was recognized.  Emit warning for formats new in ISO C99 only
13751         if flag_isoc9x is not set.
13752
13753 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
13754
13755         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
13756
13757 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13758
13759         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
13760         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
13761         (make_compound_operation): Choose cheaper alternative between
13762         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
13763
13764         * regclass.c (op_costs): Remove global variable.
13765         (record_reg_classes): New parameter "op_costs" and "reg_pref".
13766         (record_operand_costs): Break out from ...
13767         (scan_one_insn): ... here.
13768         (dump_regclass): Make dumps nicer.
13769         (regclass): Dump preferrences choosed and changes done during passes.
13770
13771 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
13772
13773         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
13774
13775 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
13776
13777         * config/sparc/sparc.c (gen_df_reg): New function.
13778         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
13779         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
13780         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
13781         movtf_cc_reg_sp64+1): Use it.
13782
13783 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
13784
13785         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
13786         copied LABEL_DECLs.
13787
13788 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
13789
13790         * config/i386/i386.c (ix86_expand_unary_operator): Function
13791         definition made void.
13792         (ix86_expand_binary_operator): Update outdated preceding comment.
13793         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
13794         prototype.
13795
13796         * config/i386/i386.c (override_options): Fix option-name typo.
13797
13798 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
13799
13800         * system.h (CEIL): Define.
13801         * builtins.c (CEIL): Remove.
13802         * expmed.c (CEIL): Likewise.
13803         * expr.c (CEIL): Likewise.
13804         * stor-layout.c (CEIL): Likewise.
13805
13806 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
13807
13808         * expr.c (store_constructor_field): Fix typo introduced with last
13809         gcc2 merge.
13810
13811 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
13812
13813         * tree.h (BINFO_N_BASETYPES): New macro.
13814
13815 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
13816
13817         * expmed.c (emit_store_flag): Prevent losing a pending stack
13818         adjust the same way we prevent losing queued increments.
13819
13820 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13821
13822         * function.c (update_temp_slot_address): Handle case where sum of
13823         temporary address plus offset in register is a valid address.
13824
13825 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
13826
13827         * genrecog.c (change_state) Corrected typo.
13828
13829 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13830
13831         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
13832         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
13833         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
13834
13835 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
13836
13837         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
13838         case, expand GT comparisons correctly.  Fix a comment before this
13839         part of the code.
13840
13841 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
13842
13843         * dwarfout.c: Include "frame.h"
13844         * dwarf2out.c: Likewise.
13845         * Makefile.in (dwarfout.o): Depend on frame.h
13846         (dwarf2out.o): Likewise.
13847
13848 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
13849
13850         Restore i386 binary compatibility in Dwarf EH info.
13851         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
13852         value of FIRST_PSEUDO_REGISTER.
13853         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
13854         (struct frame_state): Use DWARF_FRAME_REGISTERS.
13855         * dwarfout.c (output_reg_number): Ditto.
13856         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
13857         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
13858
13859 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
13860
13861         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
13862         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
13863         (<hack>_RE_CT): not needed
13864         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
13865         rewritten to scan the file text once only
13866         "template<..." test added
13867         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
13868         (is_cxx_header): declaration added
13869         * fixinc/fixtests.c(is_cxx_header): removed
13870         (apply_fix_p_t): removed
13871         (double_slash_test): is_cxx_header is only called once now
13872         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
13873         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
13874         within the templates.
13875         The borken spelling of "broken" was fixed.
13876         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
13877         The default level depends on FIXINC_DEBUG.
13878
13879 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13880
13881         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
13882         Otherwise provide a declaration for atexit.
13883         (init_dummy): Make sure dummy call to atexit is nevertheless
13884         called with correct number of args.
13885
13886         * frame.c: Update comments referring to other files.
13887
13888         * libgcc2.c: Likewise.
13889
13890 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13891
13892         * cse.c (free_element, get_element): Remove unused prototypes.
13893
13894         * fold-const.c (extract_muldiv): Initialize variables `op0' and
13895         `op1'.
13896
13897         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
13898         `else' clauses.
13899
13900 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
13901
13902         * configure.in,configure: case arm for mn10200-*-* now sets
13903         float_format=i32 so that float.h will correctly claim "double"
13904         to be 32 bits. Ran autoconf to generate configure from .in file.
13905
13906 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
13907
13908         * pa.md (conditional zero): If op1 is a register, force it into
13909         the same register as op0.
13910
13911 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
13912
13913         * tree.h (BINFO_BASETYPES): Improve documentation.
13914
13915 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13916
13917         * configure.in (--enable-checking): Use a more portable `for'
13918         loop syntax.
13919
13920 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13921
13922         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
13923         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
13924
13925         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
13926         Delete files.
13927
13928         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
13929         Delete descriptions.
13930
13931         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
13932         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
13933         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
13934         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
13935         xm-svr4.h: Remove all instances of sys_siglist handling.
13936
13937 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
13938
13939         * config/sparc/sparc.md (cmp_zero_qi,
13940         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
13941         cmp_zero_extendqidi2_andcc_set): New patterns.
13942
13943 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
13944
13945         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
13946         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
13947         (fpgnulib.c, xfgnulib.c): Add rules.
13948         * m68k/t-mot3300-gas: Likewise.
13949
13950 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
13951
13952         * configure.in: Avoid [[ by using test and changequote.  Add
13953         changequote required by 1999-12-14 change.
13954         * configure: Rebuild.
13955
13956 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
13957
13958         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
13959
13960 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
13961
13962         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
13963         * flow.c (find_use_as_address): Likewise.
13964         * function.c (fixup_var_refs_1): Likewise.
13965         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
13966         * jump.c (invert_exp, redirect_exp): Likewise.
13967         * loop.c (replace_call_address): Likewise.
13968         (count_nonfixed_reads): Likewise.
13969         * rtlanal.c (modified_between_p): Likewise.
13970         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
13971         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
13972         * unroll.c (remap_split_bivs): Likewise.
13973
13974 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13975
13976         * diagnostic.c (v_message_with_decl): Use .* format specifier
13977         instead of building the format specifier width manually.
13978
13979         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
13980         determining whether to provide a prototype.  Remove the
13981         sys_siglist clause in the conditional.
13982
13983 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13984
13985         * fold-const.c (operand_equal_p): Use memcmp to compare string
13986         constants.
13987         Suggested by D. J. Bernstein
13988
13989 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
13990
13991         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
13992         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
13993         compiling libgcc2.
13994         * config/mips/mips.h (TARGET_64BIT): Likewise.
13995         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
13996         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
13997         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
13998         dsps.  Give routines proper names if SI/DI modes are not used.
13999         * longlong.h: Use DWunion instead of DIunion.
14000
14001 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
14002
14003         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
14004         GC_CHECKING, GC_ALWAYS_COLLECT.
14005         * configure.in: Allow --enable-checking with an argument
14006         listing check modes to enable.
14007         * config.in, configure: Rebuilt.
14008         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
14009         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
14010         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
14011         ENABLE_GC_ALWAYS_COLLECT.
14012         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
14013         throughout.
14014         * tree.h, tree.c: Change ENABLE_CHECKING to
14015         ENABLE_TREE_CHECKING throughout.
14016
14017 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14018
14019         * fold-const.c (fold_truthop): Properly check for FP RHS.
14020
14021 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
14022
14023         * toplev.h (note_deferall_of_defined_inline_function): Declare.
14024         * toplev.c (note_deferral_of_defined_inline_function): New
14025         function, split out from ...
14026         (rest_of_compilation): ... here.  Use it.
14027
14028 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14029
14030         * expr.c (store_constructor): Don't call clear_storage if size is
14031         variable.
14032
14033 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14034
14035         * Makefile.in (toplev.o): Depend on loop.h.
14036
14037         * dwarfout.c: Include tm_p.h.
14038
14039         * emit-rtl.c (restore_emit_status): Mark parameter with
14040         ATTRIBUTE_UNUSED.
14041
14042         * final.c (final_scan_insn): Likewise.
14043
14044         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
14045         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
14046         flow_depth_first_order_compute, flow_loop_pre_header_find,
14047         flow_loop_tree_node_add, flow_loops_tree_build,
14048         flow_loop_level_compute, flow_loops_level_compute,
14049         flow_loop_outside_edge_p): Add prototypes.
14050         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
14051
14052         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
14053         Mark with ATTRIBUTE_NORETURN.
14054
14055         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
14056
14057         * local-alloc.c (no_conflict_p): Likewise.
14058
14059         * loop.c (insert_bct): Hide definitions of variables with hidden
14060         usage.
14061         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
14062
14063         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
14064         with ATTRIBUTE_UNUSED.
14065         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
14066         (reg_scan): Likewise.
14067
14068         * reload.c (find_reloads): Remove unused variables `changed'.
14069
14070         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
14071         away const-ness.
14072         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
14073         Remove unused variable `insn'.
14074
14075         * toplev.c: Include loop.h.
14076         (report_file_and_line): Remove unnecessary prototype.
14077
14078         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
14079
14080         * unroll.c (biv_total_increment): Likewise.
14081
14082 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14083
14084         * reload1.c (emit_input_reload_insns): Restore old behaviour
14085         wrt. 'special' reloads.
14086
14087 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
14088
14089         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
14090         hash.h.  (cse.c): Don't depend on hashtab.h.
14091
14092         * cse.c: Don't include hashtab.h.
14093         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
14094         of dead functions.
14095         * ggc-simple.c: Don't include hash.h.
14096
14097 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
14098
14099         * dwarf2out.c (add_abstract_origin_attribute): Call
14100         gen_abstract_function on our function context.
14101
14102 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
14103
14104         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
14105
14106 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14107
14108         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
14109         case in switch.
14110
14111 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14112
14113         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
14114         constraints to "a!r".
14115
14116 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
14117
14118         * Makefile.in (calls.o): Depend on function.h.
14119         (alias.o): Likewise.
14120
14121 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
14122
14123         * reload1.c (emit_reload_insns): Break out code and variables into...
14124         (input_reload_insns, other_input_address_reload_insns,
14125         other_input_reload_insns, input_address_reload_insns,
14126         inpaddr_address_reload_insns, output_reload_insns,
14127         output_address_reload_insns, outaddr_address_reload_insns,
14128         operand_reload_insns, other_operand_reload_insns,
14129         other_output_reload_insns): ... new static variables, and...
14130         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
14131         do_output_reload): ... new functions.
14132
14133 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14134
14135         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
14136
14137 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14138
14139         * md.texi: Add c4x constraints documentation.
14140
14141 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
14142
14143         * config/i386/dgux.c (struct option): Rename to
14144         lang_independent_option.
14145         (struct m_options): Add description field.
14146         (output_options): Rename option type, add sep declaration, output
14147         ix86_cpu_string and ix86_arch_string only if set.
14148         (output_file_start): Rename option type.
14149
14150 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
14151
14152         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
14153         stmp-int-hdrs.
14154         (libgcc2.a): Similarly.
14155
14156 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
14157
14158         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
14159         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
14160         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
14161
14162 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
14163
14164         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
14165         Remove redundant initialization of "frexpon" and "expon".
14166
14167 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14168
14169         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
14170
14171         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
14172         (store_constructor_field, expand_expr): Pass new arg.
14173
14174 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
14175
14176         * Makefile.in (explow.o): Depend on function.h.
14177
14178         * stor-layout.c (set_sizetype): Fix typo.
14179
14180 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
14181
14182         * function.c (cfun): Renamed from current_function.  All users
14183         changed.
14184         * function.h (cfun): Rename declaration as well.
14185
14186         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
14187         to be of type regset_head, not regset.  All users changed by adding
14188         address operator.
14189         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
14190
14191 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14192
14193         * config/c4x/rtems.h: New file.
14194
14195 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
14196
14197         * reload1.c (spill_failure): Take class of failed reload as argument
14198         and print it.  Caller changed.
14199
14200 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14201
14202         * rs6000.h (SUBTARGET_DEFAULT): New macro.
14203         (TARGET_SWITCHES): Allow subtargets to default switches.
14204         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
14205
14206 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
14207
14208         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
14209         in a main program.
14210
14211 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
14212
14213         * cccp.c (main): Define __STDC_VERSION__ as necessary.
14214         * cppinit.c (cpp_handle_option): Likewise.
14215
14216         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
14217         determine when to define.
14218
14219 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
14220
14221         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
14222         cmove with mismatched test and data modes.
14223
14224 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
14225
14226         * c-typeck.c (c_expand_start_case): Don't warn for long switch
14227         in system headers.
14228
14229 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14230
14231         * alias.c: Minor reformatting.
14232         * flow.c: Likewise.
14233         * regs.h: Likewise.
14234         * stor-layout.c: Likewise.
14235         * fold-const.c: Likewise.
14236         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
14237         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
14238         not arg itself.
14239         (size_int_wide): Cache nodes even if garbage collecting.
14240         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
14241         of SAVE_EXPR has no side effects.
14242         * cse.c: Move a comment.
14243         * tree.c: Minor reformatting.
14244         (int_size_in_bytes): Return -1 if constant overflows.
14245
14246 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14247
14248         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
14249
14250 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
14251
14252         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
14253         after any change to c-parse.in, even if objc-parse.y didn't
14254         change.  Oops.
14255
14256 1999-12-18  David S. Miller  <davem@redhat.com>
14257
14258         * toplev.c (rest_of_compilation): Restore BLOCK tree
14259         reconstruction and branch shortening changes lost in
14260         December 18th change.
14261
14262 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
14263
14264         * config/arm/linux-elf.h: Change all instances of
14265         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
14266         * config/arm/uclinux-elf.h: Likewise.
14267
14268 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
14269
14270         * toplev.c (notice, vmessage, v_message_with_file_and_line,
14271         v_message_with_decl, file_and_line_for_asm,
14272         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
14273         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
14274         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
14275         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
14276         pfatal_with_name, fatal_io_error, need_error_newline,
14277         last_error_function, last_error_tick, announce_function,
14278         default_print_error_function, print_error_function,
14279         report_error_function, fnotice, error_with_file_and_line,
14280         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
14281         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
14282         warning_with_decl, warning_for_asm, warning, pedwarn,
14283         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
14284         diagnostic.c
14285         (compile_file): Use fnotice instead of notice.  Adjust call.
14286
14287         * diagnostic.c: New file.
14288
14289         * Makefile.in (OBJS): Include diagnostic.o
14290         (diagnostic.o): Define dependence.
14291
14292 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14293
14294         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
14295         Tweak formatting.
14296
14297 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14298
14299         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
14300
14301 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
14302
14303         * fixtests.c (is_cxx_header): New fn, split out of
14304         double_slash_test.
14305         (else_endif_label): Allow "#endif // comment" in C++ headers,
14306         as determined by is_cxx_header.
14307         * fixfixes.c (else_endif_label_fix): Update comment.
14308         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
14309         a tty.
14310         * genfixes: Correct double thinko in commandline parsing.
14311         * hackshell.tpl: Generate correct sh syntax for bypass
14312         entries.
14313
14314         * inclhack.def (all): Whenever an inserted preprocessor
14315         conditional is split over multiple lines, use double
14316         backslashes in this file so the fixed header will be readable.
14317
14318         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
14319         and add bypass entry for correct version of this header.
14320         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
14321         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
14322
14323         (hpux8_bogus_inlines): New fix, split from...
14324         (ultrix_atof_param) ... here.
14325         (math_expression): Add bypass entry keyed to glibc comment
14326         indicating the problem has been dealt with; disable
14327         unnecessary sed operations; update commentary.
14328         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
14329         add select and bypass entries, simplify shell operation.
14330         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
14331
14332         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
14333          ultrix_atof_param): Add select entry.
14334         (stdio_va_list, sunos_mather_decl): Add bypass entry.
14335         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
14336         comments with the fixes they describe.
14337
14338         * c-parse.in (string action): Do not warn about ANSI string
14339         concatenation in system headers.  Affects C parser only.
14340         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
14341
14342 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
14343
14344         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
14345         compiling libgcc2 the macro depends always on arch cpp defines.
14346
14347 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
14348
14349         * loop.c (insert_loop_mem): Don't record MEMs from inside
14350         EXPR_LISTs.
14351
14352 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
14353
14354         * regclass.c (regclass): Do not use flowgraph when not optimizing.
14355
14356         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
14357         notes too, create one when replacement failed, attempt to simplify
14358         resulting notes.
14359         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
14360         or REG_EQUIV notes.
14361
14362 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
14363
14364         * crtstuff.c (__dso_handle): Declare.
14365         (__cxa_finalize): Likewise.
14366         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
14367         non-NULL.
14368
14369         * invoke.texi: Document -fuse-cxa-atexit.
14370
14371         * tree.h (ptr_type_node): Document.
14372         (const_ptr_type_node): Likewise.
14373
14374 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14375
14376         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
14377         (optimize_reg_copy_2): Likewise.
14378         (optimize_reg_copy_3): Likewise.
14379         (fixup_match_2): Likewise.
14380         (regmove_optimize): Likewise.
14381         (fixup_match_1): Liekwise.
14382
14383         * i386.md (HI to SImode promoting splitters): Rewrite.
14384         (pushsf mem peep2): New.
14385         (testhi to andhi peep2): Remove.
14386         * i386.h (x86_promote_QImode): New.
14387         (TARGET_PROMOTE_QImode): New.
14388         (PREDICATE_CODES): Add promotable_binary_operator.
14389         * i386.c (x86_promote_QImode0: New.
14390         (promotable_binary_operator): New.
14391         * i386-protos.h (promotable_binary_operator): New.
14392
14393         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
14394         condition.
14395         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
14396
14397 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
14398
14399         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
14400         * function.c (insert_block_after_note): Remove.
14401         (retrofit_block): Likewise.
14402         (identify_blocks): Fix indentation.
14403         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
14404         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
14405         * function.h (insert_block_after_note): Remove prototype.
14406         (retrofit_block): Likewise.
14407         * integrate.c (expand_inline_function): Don't call
14408         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
14409         just expand_start_bindings.  Use the block_map to remap old
14410         NOTE_BLOCKs to new ones.
14411         (integrate_decl_tree): Keep track of remapped blocks.
14412         * integrate.h (struct inline_remap): Add block_map.
14413         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
14414         NOTE_BLOCK on the notes.
14415         (expand_start_bindings): Rename to ...
14416         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
14417         (expand_end_bindings): Set NOTE_BLOCK.
14418         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
14419         reconstruct the BLOCK tree.
14420         * tree.h (expand_start_bindings): Macroize.  Call ...
14421         (expand_start_bindings_and_block): New function.
14422
14423 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
14424
14425         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
14426         to match the format.
14427
14428 1999-12-16  David S. Miller  <davem@redhat.com>
14429
14430         * expr.c (emit_move_insn_1): Only emit clobbers if one of
14431         the outputs is a SUBREG.
14432         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
14433         change.
14434
14435         * config/sparc/sparc.c (epilogue_renumber): Add default case
14436         to switch stmt.
14437
14438 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14439
14440         * toplev.c (rest_of_compilation): Run branch shortening after
14441         reg-stack.
14442
14443         * regclass.c (loop_depth): Remove
14444         (scan_one_insn): Do not handle LOOP_NOTE insns.
14445         (regclass): Go through basic blocks and set loop_cost
14446
14447 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
14448
14449         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
14450
14451 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14452
14453         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
14454         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
14455         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
14456
14457 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
14458
14459         * loop.c (insert_loop_mem): Ignore memory clobbers.
14460
14461         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
14462         to (OP A B).
14463
14464 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
14465
14466         * profile.c: Remove redundant #include "output.h".
14467
14468         * h8300.md (HImode preinc peephole): Fix typo.
14469
14470 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
14471
14472         * function.c (retrofit_block): Abort if we don't find a suitable insn.
14473         (insert_block_after_note): Abort if we don't have a previous block.
14474         Remove FN parameter.
14475         * function.h: Adjust.
14476
14477 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
14478
14479         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
14480         argument more than once.
14481
14482 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
14483
14484         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
14485
14486 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
14487
14488         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
14489
14490 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14491
14492         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
14493         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
14494         update stack_alignment_needed.
14495         (prepare_function_start): Initialize stack_alignment_needed
14496         * function.h (struct function): Add field stack_alignment_needed.
14497
14498 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14499
14500         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
14501         Handle live_throughout / dead_or_set instead of live_before /
14502         live_after.
14503         (save_call_clobbered_regs): Get register livenessinformation from
14504         chain->live_throughout.
14505         (add_stored_regs): New function.
14506         (insert_restore, insert_save): Add restored / saved registers to
14507         dead_or_set.
14508         * global.c (reg_dies): New parameter chain.
14509         (reg_becomes_live): Third parameter is regs_set now.
14510         Changed all callers.
14511         (reg_dies): New parameter chain.  Changed all callers.
14512         (build_insn_chain): Set live_throughout instead of
14513         live_before / live_after.
14514         * reload.h (struct insn_chain): Replace members live_before /
14515         live_after with live_throughout / dead_or_set.
14516         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
14517         instead of live_before / live_after.
14518         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
14519         (order_regs_for_reload, find_reg, finish_spills): Likewise.
14520         (choose_reload_regs_init): Likewise.
14521         * stupid.c (current_chain, find_clobbered_regs): Delete.
14522         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
14523         instead of chain->live_before / chain->live_after.
14524         (mark_hard_ref): New function.
14525         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
14526
14527 1999-12-15  David S. Miller  <davem@redhat.com>
14528
14529         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
14530
14531 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14532
14533         * flow.c (calculate_loop_depth): Make global, remove prototype,
14534         rewrite to use new loop infrastructure.
14535         (find_basic_block): Remove calculate_loop_depth call.
14536         * toplev.c (rest_of_compilation): Call find_basic_block.
14537         * output.h (calculate_loop_depth): Declare.
14538
14539         * flow.c (dump_flow_info): Dump loop_depth.
14540         (flow_loops_nodes_find): Increase loop_depth for basic block in the
14541         body.
14542         (flow_loops_find): Initialize the loop_depth for each basic block.
14543
14544 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
14545
14546         * tree.c (decl_function_context): Handle virtual functions.
14547
14548         * tlink.c (scan_linker_output): Don't look in demangled name when
14549         looking for linker output keywords.
14550
14551         * dwarfout.c (output_type): We can defer namespace-scope classes.
14552
14553 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
14554
14555         * regclass.c (record_reg_classes): Update comment for merging
14556         register class preferences in reg->reg copies.  Tighten conditions
14557         for merging register class preferences in reg->reg copies.
14558
14559 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
14560
14561         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
14562
14563 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
14564
14565         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
14566         (INIT_SECTION_ASM_OP): Delete.
14567         (FINI_SECTION_ASM_OP): Delete.
14568         (STARTFILE_SPEC): Define to hold just crtbegin.o.
14569
14570 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
14571
14572         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
14573         the abstract origin wasn't emitted.
14574
14575         * dwarf2out.c (class_scope_p): New fn.
14576         (gen_subprogram_die): Use it.
14577         (gen_variable_die): Use it.  Tweak logic.
14578         (gen_struct_or_union_type_die): Check context_die to determine
14579         if we're function-local.
14580         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
14581
14582 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
14583
14584         * loop.c (check_dbra_loop): Can't reverse a biv that has
14585         maybe_multiple set.
14586
14587 1999-12-14  Nick Clifton  <nickc@cygnus.com>
14588
14589         * config/arm/arm.c: Add support for -mcpu=arm720 command line
14590         switch.
14591
14592 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14593
14594         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
14595         for givs made from biv increments.
14596
14597 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
14598
14599         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
14600         * alpha.c (override_options): Recognize -mcpu=ev67.
14601         * alpha.h (CPP_CPU_EV67_SPEC): New.
14602         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
14603         (EXTRA_SPECS): Update.
14604
14605 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
14606
14607         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
14608         appropriate for -lang-c89 and -std=*.
14609         * cppinit.c (cpp_handle_option): Likewise.
14610         (new_pending_define): New, split out from cpp_handle_option.
14611         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
14612         or enable trigraphs for -ansi/-std=*.
14613
14614         * ginclude/stdarg.h (__va_copy): New.
14615         (va_copy): Don't define for C89.
14616
14617 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
14618
14619         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
14620         for long long multiply-accumulate.
14621
14622 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14623
14624         * regclass.c (scan_one_insn): Set loop_cost to 1 when
14625         optimizing for size.
14626
14627 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
14628
14629         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
14630         if something changed.  Back out that part of yesterday's changes.
14631
14632         * loop.c (loop_max_reg): New static variable.
14633         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
14634         max_reg_num.
14635         (scan_loop): Call reg_scan_update whenever we may have added new
14636         registers, and update loop_max_reg.
14637
14638 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14639
14640         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
14641         when source does not die.
14642
14643         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
14644
14645 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
14646
14647         * config/sparc/linux64.h (TARGET_LIVE_G0,
14648         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
14649         variants on Linux.
14650         * config/sparc/linux.h (TARGET_LIVE_G0,
14651         TARGET_BROKEN_SAVERESTORE): Likewise.
14652         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
14653         TARGET_BROKEN_SAVERESTORE): Likewise.
14654
14655         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
14656         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
14657         not %g2.
14658         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
14659         as sparc64 block profiling register.
14660         * config/sparc/sparc.c (sparc_override_options): Allow block
14661         profiling with -m32.
14662         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
14663         profiling register.
14664         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
14665         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
14666         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
14667
14668         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
14669         for sparc64.
14670         * config/sparc/sparc.h: Likewise.
14671         * config/sparc/xm-sysv4-64.h: Likewise.
14672         * config/float-sparc.h: Likewise.
14673         * glimits.h: Likewise.
14674         * longlong.h: Likewise.
14675
14676         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
14677         (ASM_IDENTIFY_GCC): Remove.
14678
14679 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
14680
14681         * combine.c (combine_simplify_rtx): Don't make shared rtl.
14682         (simplify_logical): Likewise.
14683
14684 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
14685
14686         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
14687         * cppfiles.c (INO_T_EQ): Likewise.
14688
14689 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
14690
14691         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
14692         * i386/mingw32.h (LIB_SPEC): Likewise.
14693         (STARTFILE_SPEC): Likewise.
14694         * i386/uwin.h (LIB_SPEC): Likewise.
14695         (STARTFILE_SPEC): Likewise.
14696
14697         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
14698         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
14699
14700 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
14701
14702         * combine.c (combine_simplify_rtx): Fix order of checks for
14703         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
14704
14705 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
14706
14707         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
14708         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
14709
14710 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
14711
14712         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
14713         defined.
14714         * regclass.c (inv_reg_alloc_order): New array.
14715         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
14716
14717         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
14718         counted_for_groups, counted_for_nongroups.  Add fields rld and
14719         n_reloads.
14720         * reload.c (push_secondary_reload): Don't set nongroup field of
14721         new reloads.
14722         (push_reload): Likewise.
14723         (find_reloads): Delete code to compute nongroup fields.
14724         * reload1.c (reload_insn_firstobj): New static variable.
14725         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
14726         users changed.
14727         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
14728         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
14729         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
14730         functions.
14731         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
14732         functions.
14733         (struct hard_reg_n_uses): Deleted.
14734         (potential_reload_regs): Deleted.
14735         (init_reload): Initialize spilled_pseudos and pseudos_counted.
14736         (reload): Don't try to allocate reload registers if we already know
14737         we have to make another pass.  Call select_reload_regs.  Free memory
14738         starting with reload_firstobj when starting another pass.
14739         Don't allocate spilled_pseudos.
14740         (calculate_needs_all_insns): Call copy_reloads for an insn that
14741         needs reloads; don't call calculate_needs.
14742         (spill_cost): New static array.
14743         (used_spill_regs_local): New static variable.
14744         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
14745         to compute potential_reload_regs.
14746         (find_reload_regs): Completely rewritten to use find_reg.
14747         (allocate_reload_reg): Don't test counted_for_groups or
14748         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
14749         all cllers changed.
14750         (choose_reload_regs): Add fallback code that uses the existing
14751         register allocation from find_reload_regs.
14752
14753 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
14754
14755         * flow.c (create_edge_list): Cast xmalloc return value.
14756
14757 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
14758
14759         * doprnt.c: Remove incorrect comment closure.
14760
14761         * cse.c: Fix a few minor whitespace goofs.
14762
14763 1999-12-13  Don Bowman  <don@pixstream.com>
14764
14765         * mips/vxworks.h: Fix problem with comment termination.
14766         (EXTRA_SECTIONS): Add in_sbss.
14767         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
14768
14769 1999-12-12  David S. Miller  <davem@redhat.com>
14770
14771         * cse.c (struct cse_reg_info): Add hash_next member,
14772         reorder rest of struct for better packing on 64-bit
14773         hosts.
14774         (cse_reg_info_tree): Kill.
14775         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
14776         REGHASH_FN): New custom pow2 hash mechanism.
14777         (NBUCKETS): Kill.
14778         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
14779         use a pow2 hash table.
14780         (get_cse_reg_info): Rework to use new REGHASH.
14781         (new_basic_block): Likewise, use HASH_SIZE, and inline
14782         free_element call.
14783         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
14784         and inline free_element call.
14785         (lookup_as_function, insert, flush_hash_table, invalidate,
14786         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
14787         invalidate_for_call, use_related_value, find_comparison_args,
14788         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
14789         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
14790         get_element): Kill.
14791
14792 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
14793
14794         * cse.c (cse_basic_block): Free qty_table consistently.
14795
14796 1999-12-12  David S. Miller  <davem@redhat.com>
14797             Jakub Jelinek    <jakub@redhat.com>
14798
14799         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
14800         SUBREGs by hand, gen the appropriate hard reg directly.
14801         (movtf reg/mem split): Likewise and alter_subreg on destination
14802         if necessary.
14803         (movtf mem/reg split): Similarly.
14804         (movdf_cc_sp64): Rename from hidden pattern.
14805         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
14806         (movtf_cc_sp64, following split): New pattern and splitter.
14807         (movdf_cc_reg_sp64): Rename from hidden pattern.
14808         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
14809         TARGET_HARD_QUAD.
14810         (movtf_cc_reg_sp64, following split): New pattern and splitter.
14811
14812 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
14813
14814         * loop.c (load_mems): Don't hoist written floating point mem
14815         if -ffloat-store.
14816
14817 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
14818
14819         * except.h (struct eh_queue): Add `next' pointer.
14820         (struct eh_status): Make x_ehqueue a pointer.
14821         (push_ehqueue):  Declare.
14822         (pop_ehqueue): Likewise.
14823         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
14824         pointer.
14825         (expand_fixup_region_end): Likewise.
14826         (expand_leftover_cleanups): Likewise.
14827         (push_ehqueue): Define.
14828         (pop_ehqueue): Likewise.
14829         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
14830         than doing it inline.
14831         (expand_start_all_catch):  Adjust now that ehqueue is a
14832         pointer.
14833         (mark_eh_queue): Mark all level of the queue.
14834         (mark_eh_status):  Adjust now that ehqueue is a
14835         pointer.
14836         (init_eh_for_function): Allocate ehqueue.
14837         (free_eh_status): Free it.
14838         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
14839         expansion for a fixup.
14840
14841 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14842
14843         * gthr-single.h (__gthread_active_p): Add prototype arguments.
14844
14845         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
14846         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
14847         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
14848         function_ptr, getpagesize, __enable_execute_stack,
14849         __enable_execute_stack, __clear_insn_cache,
14850         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
14851         _cleanup, _exit, __default_terminate, __terminate_func,
14852         __terminate, __empty, __throw, new_eh_context,
14853         eh_context_initialize, eh_context_static, eh_context_specific,
14854         get_eh_context, __get_eh_context, __get_eh_info,
14855         init_reg_size_table, eh_threads_initialize,
14856         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
14857         __unwinding_cleanup, throw_helper, __throw, __rethrow,
14858         __pure_virtual): Add prototype arguments.
14859         (__bb_exit_func): Cast a sizeof to long when comparing against one.
14860         Cast a signed value to unsigned long when comparing against one.
14861         (new_eh_context): Wrap in _GTHREADS macro.
14862         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
14863         declaration.
14864         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
14865         (throw_helper): Initialize variables `handler_p' and `pc_p'.
14866
14867 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14868
14869         * combine.c (record_promoted_value): Remove unused variable
14870         `links2'.
14871
14872         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
14873
14874         * global.c (record_conflicts): Likewise for `j'.
14875
14876         * genoutput.c (output_insn_data): Don't unnecessarily cast away
14877         const-ness.
14878
14879 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14880
14881         * i386-protos.h (output_387_binary_op, output_fix_trunc,
14882         output_fp_compare): Constify a char*.
14883
14884         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
14885         static prototypes.
14886         (override_options, ix86_comp_type_attributes, print_operand,
14887         output_387_binary_op, output_fix_trunc, output_fp_compare):
14888         Constify a char*.
14889         (ix86_sched_reorder): Mark parameter `clock_var' with
14890         ATTRIBUTE_UNUSED.
14891
14892         * i386.h (DEBUG_PRINT_REG): Constify a char*.
14893
14894 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14895
14896         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
14897         operand, for use in the Java front-end.
14898
14899 1999-12-10  Ben Collins  <bcollins@debian.org>
14900
14901         * configure.in: Fix typo for "-64" in 64bit as check.
14902         * configure: Rebuilt.
14903
14904 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
14905
14906         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
14907         appropriate.
14908
14909 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14910
14911         * c-parse.in (string): With -Wtraditional, warn if ANSI string
14912         concatenation is utilized.
14913
14914         * invoke.texi (-Wtraditional): Document it.
14915
14916 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14917
14918         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
14919         Cast a ptrdiff_t to long and pass it to printf with %ld.
14920
14921 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
14922
14923         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
14924         68881, we have no 68881 registers at all.
14925         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
14926         value in a 68881 register if it is available.
14927
14928 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
14929
14930         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
14931         for long long multiply-accumulate.
14932
14933 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
14934
14935         * loop.c (insert_loop_mem): Undo last change.
14936
14937 1999-12-10  David S. Miller  <davem@redhat.com>
14938
14939         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
14940         New functions.
14941         * config/sparc/sparc-protos.h: Add them.
14942         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
14943         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
14944         constraints which use those helpers.
14945         (EXTRA_CONSTRAINT): Use this new macro.
14946         * md.texi: Update sparc target constraints documentation.
14947         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
14948         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
14949         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
14950         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
14951         (movsf high/lo_sum split): Rework for new patterns.
14952         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
14953
14954 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
14955
14956         * c-common.c (c_common_nodes_and_builtins):
14957         Create __builtin_ptrdiff_t and __builtin_size_t.
14958
14959 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
14960
14961         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
14962
14963 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14964
14965         * regclass.c (globalize_reg): Re-instate test that allows
14966         fixed registers to be declared as a variable even after functions
14967         are defined.
14968
14969 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14970
14971         * i386.md (cpu attribute): Add "athlon".
14972         (athlon_decode): New attribute.
14973         (Athlon scheduling units definitions): New.
14974         (fcmp and shld patterns): Set athlon_decode to "vector".
14975         * i386.c (athlon_cost): New.
14976         (m_ATHLON): New.
14977         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
14978         x86_use_sahf): Set for Athlon.
14979         (x86_use_fiop): Unset for Athlon.
14980         (override_options): Define Athlon alignments and "athlon" name.
14981         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
14982         * i386.h (TARGET_ATHLON): New.
14983         (enum processor_type): Add PROCESSOR_ATHLON.
14984         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
14985         for CPU_DEFAULT==5
14986         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
14987
14988 1999-12-09  Andreas Jaeger  <aj@suse.de>
14989
14990         * loop.c (record_biv): Declare parameter as int.
14991
14992         * config/i386/i386-protos.h: Declare long_memory_operand.
14993
14994 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
14995
14996         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
14997         EXPR_WITH_FILE_LOCATION.
14998
14999 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
15000
15001         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
15002         in expander.
15003
15004         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
15005
15006         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
15007         updating code.
15008
15009 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
15010
15011         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
15012         default on linux64 again.
15013         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
15014         models for multilibing.
15015         * genmultilib: Accept | as alternative separator within a set in
15016         MULTILIB_OPTIONS.
15017
15018         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
15019
15020         * calls.c (precompute_arguments): Make sure initial_value contains
15021         value pseudo which CSE expects.
15022         * cse.c (struct set): New entry orig_src.
15023         (cse_insn): Set it early on entry, use it for libcall EQUIV note
15024         replacement.
15025
15026 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
15027
15028         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
15029
15030 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
15031
15032         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
15033
15034 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
15035
15036         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
15037         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
15038
15039         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
15040         if TARGET_ARCH32.
15041
15042         * longlong.h: Merge in changes from glibc.
15043         Also don't clobber %g2 register in 32bit SPARC assembly, so that
15044         -mno-app-regs libgcc can be compiled.
15045         * libgcc2.c: Add defines so that the updated longlong.h
15046         can be used in libgcc2.a. Also, make sure on most architectures
15047         (at least on all which have optimized code in longlong.h defined
15048         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
15049
15050 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15051
15052         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
15053         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
15054         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
15055         is GNU ld.
15056         * configure: Rebuilt.
15057
15058 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
15059
15060         * alpha.c (secondary_reload_class): For !BWX, sub-simode
15061         outputs require a register.
15062
15063 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
15064
15065         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
15066         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
15067         functions like dptoul will be resolved.
15068         (libgcc2.a): Make sure that the object files from DPBIT are named
15069         differently (prefix `_dp') from those that would be coming from
15070         FPBIT.
15071
15072 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
15073
15074         * configure.in: When target is sparc* and tm_file contains 64,
15075         test for 64bit support in assembler.  If not supported, remove
15076         sparc/t-sol2-64 from target-dependent Makefile fragments.
15077         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
15078         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
15079         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
15080         * acconfig.h (AS_SPARC64_FLAG): Added.
15081         * configure, config.in: Rebuilt.
15082         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
15083         support.  Use AS_SPARC64_FLAG.
15084
15085 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
15086
15087         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
15088         suitable for holding OFmode values so that gcc works with complex
15089         quad long doubles.
15090         (hard_64bit_mode_classes): Likewise.
15091
15092         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
15093         so that it is actually matched.
15094         (sethi_di_medlow): Likewise.
15095
15096         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
15097         as legitimate constant if -mvis.
15098         * config/sparc/sparc.md (movtf): Likewise.
15099         (clear_sf): Use const_double_operand.
15100         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
15101
15102         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
15103         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
15104         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
15105         routines, _Qp_* cannot be handled like that now.
15106         (INIT_TARGET_OPTABS): Likewise.
15107         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
15108         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
15109         sparc_emit_float_lib_cmp if ARCH64 and soft float.
15110         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
15111         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
15112         divtf3, sqrttf3): New expanders.
15113         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
15114         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
15115         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
15116         non-_hq patterns.
15117
15118         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
15119         * configure: Rebuilt.
15120         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
15121         -mcpu is given and we're doing 64bit compiles.
15122
15123 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
15124
15125         * loop.h (struct induction): Add multi_insn_incr.
15126         * loop.c (basic_induction_var): New multi_insn_incr argument.
15127         Set it if we search back through previous insns for the biv.
15128         (record_biv): New multi_insn_incr argument; fill in struct induction.
15129         (strength_reduce): Discard an iv with multiple bivs, any of
15130         which require multiple insns to increment.
15131
15132 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
15133
15134         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
15135         documentation.
15136
15137 1999-12-06  David S. Miller  <davem@redhat.com>
15138
15139         * combine.c (check_promoted_subreg): Do not conditionalize this upon
15140         PROMOTE_FUNCTION_RETURN.
15141
15142 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
15143
15144         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
15145         and handle REG_UNUSED note on insn.
15146
15147         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
15148         inner_mask instead of mask.
15149
15150 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
15151
15152         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
15153         zero if there was an error.
15154
15155 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
15156
15157         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
15158         output string.
15159
15160         * longlong.h: Fix clobbers in SPARC asm statements.
15161
15162         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
15163         valid sethi operations when TARGET_ARCH64.
15164
15165         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
15166         always use move_by_pieces to avoid infinite recursion.
15167         (restore_fixed_argument_area): Likewise.
15168
15169         * combine.c (check_promoted_subreg, record_promoted_value): New
15170         functions.
15171         (combine_instructions): Use them to retain nonzero and sign bit
15172         information after SUBREGs are eliminated by optimizations in
15173         this pass if PROMOTE_FUNCTION_RETURN.
15174
15175         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
15176         .register declaration. Don't use variables with __ prefixes.
15177
15178 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15179
15180         * fold-const.c (optimize_bit_field_compare): Only use one mode
15181         for both RHS and LHS in non-constant case.
15182
15183 1999-12-06  Nathan Sidwell  <nathan@acm.org>
15184
15185         * frame.c (start_fde_sort): Only allocate erratic array, if
15186         linear one was allocated. Return allocated flag.
15187         (fde_insert): Only insert, if there's a valid array.
15188         (fde_end_sort): Split, sort and merge if linear and erratic
15189         arrays exist, else just sort linear one.
15190         (search_fdes): New function. Linear search through original fde
15191         structure.
15192         (frame_init): Permit multiple initializations. Cope with
15193         memory shortages.
15194         (find_fde): Fallback on linear search, if failed to sort array.
15195         (__deregister_frame_info): Only free sorted array, if we
15196         allocated it.
15197
15198 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
15199
15200         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
15201
15202 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
15203
15204         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
15205
15206 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
15207
15208         * tree.h (special_function_p): Declare.
15209         * calls.c (special_function_p): Make it global.  Don't take `name'
15210         as a parameter.  Fix typo in 1999-11-28 change.
15211         (expand_cal): Adjust.
15212
15213 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
15214
15215         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
15216         * tree.h (EXPR_WFL_FILENAME): Define in terms of
15217         EXPR_WFL_FILENAME_NODE.
15218         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
15219         the TREE_CHAIN.
15220         * print-tree.c (print_note): Print TREE_PRIVATE and
15221         TREE_PROTECTED.
15222
15223         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
15224         the original die cannot be found.
15225
15226         * varray.h (varray_head_tag): Add elements_used.
15227         (VARRAY_PUSH): New macro.
15228         (VARRAY_POP): Likewise.
15229         (VARRAY_TOP): Likewise.
15230         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
15231         types.
15232         * varray.c (varray_init): Initialize elements_used.
15233         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
15234         (INTEGRATE_H): New variable.
15235         (integrate.o): Depend on INTEGRATE_H.
15236         (unroll.o): Likewise.
15237
15238         * function.h (insert_block_after_note): Declare.
15239         * function.c (insert_block_after_note): Split out from ...
15240         (retrofit_block): ... here.
15241
15242         * stmt.c (expand_fixup): Fix typo in comment.
15243
15244 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15245
15246         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
15247         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
15248         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
15249         (regmove_optimize, fixup_match_1): Likewise.
15250
15251 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15252
15253         * flow.c (flow_loops_dump): Add missing argument when calling
15254         flow_loop_nested_p.
15255
15256 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
15257             Greg McGary  <gkm@gnu.org>
15258
15259         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
15260         (init_attributes): Add A_NO_LIMIT_STACK.
15261         (decl_attributes): Handle A_NO_LIMIT_STACK.
15262         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
15263         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
15264         Handle stack bounds checking.
15265         * flags.h (flag_stack_check): Use the word 'probe' rather than
15266         'check', because the flag doesn't actually cause any checking to
15267         be done.
15268         * function.c (expand_function_start): Set
15269         current_function_limit_stack.
15270         * function.h (struct function): Add limit_stack.
15271         (current_function_limit_stack): Define.
15272         * invoke.texi (Code Gen Options): Document new options.
15273         * rtl.h: Declare stack_limit_rtx.
15274         * toplev.c (stack_limit_rtx): New variable.
15275         (decode_f_option): Handle new options -fstack-limit-register=REG,
15276         -fstack-limit-symbol=IDENT, -fno-stack-limit.
15277         (main): Add stack_limit_rtx as GC root.
15278         * tree.h (DECL_NO_LIMIT_STACK): New macro.
15279         (struct tree_decl): New member no_limit_stack.
15280
15281         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
15282         stack_limit_rtx.
15283         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
15284         (conditional_trap+1): Get new mnemonic correct.
15285         (conditional_trap+2): New pattern for DImode traps.
15286
15287         * config/m68k/m68k.c (output_function_prologue): Handle
15288         stack_limit_rtx.
15289         * config/m68k/m68k.md (trap): New insn.
15290         (conditional_trap): New insn.
15291         * md.texi (Standard Names): Document `trap' and
15292         `conditional_trap'.
15293         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
15294         so a cc0 setter doesn't get emitted at some random place in the
15295         function.
15296
15297         * config/i960/i960.md (trap): New insn.
15298         (conditional_trap): New expander.
15299         (conditional_trap+1, conditional_trap+2): New insns for signed
15300         and unsigned cases.
15301         * config/i960/i960.c (i960_function_prologue): Use
15302         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
15303
15304 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
15305                           Geoffrey Keating  <geoffk@cygnus.com>
15306
15307         * flags.h (warn_padded, warn_packed): Add global var decls.
15308         * toplev.c (warn_padded, warn_packed): Add global var defns.
15309         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
15310         * stor-layout.c (layout_record): Add local variable `type'
15311         to hold often-used TREE_TYPE (field).  Add local variable
15312         `unpacked_align' to hold alignment that would be in force
15313         if no `packed' attribute were present.  Warn if `packed' attribute
15314         is unnecessary, or even harmful.  Warn when gcc inserts padding
15315         to satisfy alignment requirements of members.  Use NULL_TREE
15316         when checking whether var_size is set.
15317         * invoke.texi: Document new flags.
15318
15319 1999-12-03  Nathan Sidwell  <nathan@acm.org>
15320
15321         * frame.c (fde_split): Reimplement to avoid variable sized array.
15322
15323 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15324
15325         * combine.c (try_combine): Before fixing up LOG_LINKS for the
15326         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
15327
15328 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
15329
15330         * invoke.texi: Document the mips option -mno-crt0
15331
15332 1999-12-02  Mike Karr  <mkarr@mathworks.com>
15333
15334         * cccp.c (argdata): Added free_ptr member.
15335         (macroexpand): Initialize free_ptr of each argument. When an
15336         argument's buffers are freed, if the argument's free_ptr corresponds
15337         to a buffer on the input stack, then return the free_ptr to that stack
15338         frame, otherwise, free it.
15339         (macarg): If an argument begins and ends on the same input stack level,
15340         then transfer the free_ptr of that buffer to the argument in case
15341         the stack is popped during the processing of a subsequent argument.
15342
15343 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
15344
15345         * loop.c (note_reg_stored): New function.
15346         (struct note_reg_stored_arg): New structure.
15347         (try_copy_prop): Change to be more conservative; only replace within
15348         one extended basic block and stop replacing if a store to the
15349         replacement reg is seen.
15350
15351 1999-12-02  Nick Clifton  <nickc@cygnus.com>
15352
15353         * config/fp-bit.c: Initialise all fields of the NAN
15354         constants.
15355
15356         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
15357         to HANDLE_PRAGMA.
15358
15359 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
15360
15361         * i386.md (extend?f?f2): Force the input into a register, not
15362         the output.
15363
15364 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
15365
15366         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
15367         regclass' sake.
15368         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
15369         alternative because setting up 64bit constant is usually costly,
15370         especially when reload is in progress or completed.
15371         (movdf_const_intreg_sp64): Likewise.
15372         (movdf_const_intreg split): Fix building up constants when
15373         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
15374
15375 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
15376
15377         * combine.c (if_then_else_cond): Use const_true_rtx instead of
15378         const1_rtx for return values in EQ/NE comparison against (const_int 0)
15379         case.
15380
15381         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
15382         (asm_file_start): Emit .am33 into assembly file when compiling for
15383         the AM33.
15384         (print_operand_address): Handle POST_INC addresses.
15385         (can_use_return_insn, initial_offset): Check AM33 registers too.
15386         (expand_prologue): Check & save AM33 registers too.
15387         (expand_epilogue): Similarly.
15388         (secondary_reload_class): Handle AM33 specific secondary reloads.
15389         (output_tst): Emit efficient code for the AM33 too.
15390         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
15391         (TARGET_SWITCHES): Add -mam33 switch.
15392         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
15393         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
15394         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
15395         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
15396         (enum reg_class, REG_CLASS_NAMES): Likewise.
15397         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
15398         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
15399         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
15400         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
15401         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
15402         (HAVE_POST_INCREMENT): Define.
15403         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
15404         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
15405         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
15406         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
15407         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
15408         (zero_extend to SI from QI/HI): Likewise.
15409         (sign_extend to SI from QI/HI): Likewise.
15410         (mulsidi3, umulsidi3): New patterns for the AM33.
15411         (tstsi with zero extension from QI/HI): Add AM33 variants.
15412         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
15413         (return_internal_regs, store_movm): Handle new AM33 registers.
15414         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
15415         (LIBGCC, INSTALL_LIBGCC): Likewise.
15416         * invoke.texi: Document new flags.
15417
15418 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15419
15420         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
15421         (addsi3_carry): Likewise.
15422         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
15423         (sbbsi3_carry): Likewise.
15424         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
15425         (mulhi3): Likewise.
15426         (test?i_1): Ensure that only one operand is memory.
15427         (conditional move patterns): likewise.
15428         (shift and rotate patterns): Rewrite to expander, add
15429         "binary_operator_ok" to the condition.
15430
15431         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
15432         * i386.h (procesor_costs): Add movzbl_load field.
15433         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
15434         non-Q registers, accept DImode registers anywhere.
15435         (Q_CLASS_P): New.
15436         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
15437         * i386.c (*_cost): Set value for movxbl_load field.
15438
15439         * (addsi): New add to lea splitter.
15440         (ashlsi): Likewise.
15441         (lea to add/shift peep2): New.
15442
15443 1999-12-01  Mark Salter <msalter@cygnus.com>
15444
15445         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
15446         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
15447         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
15448
15449 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15450
15451         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
15452         * i386.md (movsi_xor): New.
15453         (movsi_or): New.
15454         (movsi_1, movhi_1, movqi_1): Remove.
15455         (movsi_2): Rename to movsi_1.
15456         (movhi_2): Rename to movhi_1.
15457         (movqi_2): Rename to movqi_1.
15458         (movdi_1): Remove; remove splitter.
15459         (movdi_2): Rename to movdi_1.
15460         (divmodsi4 splitter): Do not emit clobbers for move patterns.
15461         (long move peep2): Do not create QI or HI mode mov0s
15462         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
15463
15464         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
15465         rewrite splitters.
15466
15467         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
15468         (abs?f2_if): Likewise.
15469
15470 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
15471
15472         * ggc.h (ggc_test_and_set_mark): New macro.
15473         (ggc_mark_rtx): Use ggc_test_and_set_mark.
15474         (ggc_mark_tree): Likewise.
15475         (ggc_mark_rtvec): Likewise.
15476         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
15477
15478 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
15479
15480         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
15481         containing types.
15482         (decl_scope_table): Just an array of trees now.
15483         (push_decl_scope): Simplify.
15484         (dwarf2out_init): Adjust.
15485         (local_scope_p): New fn.
15486         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
15487         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
15488         (gen_typedef_die): Likewise.
15489         (gen_lexical_block_die): Don't call push/pop_decl_scope.
15490         (gen_inlined_subroutine_die): Likewise.
15491         (gen_abstract_function): Set current_function_decl temporarily.
15492         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
15493         Handle block extern declarations.  Don't call push/pop_decl_scope.
15494         (gen_decl_die): Fix logic for block externs.
15495
15496 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15497
15498         * calls.c (special_function_p): Remove `realloc' and add `strdup'
15499         to the list of functions which have attribute malloc by default.
15500
15501 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15502
15503         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
15504         integer constant does not match the traditional type, limit the
15505         warnings to cases where the base of the type is ten.
15506
15507         * invoke.texi (-Wtraditional): Document it.
15508
15509 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15510
15511         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
15512         * rs6000.md: Only access a CONST_INT with INTVAL
15513
15514 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
15515
15516         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
15517         (compute_nearerout): Likewise.
15518         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
15519         size_t to unsigned long for formatting.
15520
15521 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
15522
15523         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
15524         Allow the user to override call-used/fixed state of %g2-5
15525         registers from the command line (with the exception of %g4 for
15526         embedded model).
15527         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
15528         there is a higher chance of having a leaf function.
15529         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
15530         for ARCH64 which has %ccr register.
15531         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
15532         patterns.
15533         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
15534         insn accept into delay slot any insn which does not use %[ol]
15535         registers.  Accept some LO_SUM and shift left by 1 for the normal
15536         restore case.
15537         (output_function_epilogue): Likewise.
15538         (epilogue_renumber): Added argument which inhibits any renumbering
15539         and just tests if the rtx does not use any %[ol] registers.
15540         (output_return): Reflect above change.
15541
15542 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
15543
15544         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
15545         aggregate passing for sizes <= 16 bytes.
15546
15547 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
15548
15549         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
15550         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
15551         * reload.c (find_dummy_reload): Likewise.
15552         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
15553         * reload1.c (reload_as_needed): Likewise.
15554         * stupid.c (stupid_find_reg): Likewise.
15555         * tm.texi (Obsolete Register Macros): Delete section.
15556         * gmicro.h: Remove all traces of the two macros.
15557         * i386.h: Likewise.
15558         * m88k.h: Likewise.
15559         * mips.h: Likewise.
15560
15561 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
15562
15563         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
15564         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
15565         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
15566         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
15567         units for the sparclite86x chip.
15568         (flush): Revert October 14th change; add SImode specifically.
15569         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
15570         * invoke.texi: Document it.
15571
15572 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
15573
15574         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
15575         psimode_truncation_operand.
15576
15577         * config/mn10200/mn10200.c (psimode_truncation_operand): New
15578         function.  Return true if the operand is either a MEM valid
15579         for a PSImode address or not a MEM at all.
15580
15581         * config/mn10200/mn10200.md (truncsipsi2): Use
15582         psimode_truncation_operand.
15583
15584 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15585
15586         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
15587         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
15588         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
15589         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
15590         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
15591         (flow_loop_level_compute, low_loops_level_compute): Likewise.
15592         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
15593         * basic-block.h: Protect from multiple inclusion.
15594         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
15595         (struct loops, struct loop): Define structures.
15596         * sbitmap.c (sbitmap_a_subset_b_p): New function.
15597         * sbitmap.h: Protect from multiple inclusion.
15598         (sbitmap_a_subset_b_p): Add prototype.
15599         * Makefile.in (LOOP_H): New macro.
15600         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
15601
15602 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
15603
15604         * cppinit.c (CAT): The argument list of this macro may not contain
15605         spaces !
15606
15607 1999-11-29  David S. Miller  <davem@redhat.com>
15608
15609         Move quantity tables and register equivalence chains into
15610         per-qty and per-register structure arrays respectively.
15611         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
15612         qty_const_insn, qty_comparison_code, qty_comparison_const,
15613         qty_comparison_qty): Delete, replace with...
15614         (qty_table): this structure table.
15615         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
15616         (reg_eqv_table): this structure table.
15617         (make_new_qty): Add argument MODE.  Caller updated.
15618         Update to use qty_table and reg_eqv_table.
15619         (make_regs_eqv, delete_reg_equiv, insert_regs,
15620         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
15621         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
15622         cse_process_notes, cse_main, cse_basic_block): Likewise.
15623
15624 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15625
15626         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
15627         operation if C is negative.
15628         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
15629         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
15630         law for some divisions if constant is negative and change other
15631         divisions to the opposite rounding.
15632
15633         * expr.c (store_constructor_field): If bit position is not multiple
15634         of alignment of TARGET's mode, use BLKmode.
15635
15636         * expr.c (expand_expr_unaligned): Add more code from full case
15637         that is needed when OP0 is in a register.
15638
15639 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15640
15641         * dwarfout.c (field_byte_offset): Size can be zero if there was
15642         an error.
15643
15644 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
15645
15646         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
15647         (associate_trees): Delete unused var TEM.
15648         (extract_muldiv): Delete unused var CANCEL_P.
15649
15650         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
15651         (target_isinf, target_isnan, target_negative): Add return types to
15652         function definitions.
15653
15654 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
15655
15656         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
15657         * fixinc/hackshell.tpl: ditto
15658         * fixinc/fixtests.c(double_slash_test): more C++ header testing
15659         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
15660
15661 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
15662
15663         * reload.c (push_reload): When looking for a register to put into
15664         reg_rtx, make sure all hard regs in a multi-reg register are in the
15665         right class and nonfixed.
15666
15667         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
15668         pending_read_insns, pending_write_insns, pending_read_mems,
15669         pending_write_mems, pending_list_length, last_pending_memory_flush,
15670         last_function_call, sched_before_next_call): Move static variables
15671         into a structure.
15672         (bb_ prefixed versions): Replace with single array bb_deps.
15673         (struct deps): New structure.
15674         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
15675         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
15676         argument of type "struct deps *"; use that instead of global
15677         variables.  All callers changed.
15678         (init_rgn_data_dependencies): Delete function.
15679         (init_rtx_vector): Delete function.
15680         (init_deps): New function.
15681
15682         (free_pending_lists): Simplify, we always use the bb_deps array even
15683         if only one basic block.
15684         (compute_block_backward_dependences): Likewise.
15685         (schedule_region): Likewise.
15686
15687         (propagate_deps): New function, broken out of
15688         compute_block_backward_dependences.
15689         (compute_block_backward_dependences): Use it.
15690
15691         * alpha.md: Delete useless patterns that tried to work around
15692         register elimination problems.
15693
15694         * unroll.c (loop_iterations): Don't abort if iteration variable
15695         was made by loop.
15696
15697         From Joern Rennecke:
15698         * reload1.c (reloads_conflict): Reverse test comparing operand
15699         numbers when testing for conflict between output/outaddr reloads.
15700
15701 1999-11-29  David S. Miller  <davem@redhat.com>
15702
15703         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
15704         arg.
15705         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
15706
15707 1999-11-28  Robert Lipe  <robertl@cygnus.com>
15708
15709         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
15710         table from .fini into .dtor.
15711
15712 1999-11-28  Anthony Green  <green@cygnus.com>
15713
15714         * tree.h (struct tree_decl): Add malloc_flag.
15715         (DECL_IS_MALLOC): Define.
15716         * c-common.c (attrs): Add A_MALLOC attribute.
15717         (init_attributes): Add this attribute to the table.
15718         (decl_attributes): Handle malloc attribute.
15719         * calls.c (special_function_p): Check for the malloc attribute.
15720         * extend.texi (Function Attributes): Document malloc attribute.
15721
15722 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
15723
15724         * pa.md (reload shift-add patterns): Remove.
15725
15726 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15727
15728         * reorg.c (dbr_schedule) Print more statistics. Corrected
15729         problem when printing info when 3 delay slots are filled.
15730
15731 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
15732
15733         * combine.c (setup_incoming_promotions): Pass an outgoing
15734         regno to FUNCTION_ARG_REGNO_P which it expects.
15735
15736 1999-11-28  Andreas Jaeger  <aj@suse.de>
15737
15738         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
15739
15740 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
15741
15742         * cccp.c (do_include): Avoid initialization of automatic variable.
15743
15744         * integrate.c (mark_stores): Function definition made void, to match
15745         previous declaration.
15746         * regclass.c (dump_regclass): Ditto.
15747         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
15748
15749 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15750
15751         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
15752         known to be multiple of divisor.
15753
15754         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
15755
15756         * combine.c (try_combine): Add code to try to merge a set of a
15757         two-word pseudo to a constant with a setting of one of those words
15758         to a constant.
15759
15760         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
15761         (split_tree): Completely rework to make more general.
15762         (make_range, fold): Call negate_expr.
15763         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
15764         (fold, associate): Call new split_tree and associate_trees.
15765         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
15766
15767 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
15768
15769         * loop.c (try_copy_prop): Avoid GNU C extension.
15770
15771 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
15772
15773         * except.c (init_eh_for_function): Still zero eh_return_context,
15774         eh_return_stack_adjust, and eh_return_handler.
15775
15776         * except.h (eh_status): Adjust documentation for x_protect_list.
15777         (begin_protect_partials): New function.
15778         * except.c (enqueue_eh_entry): Fix formatting.
15779         (get_first_handler): Add consistency check.
15780         (add_partial_entry): Adjust usage of protect_list.
15781         (emit_cleanup_handler): Save and restore ehqueue.
15782         (expand_start_all_catch): Add comment.
15783         (begin_protect_partials): New function.
15784         (end_protect_partials): Adjust usage of protect_list.
15785         (init_eh_for_function): Use xcalloc.
15786
15787 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15788
15789         * c-common.c (check_format_info): Don't call a variadic function
15790         with a non-literal format string.
15791
15792         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
15793
15794         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
15795         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
15796         Likewise.
15797
15798         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
15799         Likewise.
15800
15801         * collect2.c (collect_wait): Likewise.
15802
15803         * dbxout.c (dbxout_type): Likewise.
15804
15805         * gcc.c (do_spec_1): Likewise.
15806
15807         * genemit.c (gen_insn, gen_expand): Likewise.
15808
15809         * genrecog.c (write_switch, write_subroutine): Likewise.
15810
15811         * mips-tfile.c (catch_signal, botch): Likewise.
15812
15813         * print-rtl.c (print_rtx): Likewise.
15814
15815         * toplev.c (default_print_error_function, report_error_function,
15816         _fatal_insn): Likewise.
15817
15818 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
15819
15820         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
15821
15822 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15823
15824         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
15825         operations when needed.
15826         * i386.md (fop_?f_comm): New.
15827         (fop_?f_1): Do not accept commutative operands.
15828
15829 1999-11-25  Andreas Jaeger  <aj@suse.de>
15830
15831         * config/mips/mips.md (casesi_internal): Add missing brace.
15832
15833 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
15834
15835         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
15836         (splice_child_die): Handle moving a child DIE from the declaration
15837         DIE of a class to its specification.
15838         (gen_struct_or_union_type_die): Use 'complete' consistently.
15839         (gen_decl_die): Generate the virtual context DIE first.
15840         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
15841
15842 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
15843
15844         * config/mips/mips.md (call_value_multiple_interanal1): New.
15845
15846 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
15847
15848         * dwarf2out.c (free_AT, free_die): New fns.
15849         (remove_children): Call them.
15850         (output_line_info): Disable removal of duplicate notes.
15851
15852         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
15853         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
15854         means pretend the type isn't defined.
15855         Don't defer emitting types.
15856         (gen_type_die_for_member): New fn.
15857         (gen_decl_die): Call it.
15858         (splice_child_die): New fn.
15859         (gen_member_die): Call it rather than generate duplicate dies.
15860
15861         Defer emitting information for the abstract instance of an inline
15862         until we either inline it or emit an out-of-line copy.
15863         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
15864         from output_inline_function if DECL_ABSTRACT is also set.
15865         (block_ultimate_origin): Likewise.
15866         (gen_abstract_function): New fn.
15867         (gen_decl_die, gen_inlined_subroutine_die): Call it.
15868         (gen_subprogram_die):  An abstract instance is not a declaration
15869         just because it doesn't match current_function_decl.  Don't abort
15870         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
15871         has an abstract origin.
15872         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
15873         abstract instance here.
15874
15875 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
15876
15877         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
15878         where we need to reload fpul from a system register.
15879
15880 1999-11-24  Andreas Jaeger  <aj@suse.de>
15881
15882         * config/mips/linux.h (CPP_PREDEFINES): Added.
15883         (LINK_SPEC): Remove -Y since this is only needed on sparc.
15884
15885 1999-11-24  Andreas Jaeger  <aj@suse.de>
15886
15887         * config/mips/linux.h (TARGET_VERSION): Added.
15888         (HANDLE_SYSV_PRAGMA): Added.
15889         (DEFAULT_VTABLE_THUNKS): Added.
15890
15891 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15892
15893         * local-alloc.c (qty): New structure and static variable.
15894         (qty_phys_reg): Remove, all references changed to qty.
15895         (qty_n_refs): Likewise.
15896         (qty_min_class): Likewise.
15897         (qty_birth): Likewise.
15898         (qty_death): Likewise.
15899         (qty_size): Likewise.
15900         (qty_mode): Likewise.
15901         (qty_n_calls_crossed): Likewise.
15902         (qty_alternate_class): Likewise.
15903         (qty_changes_size): Likewise.
15904         (qty_first_reg): Likewise.
15905         (alloc_qty): Rename variable QTY to QTYNO.
15906         (finf_free_reg): Likewise.
15907         (local_alloc): Allocate qty, do not allocate the removed variables.
15908
15909 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
15910
15911         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
15912         when -membedded-pic is passed.
15913
15914         * config/mips/mips.md (casesi): Handle 64-bit case too.
15915         (casesi_internal_di): New insn.
15916
15917         * config/mips/mips.c (embedded_pic_offset): Always make the
15918         embedded-pic subtractions relative to the name of the current
15919         function by use of the magic string "..CURRENT_FUNCTION".
15920         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
15921
15922 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
15923
15924         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
15925         of (const_int 0), when what we really care about is
15926         whether it's a zero constant anyway.
15927         (div_trap_mips16): Likewise.
15928
15929 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
15930
15931         * loop.c (loop_optimize): Always find_loop_tree_blocks and
15932         unroll_block_trees when generating debuggable code.
15933
15934         * tree.h (unsave_expr_1): New function.
15935         (lang_unsave): New variable.
15936         (get_callee_fndecl): New function.
15937         * tree.c (unsave_expr_now_r): New function.
15938         (lang_unsave): Define.
15939         (unsave_expr_1): Likewise.
15940         (unsave_expr_now_r): Split out from unsave_expr_now.
15941         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
15942         call unsave_expr_now_r.
15943         (get_callee_fndecl): Define.
15944
15945         * Makefile.in (gencheck): Don't depend on lang_tree_files.
15946         (gencheck.o): Do depend on lang_tree_files.
15947
15948         * integrate.h (copy_decl_for_inlining): New declaration.
15949         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
15950         (copy_decl_for_inlining): New function.
15951         (integrate_parm_decls): Use it.
15952         (integrate_decl_tree): Likewise.
15953
15954 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
15955
15956         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
15957         the second two from the first.
15958         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
15959         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
15960         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
15961         ISA_HAS_FP4.
15962         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
15963         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
15964         ISA_HAS_FP4.
15965
15966 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
15967
15968         * pa.md (call_internal_symref, call_value_internal_symref): No mode
15969         needed on the address operand.
15970         * pa.c (call_operand_address): Check for the correct mode.
15971
15972 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
15973
15974         * loop.c: Include "basic-block.h".
15975         (try_copy_prop, replace_loop_reg): New functions.
15976         (load_mems): Detect registers that just hold copies of the hoisted
15977         mem, and call try_copy_prop to eliminate them.
15978         * Makefile.in (loop.o): Update dependencies.
15979
15980 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
15981
15982         * Makefile.in (gencheck.o): Depend on gencheck.h.
15983         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
15984         (insn-peep.o): Depend on except.h and function.h.
15985         (insn-attrtab.o): Depend on RECOG_H.
15986         (insn-output.o): Depend on toplev.h and flags.h.
15987         (gengenrtl.o): Depend on real.h.
15988         (gen-protos.o): Depend on cpplib.h and cpphash.h.
15989         Unify all dependencies to be on RECOG_H rather than recog.h.
15990
15991 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15992
15993         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
15994         * configure.in: Try building a bi-arch 32/64-bit compiler on
15995         sparc-*-solaris2.7 and higher.
15996         * configure: Rebuild.
15997
15998 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
15999
16000         * config/freebsd.h: New, FreeBSD architecture independent file.
16001         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
16002         independent pieces.
16003         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
16004         directly by i386/freebsd.h.
16005         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
16006         independent configuration file.
16007         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
16008         directly by i386/freebsd.h.
16009         * configure: Rebuilt.
16010
16011         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
16012         which is in the user's namespace.
16013         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
16014         `i386' which is not in our namespace.
16015
16016 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
16017
16018         * invoke.texi (ARM Options): Add in -mno-alignment-traps
16019
16020 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
16021
16022         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
16023         (add_dwarf_attr, add_child_die): Just push onto the front.
16024         (reverse_die_lists): New fn.
16025         (add_sibling_attributes): Use it.
16026         (push_decl_scope): Reorganize.
16027         (add_name_and_src_coords_attributes): Don't set file and line for
16028         an artificial decl.
16029         (gen_subprogram_die): An artificial function doesn't need to match
16030         file and line.
16031         (gen_compile_unit_die): Return the generated die.  Only add
16032         AT_comp_dir if the filename is relative.
16033         (remove_AT): Simplify loop.  Also free string values.
16034         (output_die): A DIE ref can't be null.
16035         (output_value_format, value_format): Take a dw_attr_ref.
16036         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
16037         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
16038         AT_addr, AT_lbl): New fns.
16039         (various): Use them.
16040         (various): Constify.
16041
16042 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16043
16044         * combine.c (combine_simplify_rtx): When handling a SUBREG,
16045         take SUBREG_WORD into account.
16046         (if_then_else_cond): Likewise.
16047
16048 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
16049
16050         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
16051         clause from BSD license, pursuant with
16052
16053           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
16054
16055 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16056
16057         * loop.c (load_mems): Reformat slightly.
16058         * basic-block.h (regset_head): New typedef.
16059         (INIT_REG_SET): New macro.
16060
16061 1999-11-22  Bruce Korb  <autogen@linuxbox.com
16062
16063         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
16064         (mips-dec-bsd*): non-functional code
16065         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
16066
16067         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
16068         added three replacement fixes
16069         (no_double_slash): removed comments that are not (any longer) pertinent
16070         (bad_lval): this fix currently runs against many files.
16071         The comment seems to indicate that we should select for files
16072         containing 'pragma extern_prefix'.
16073
16074         * fixinc/fixinc.x86-linux-gnu: deleted
16075         * fixinc/inclhack.sh:  regen
16076         * fixinc/fixincl.x:  regen
16077         * fixinc/fixincl.sh:  regen
16078
16079 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
16080
16081         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
16082         its code is INSN and it has no notes.
16083
16084 1999-11-22  Andrew Haley  <aph@cygnus.com>
16085
16086         * varasm.c (function_defined): Remove.
16087         (make_function_rtl): Don't set function_defined.
16088         (make_decl_rtl): Remove global register warning.
16089         * regclass.c (no_global_reg_vars): New variable.
16090         (globalize_reg): Warn if function has already been defined.
16091         (regclass_init): Set no_global_reg_vars.
16092
16093 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16094
16095         * regclass.c (reg_pref): New structure and static variable
16096         (prefclass): Delete.
16097         (altclass): Delete.
16098         (all uses of prefclass and altclass): Use reg_pref instead.
16099
16100 1999-11-21  Nick Clifton  <nickc@cygnus.com>
16101
16102         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
16103         -malignment-traps.
16104         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
16105         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
16106         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
16107
16108 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
16109
16110         * varasm.c (output_constructor): Solve problem with long long
16111         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
16112
16113 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16114
16115         * global.c (allocno): New structure and static variable.
16116         (allocno_reg): Remove, all references replaced by allocno.
16117         (allocno_size): Likewise.
16118         (hard_reg_conflicts): Likewise.
16119         (hard_reg_preferences): Likewise.
16120         (hard_reg_copy_preferences): Likewise.
16121         (hard_reg_full_preferences): Likewise.
16122         (regs_someone_prefers): Likewise.
16123         (allocno_calls_crossed): Likewise.
16124         (allocno_n_refs): Likewise.
16125         (allocno_live_length): Likewise.
16126         (find_reg): Rename ALLOCNO to NUM.
16127
16128         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
16129         references updated.
16130         (may_move_out_cost): New variable.
16131         (init_reg_sets_1): Initialize may_move_out_cost.
16132         (record_reg_classes): Use may_move_out_cost.
16133
16134         * regclass.c (dump_regclass): New function.
16135         (regclass): New parameter DUMP, call DUMP_REGCLASS.
16136         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
16137         pass rtl_dump_file to regclass.
16138         * rtl.h (regclass): Update prototype.
16139
16140 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16141
16142         * i386.md (neg, not and abs patterns): Revmap to use
16143         ix86_expand_unary_operator and ix86_unary_operator_ok.
16144         (add?f and sub?f expanders): Force operand 1 to register.
16145         * i386.c (ix86_expand_unary_operator): Rewrite.
16146         (ix86_unary_operator_ok): Ensure that memory operands
16147         match real opcode.
16148         (ix86_binary_operator_ok): Do not allow operand 1 to
16149         come into memory and operand 0 not.
16150         (ix86_expand_binary_operator): Ensure that
16151         src1 is not non-matching memory.
16152
16153         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
16154         to support integer registers and memory.
16155         (abss?2_integer): Likewise.
16156
16157         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
16158         (REG_CLASS_NAMES): Likewise.
16159         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
16160         and GENERAL_REGS.
16161         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
16162         (movsf): Likewise; unify 4th and 5th alternative.
16163         (pushdf): Likewise.
16164         (movdf_1): Likewise; rename to movdf_integer.
16165         (pushxf): Likewise; rename to pushxf_integer; fix output template;
16166         remove redundant splitter.
16167         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
16168         (movdf_nointeger): New.
16169         (movxf_nointeger): New.
16170         (pushxf_nointeger): New.
16171
16172         * i386.md (extend?f?f): Split to expander and pattern, refuse two
16173         memory operands in patterns.
16174         (fop*): Refuse two memory operands.
16175
16176         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
16177         on !TARGET_USE_CLTD CPUs.
16178
16179 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
16180
16181         * extend.texi: Document C++ restricted pointers and references.
16182
16183 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
16184
16185         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
16186         (invalidate_skipped_set): Call it unconditionally.
16187         (cse_set_around_loop): Likewise.
16188
16189 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
16190
16191         * rtl.texi (mem): Add documentation for alias-set argument
16192         to RTX `mem'.
16193
16194 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16195
16196         * i386.h (struct_processor_costs): New fields int_load, int_store,
16197         fp_move, fp_load and fp_store
16198         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
16199         fp->int moves
16200         (MEMORY_MOVE_COST): New macro.
16201         * i386.c (386_cost): Define new fields.
16202         (i486_cost): Likewise.
16203         (pentium_cost): Likewise.
16204         (pentiumpro_cost): Likewise.
16205         (k6_cost): Likewise.
16206
16207 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
16208                           Geoffrey Keating  <geoffk@cygnus.com>
16209
16210         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
16211
16212         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
16213         MASK_ALIGN_INT.
16214
16215         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
16216         (TARGET_STRICT_ALIGNMENT): New macro.
16217         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
16218         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
16219         * invoke.texi (M680x0 Options): Document -mstrict-align.
16220
16221 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
16222                           Richard Henderson  <rth@cygnus.com>
16223
16224         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
16225         (ix86_split_long_move): Declare.
16226         * i386.c (split_xf, ix86_split_movdi): Remove.
16227         (ix86_split_to_parts, ix86_split_long_move): New.
16228         * i386.md (dimode move splitters): Use ix86_split_long_move.
16229         (dfmode move splitters): Likewise.
16230         (xfmode move splitters): Likewise.
16231         (movsf_1): Allow F->r.
16232         (movdf_1, movxf_1): Allow F->ro.
16233
16234 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
16235
16236         * except.h (struct eh_entry): Add goto_entry_p.
16237         (eh_region_from_symbol): Remove prototype.
16238         * except.c (find_func_region_from_symbol): New function.
16239         (emit_cleanup_handler): Likewise.
16240         (eh_region_from_symbol): Make it static.
16241         (add_new_handler): Verify the argument.
16242         (find_func_region): Update comment.
16243         (expand_eh_region_end): Expand handlers here, rater than waiting
16244         until expand_leftover_cleanups or start_all_catch.
16245         (expand_leftover_cleanups): Don't expand here.
16246         (expand_start_all_catch): Or here.
16247         (expand_rethrow): Check the return value from find_func_region.
16248         * function.c (expand_function_end): Emit the catch_clauses.
16249
16250 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
16251
16252         * integrate.c (expand_inline_function): Add necessary check for NULL.
16253
16254 1999-11-18  Nick Clifton  <nickc@cygnus.com>
16255
16256         * toplev.c (main): Correctly detect an unrecognised option.
16257
16258         * cppinit.c (cpp_handle_option): Do not claim to have consumed
16259         a -f option if it has not been recognised.
16260
16261 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
16262
16263         * basic-block.h (update_life_extent): Remove trailing comma on
16264         enumeration type list.
16265
16266 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16267
16268         * varasm.c (output_constructor) Solved problem with long long
16269         bitfields. Corrected calculating this_time and shift. Also
16270         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
16271
16272 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
16273
16274         * flow.c (split_edge): Take looping structure into account when
16275         determining where to put the new block note.
16276
16277 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
16278
16279         * Makefile.in (ggc-none.o): Provide host specific version if
16280         needed.
16281
16282 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
16283
16284         * cse.c (delete_trivially_dead_insns): Identify no-op insns
16285         containing subregs too.
16286
16287 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
16288
16289         * invoke.texi: Add documentation for -muninit-const-in-rodata.
16290         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
16291         (TARGET_UNINIT_CONST_IN_RODATA): Define.
16292         (text_section): Add switches -munint-const-in-rodata and
16293         -mno-uninit-const-in-rodata.
16294         (ASM_OUTPUT_COMMON): Remove.
16295         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
16296         const objects should be placed in read-only data. Otherwise declare
16297         them in common.
16298
16299 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
16300
16301         * jump.c (jump_optimize_1): Revert last change.
16302
16303 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
16304
16305         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
16306         test if optimizing for size.
16307
16308 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
16309
16310         * Makefile.in (toplev.o): Depend on except.h.
16311         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
16312
16313 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16314
16315         * i386.md (divmodsi4): Rewrite to expander.
16316         (*divmodsi4_nocltd): New.
16317         (*divmodsi4_cltd): New.
16318         (divmodsi4 splitter): Handle the case when input comes in edx.
16319         (udivmodhi4): Do not use constraints in exander.
16320         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
16321
16322 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
16323
16324         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
16325         for the common case.
16326
16327 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
16328
16329         * explow.c (hard_function_value): Add outgoing argument.
16330         * expr.h (hard_function_value): Declare it.
16331         * calls.c (expand_call, emit_library_call_value): Update callers.
16332         * function.c (aggregate_value_p): Ditto.
16333         (diddle_return_value): Must look at the outgoing registers
16334         on archs with register windows.
16335
16336 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
16337
16338         * alpha.c (alpha_build_va_list): Use make_lang_type and
16339         initialize TYPE_NAME for the va_list record.
16340
16341         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
16342
16343         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
16344         for printing.
16345         * ggc.h (struct ggc_statistics): Rearrange elements for better
16346         packing on 64-bit hosts.
16347         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
16348         (compute_nearerout): Likewise.
16349
16350 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
16351
16352         * config/rs6000/rs6000.c (first_reg_to_save): Save
16353         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
16354
16355 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
16356
16357         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
16358         notion of nesting to find the DIE for a type or function.
16359         DIEs can go in limbo even if we got a context_die.
16360         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
16361         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
16362         for local type.
16363         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
16364         (gen_type_die): Writing out the context doesn't cause member class
16365         template instantiations to be written out as well.
16366
16367 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
16368
16369         * rs6000.h (ASM_OUTPUT_DEF): New.
16370         Based on proposed addition from David Edelsohn.
16371
16372 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
16373             Bruce Korb  <autogen@linuxbox.com>
16374
16375         * fixinc/inclhack.def
16376         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
16377         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
16378                 in net/inet.h.
16379         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
16380         (svr4_endian): enabled with SVR5
16381         (svr4_mkdev): simplified syntax and enabled with SVR5
16382
16383 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
16384
16385         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
16386         * configure: Rebuilt.
16387         * config/t-freebsd-thread: New file.
16388
16389 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
16390
16391         * i386.c (ix86_decompose_address): Verify the base is a REG
16392         before trying to examine its register number.
16393
16394         * basic-block.h: Remove all #defines and prototypes related to
16395         integer lists.
16396         (free_bb_mem, compute_preds_succs): Remove prototype.
16397         * rtl.h (free_bb_mem): Remove prototype.
16398         * flow.c (alloc_int_list_node); Remove function.
16399         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
16400         (compute_preds_succs, free_bb_mem): Likewise.
16401         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
16402         * toplev.c (rest_of_compilation): Likewise.
16403         * haifa-sched.c (build_control_flow): Use flow generated edge
16404         list to build the haifa specific edge list.
16405         (find_rgns): Use new CFG data structures instead of pred/succ lists.
16406         (schedule_insns): Do not build pred/succ lists anymore.  Instead
16407         build the edge table.
16408
16409         * basic-block.h (dump_bb_data): Remove declaration.
16410         * flow.c (dump_bb_data): Remove function.
16411         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
16412         (sbitmap_union_of_predsucc): Likewise.
16413
16414         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
16415         argument.  All callers changed.
16416         (delete_null_pointer_checks_1): No longer need to compute the
16417         pred/succ lists.
16418
16419         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
16420         All callers changed.
16421         (pre_expr_reaches_here_p_work): Likewise.
16422         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
16423         * lcm.c (compute_laterin): Fix initialization of LATER.
16424         (compute_nearerout): Similarly for NEARER.
16425
16426 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16427
16428         * cse.c (set_nonvarying_address_components): Delete unused function.
16429         (refers_to_p): Likewise.
16430
16431 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
16432
16433         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
16434         needed.
16435
16436 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16437
16438         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
16439         definition in do while (0).
16440
16441 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
16442
16443         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
16444
16445 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
16446
16447         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
16448
16449 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
16450
16451         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
16452         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
16453         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
16454         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
16455
16456         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
16457         saved on the stack.  Output more accurate stack frame statistics
16458         into assembler file.
16459
16460 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
16461
16462         * genextract.c (record_insn_name): New function.
16463         (get_insn_name): No longer a stub.
16464         (main): Call record_insn_name for each insn.  After each label
16465         written, print the insn name in a comment.
16466
16467 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16468
16469         * output.h (const_section, init_section, fini_section): Add
16470         prototypes.
16471
16472         * alpha/elf.h (const_section): Delete declaration.
16473
16474         * svr4.h (const_section): Likewise.
16475
16476 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
16477
16478         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
16479         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
16480         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
16481         expressions.
16482         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
16483         variable-sized array bounds.
16484
16485 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
16486
16487         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
16488         ASM_OUTPUT_LABEL.
16489
16490 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16491
16492         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
16493         addresses the same way GO_IF_LEGITIMATE_INDEX does.
16494
16495 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16496
16497         * cse.c (hash_arg_in_struct): Delete.
16498         (struct table_elt): Delete elt in_struct.
16499         (struct set): Delete elt src_in_struct.
16500         (merge_equiv_classes): Don't set either hash_arg_in_struct or
16501         the corresponding in_struct elts.
16502         (canon_hash): Likewise.
16503         (safe_hash): Likewise.
16504         (find_best_addr): Likewise.
16505         (record_jump_cond): Likewise.
16506         (cse_insn): Likewise.
16507
16508 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
16509
16510         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
16511
16512         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
16513         unsigned types.
16514
16515 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
16516
16517         * function.c (diddle_return_value): Put back check that the DECL_RTL
16518         for the function is a register.
16519
16520         * function.c (diddle_return_value): Use hard_function_value to
16521         get an rtx suitable for use in the USE/CLOBBER insn.
16522
16523         * global.c (global_conflicts): Update comments.
16524         (record_conflicts): No need to record conflicts between pseudos here.
16525
16526 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
16527
16528         * fixinc/fixincl.c: Added verbose levels for status messages
16529
16530 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16531
16532         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
16533         operand as argument to expand_and or expand_binop.
16534
16535 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
16536
16537         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
16538         gcc_add_string_root.
16539
16540 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
16541
16542         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
16543
16544 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
16545
16546         * flow.c (compute_flow_dominators): Initially put all blocks on
16547         the worklist.
16548         * lcm.c (compute_antinout_edge, compute_available): Similarly.
16549         * gcse.c (compute_cprop_avinout): Remove.
16550         (compute_cprop_data): Use compute_available.
16551         (delete_null_pointer_checks_1): Use compute_available.
16552
16553         * basic-block.h (compute_available): Returns a void now.
16554         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
16555         to return a value anymore.
16556         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
16557         worklists.  Fix boundary cases. Compute maximal solutions.
16558         (compute_laterin, compute_nearerout): Similarly.
16559
16560         * dwarf2out.c (add_AT_location_description): Allow
16561         (mem (plus (pseudo) (...)) too.
16562
16563 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
16564
16565         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
16566
16567 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
16568                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16569
16570         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
16571
16572         * gansidecl.h: Likewise.
16573
16574         * rtl.c: Likewise.
16575
16576         * rtl.h: Likewise.
16577
16578         * toplev.h: Likewise.
16579
16580         * tree.c: Likewise.
16581
16582         * tree.h: Likewise.
16583
16584         * varray.c: Likewise.
16585
16586         * varray.h: Likewise.
16587
16588 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
16589
16590         * gcov.c (struct arcdata): Add hits and total, remove prob.
16591         (output_branch_counts): New.
16592         (process_args): Set output_branch_counts if -c.
16593         (calculate_branch_probs): Store hits and total instead of
16594         percentage.
16595         (output_data): Emit counts if output_branch_counts is true.
16596         * gcov.texi (Invoking Gcov): Document -c switch..
16597
16598 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
16599
16600         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
16601         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
16602
16603 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
16604
16605         * invoke.texi (C Dialect Options): Add missing builtins from
16606         c-common.c to list.
16607         * extend.texi (Other Builtins): Copy to this list.
16608
16609 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16610
16611         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
16612         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
16613         redundant bitmap.h.
16614
16615 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
16616
16617         * flow.c (compute_flow_dominators): No longer treat basic block 0
16618         or (n_basic_blocks - 1) specially.  Clear the AUX field before
16619         starting computation of doms/pdoms.  Fix initial state for pdoms.
16620
16621 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16622
16623         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
16624         match rtl.o's: added ggc.h and toplev.h
16625         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
16626         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
16627         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
16628
16629 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
16630
16631         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
16632         from HAVE_DOS_BASED_FILESYSTEM.
16633         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
16634         HAVE_DOS_BASED_FILESYSTEM.
16635         (main): Likewise.
16636         (split_directories): Only special-case DOS file names if
16637         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
16638         instead of explicit tests.  Conditionalize on !VMS.
16639         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
16640         tests.  Conditionalize on !VMS.
16641         (process_command): Only use make_relative_prefix if !VMS.
16642         (free_split_directories): Conditionalize on !VMS.
16643         (DIR_UP): Conditionalize on !VMS.
16644
16645 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16646
16647         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
16648
16649 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16650
16651         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
16652         case.
16653
16654 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
16655
16656         * invoke.texi (Environment Variables): Document relative path
16657         lookup.
16658         * gcc.c (DIR_UP): If not defined, define as "..".
16659         (standard_bindir_prefix): New static, holds target location to
16660         install binaries.
16661         (split_directories): New function to split a filename into
16662         component directories.
16663         (free_split_directories): New function, release memory allocated
16664         by split_directories.
16665         (make_relative_prefix): New function, make a relative pathname if
16666         the compiler is not in the expected location.
16667         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
16668         can figure out an appropriate prefix from argv[0].
16669         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
16670         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
16671         STANDARD_BINDIR_PREFIX.
16672
16673 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16674
16675         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
16676         in c4x.c.
16677         * config/c4x/c4x.h: Moved prototypes to c4x.h.
16678         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
16679         c4x_secondary_memory_needed) Delete.
16680         (fp_zero_operand): Add mode argument.
16681
16682 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
16683
16684         * reload1.c (reload_reg_free_for_value_p): Don't use a register
16685         that is in reload_reg_used.
16686
16687 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
16688
16689         * config/arm/arm-protos.h: New file: Prototypes for functions
16690         defined in arm.c and pe.c.
16691         * config/arm/arm.h: Fix compile time warnings.
16692         * config/arm/arm.c: Fix compile time warnings.
16693         * config/arm/pe.h: Fix compile time warnings.
16694         * config/arm/aout.h: Fix compile time warnings.
16695
16696 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
16697
16698         * config/m32r/m32r-protos.h: New file: Prototypes for functions
16699         defined in m32r.c
16700
16701         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
16702         Add support for subtargets.
16703         Add prototypes for new predicates.
16704         Add scheduling macros.
16705
16706         * config/m32r/m32r.c: Fix compile time warnings.
16707         (int8_operand): New predicate function.
16708         (reg_or_cmp_int16_operand): New predicate function.
16709         (extend_operand): New predicate function.
16710         (m32r_adjust_code): New scheduling function.
16711         (m32r_adjust_priorty): New scheduling function.
16712         (m32r_sched_init): New scheduling function.
16713         (m32r_sched_reorder): New scheduling function.
16714         (m32r_sched_variable_issue): New scheduling function.
16715         (direct_return): New codegen function.
16716         (m32r_not_same_reg): New rtl testsing function.
16717
16718         * config/m32r/m32r.md: Fix compile time warnings.
16719         Add support for pre decrement and post increment memory
16720         references.
16721         Add S<cc> patterns.
16722         Add fabs patterns.
16723
16724 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16725
16726         * global.c (EXECUTE_IF_CONFLICT): Don't define.
16727         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
16728         (find_reg): Likewise.
16729
16730 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
16731
16732         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
16733         to avoid assembler errors.
16734
16735 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
16736
16737         * config/v850/v850-protos.h: New file: Prototypes for functions
16738         defined in v850.c
16739         * config/v850/v850.h: Move prototypes to v850-protos.h
16740         * config/v850/v850.c: Move prototypes to v850-protos.h
16741         * config/v850/v850.md: Fix compile time warnings.
16742
16743         * config/fr30/fr30-protos.h: New file: Prototypes for functions
16744         defined in fr30.c
16745         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
16746         * config/fr30/fr30.c: Fix compile time warnings.
16747         * config/fr30/fr30.md: Fix compile time warnings.
16748
16749 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
16750
16751         * tree.h (get_containing_scope): Declare it.
16752         * tree.c (get_containing_scope): New fucntion.
16753         (decl_function_context): Use it.
16754         * toplev.c (rest_of_compilation): Use get_containing_scope.
16755
16756 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16757
16758         * Makefile.in (rtl.o): Depend on toplev.h.
16759
16760 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
16761
16762         * cse.c (delete_trivially_dead_insns): Replace alloca with
16763         xmalloc/xcalloc.
16764         * except.c (update_rethrow_references): Likewise.
16765         (init_eh_nesting_info): Likewise.
16766         * function.c (identify_blocks): Likewise.
16767         * gcse.c (dump_hash_table): Likewise.
16768         * graph.c (print_rtl_graph_with_bb): Likewise.
16769         * loop.c (combine_movables): Likewise.
16770         (move_movables): Likewise.
16771         (count_loop_regs_set): Likewise.
16772         (strength_reduce): Likewise.
16773         * profile.c (compute_branch_probabilities): New function, split
16774         out from ...
16775         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
16776         * regclass.c (regclass): Likewise.
16777         * regmove.c (regmove_optimize): Likewise.
16778         * toplev.c (compile_file): Likewise.
16779         (main): Don't mess with the stack rlimit.
16780
16781 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
16782
16783         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
16784         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
16785
16786 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
16787
16788         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
16789
16790 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
16791
16792         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
16793         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
16794         macro expansion.
16795
16796 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
16797
16798         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
16799
16800 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
16801
16802         * gcse.c (post_dominators): Kill.
16803         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
16804         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
16805         pass in a pdom array since we do not need pdoms.
16806         * haifa-sched.c (schedule_insns): Similarly.
16807         * flow.c (compute_dominators): Remove dead function.
16808         (compute_flow_dominators): Do not compute doms or pdoms if the
16809         caller does not request them.  Split up loop to build doms and
16810         pdoms.  Use a worklist to compute doms and pdoms.
16811         * basic-block.h (compute_dominators): Remove prototype.
16812
16813 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
16814
16815         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
16816         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
16817         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
16818         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
16819         (cant_move, fed_by_spec_load, is_load_insn): Remove.
16820         (schedule_region): Remove unused variable.
16821         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
16822
16823 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
16824
16825         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
16826         (update_equiv_regs): Likewise.
16827         (block_alloc): Likewise.
16828         * reg-stack.c (reg_to_stack): Likewise.
16829         (convert_regs_2): Likewise.
16830         * reload1.c (reload_as_needed): Likewise.
16831
16832 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
16833
16834         * Makefile.in (dbxout.o): Depend on ggc.h.
16835         (dwarf2out.o): Likewise.
16836         (xcoffout.o): Likewise.
16837         * dbxout.c: Include ggc.h.
16838         (dbxout_init): Register lastfile as a root.
16839         * dwarf2out.c: Include ggc.h.
16840         (dwarf2out_line): Register lastfile as a root.
16841         * xcoffout.c: Include ggc.h.
16842         (xcoffout_source_line): Register xcoff_lastfile as a root.
16843
16844 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
16845
16846         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
16847
16848 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
16849
16850         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
16851         defined.
16852         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
16853
16854 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16855
16856         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
16857         (EXECUTE_IF_CONFLICT): Likewise.
16858         (ALLOCNO_LIVE_P): Avoid signed division.
16859         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
16860         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
16861         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
16862
16863 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
16864
16865         * haifa-sched.c (schedule_block): Don't crash if there's no
16866         next insn for an interblock movement.
16867         (add_branch_dependences): Don't allow clobber insns to move either.
16868
16869 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
16870
16871         * i386.c (split_xf): New.
16872         * i386-protos.h: Declare it.
16873         * i386.md (movxf_1): Add general regs alternatives.
16874         (movxf_1+1): New splitter for same.
16875
16876 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
16877
16878         * function.c (purge_addressof_1): Add missing return values.
16879
16880 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
16881
16882         * function.c (is_addressof): New function.  Returns true if
16883         the given piece of RTL is an ADDRESSOF.
16884         (purge_addressof_1): Make boolean.  Return false if the
16885         ADDRESSOFs could not be purged.
16886         (purge_addressof): If ADDRESSOFs could not be purged from the
16887         notes attached to an insn, remove the offending note(s),
16888         unless they are attached to a libcall.
16889
16890 1999-11-05  Andreas Jaeger  <aj@suse.de>
16891
16892         * genoutput.c (null_operand =): Initialize all fields.
16893
16894         * errors.h: Add extern to prototypes.
16895
16896 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
16897
16898         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
16899         * configure: Rebuilt.
16900
16901 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16902
16903         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
16904         (mirror_conflicts): New function.
16905         (global_alloc): Call it.
16906         (expand_preferences): Remove redundant CONFLICTP test.
16907         (find_reg, dump_conflicts): Likewise.
16908         (prune_preferences): Process conflicts one word at a time.
16909
16910 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
16911
16912         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
16913         instead of an explicit loop.
16914
16915 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
16916
16917         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
16918         if REG_RETVAL check succeeds, then put classp in src_elt.
16919
16920 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
16921
16922         * function.c (pad_to_arg_alignment): Only update argument_pad
16923         if the argument's alignment is greater than STACK_BOUNDARY.
16924
16925 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
16926
16927         * bitmap.h (BITMAP_XFREE): New.
16928         * flow.c (life_analysis): Use it.
16929         (life_analysis_1): Free blocks.
16930
16931         * combine.c (undo_commit): New.
16932         (try_combine): Use it.  Don't zap undobuf.undos.
16933         (combine_instructions): Don't zap undobuf.undos; free the
16934         undobuf.frees list.
16935
16936         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
16937
16938         * stmt.c (cost_table_): New.
16939         (estimate_case_costs): Use it instead of xmalloc.
16940
16941         * toplev.c (compile_file): Reuse dumpname memory instead
16942         of strdup'ing it.
16943
16944 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
16945
16946         * reg-stack.c (convert_regs_1): Initialize target_stack->top
16947         after verifying an EH edge.
16948
16949         * haifa-sched.c (init_rgn_data_dependences): Correctly
16950         size bb_pending_lists_length when zeroing.
16951
16952 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
16953
16954         * function.c (diddle_return_value): New.
16955         (expand_function_end): Use it.
16956         * stmt.c (expand_null_return): Likewise.
16957         (expand_value_return): Likewise.
16958
16959         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
16960
16961         * reload1.c (reload): Don't remove return value clobbers.
16962
16963 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
16964
16965         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
16966
16967 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
16968
16969         * cse.c (cse_main): Use xmalloc, not alloca.
16970         (cse_basic_block): Likewise.
16971         * local-alloc.c (local_alloc): Likewise.
16972
16973 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
16974                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16975
16976         * rtl.c: Include toplev.h.
16977         (fatal): Remove declaration.
16978
16979 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
16980
16981         * haifa-sched.c (schedule_block): Fix thinko.
16982
16983 1999-11-03  James McKelvey <mckelvey@fafnir.com>
16984
16985         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
16986         S_IR* defined values
16987
16988 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
16989
16990         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
16991         call `malloc' instead.
16992
16993 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
16994
16995         * flags.h (flag_renumber_insns): Declare.
16996         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
16997         renumbering table.
16998         * rtl.h (renumber_insns): Change prototype.
16999         * toplev.c (flag_renumber_insns): Define.
17000         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
17001
17002 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
17003
17004         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
17005         and fpsqrtd.  Use them and create fdiv function unit to more
17006         accurately represent fpu sqrt pipeline semantics on UltraSparc.
17007         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
17008
17009 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
17010
17011         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
17012         3 on UltraSparc.
17013         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
17014         insn into ready list, do not use just a raw swap.
17015
17016 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
17017
17018         * rtl.h (renumber_insns): New function.
17019         (remove_unnecessary_notes): Likewise.
17020         * emit-rtl.c (renumber_insns): Define.
17021         (remove_unncessary_notes): Likewise.
17022         * toplev.c (rest_of_compilation): Remove dead code.
17023         Use renumber_insns and remove_unncessary_notes.
17024
17025         * gcse.c (struct null_pointer_info): New type.
17026         (get_bitmap_width): New function.
17027         (current_block): Remove.
17028         (nonnull_local): Likewise.
17029         (nonnull_killed): Likewise.
17030         (invalidate_nonnull_info): Take a null_pointer_info as input.
17031         (delete_null_pointer_checks_1): New function.
17032         (delete_null_pointer_checks): Use it.
17033
17034         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
17035         (split_edges): Likewise.
17036         (schedule_block): Likewise.
17037         (compute_block_backward_dependencies): Likewise.
17038         (schedule_region): Likewise.
17039         (schedule_insns): Likewise.
17040
17041 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
17042
17043         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
17044         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
17045         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
17046         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
17047         * jump.c (delete_unreferenced_labels): Don't delete if
17048         LABEL_ALTERNATE_NAME is set.
17049         * print-rtl.c (print_rtx): Dump alternate name.
17050         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
17051         * rtl.h (LABEL_ALTERNATE_NAME): Define.
17052         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
17053         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
17054
17055 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17056
17057         * fix-header.c (recognized_extern, recognized_function): Constify
17058         a char*.
17059
17060         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
17061         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
17062         (compute_available): Remove unused variable `last'.
17063         (compute_nearerout): Remove unused variable `temp_bitmap'.
17064         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
17065         Remove unused variable `x'.
17066
17067         * scan.h (recognized_function, recognized_extern): Constify a
17068         char*.
17069
17070         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
17071
17072 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17073
17074         * varasm.c (decode_rtx_const): Use XSTR to access the string
17075         of a SYMBOL_REF.
17076
17077 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
17078
17079         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
17080
17081 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17082
17083         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
17084
17085 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
17086
17087         * pa.c (ireg_operand): New function.
17088         * pa.h (PREDICATE_CODES): Handle ireg_operand.
17089         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
17090         Fix out of date comment.
17091
17092         * pa.md (negdi2): Turn into expander + anonymous pattern.
17093
17094         * reload.c (find_reloads): Fix typos in recent change.
17095
17096         * dwarf2out.c: Do not include ctype.h.
17097
17098 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17099
17100         * regclass.c (record_reg_classes): Always use may_move_cost when
17101         seeing how operand fits with various register classes.
17102
17103 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
17104
17105         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
17106         * toplev.c: Revert Nov 1 13:22 change.
17107
17108 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
17109
17110         * config/pa/pa.md (height reduction patterns): Add checks for
17111         overlapping operands to avoid semantic-destroying splits for
17112         height reduction patterns.
17113
17114 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17115
17116         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
17117         have been an hyphen, fixed.
17118         * configure: Rebuilt.
17119
17120 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
17121
17122         * config/arm/tpe.h: Add prototypes for exported functions.
17123         * config/arm/pe.c: Fix compile time warnings.
17124         * config/arm/semi.h: Fix compile time warnings.
17125         * config/arm/arm.c: Fix compile time warnings.
17126         * config/arm/arm.h: Fix compile time warnings.
17127         * config/arm/arm.md: Fix compile time warnings.
17128         * config/arm/thumb.c: Fix compile time warnings.
17129         * config/arm/thumb.h: Fix compile time warnings.
17130         * config/arm/thumb.md: Fix compile time warnings.
17131
17132 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
17133
17134         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
17135         detection code
17136
17137         * unroll.c (unroll_loop): Remove LOOP notes when loop is
17138         completely unrolled.
17139
17140 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17141
17142         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
17143
17144 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
17145
17146         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
17147         * rtl.h (rtx_equal_p): Move prototype.
17148         * rtl.c (rtx_equal_function_value_matters): Move from
17149         rtlanal.c
17150         (rtx_equal_p): Likewise.
17151         * rtlanal.c (rtx_equal_function_value_matters): Delete.
17152         (rtx_equal_p): Likewise.
17153
17154 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
17155
17156         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
17157         ! HAS_INIT_SECTION.
17158
17159 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
17160
17161         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
17162
17163         * pa.h (ADDR_VEC_ALIGN): Define.
17164
17165         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
17166         notes when presented with "if (foo) break; end_of_loop" and
17167         the break sequence gets moved out of the loop.
17168
17169         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
17170         Remove explicit zero initializations of entries within MAP.
17171
17172 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
17173
17174         * reg-stack.c (convert_regs_1): Handle EH edges specially.
17175
17176 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
17177
17178         * bitmap.h (BITMAP_XMALLOC): New macro.
17179         * flow.c (CLEAN_ALLOCA): Remove.
17180         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
17181         (life_analysis): Likewise.
17182         (update_life_info): Don't use CLEAN_ALLOCA.
17183         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
17184         (calculate_global_regs_live): Likewise.
17185         (print_rtl_with_bb): Likewise.
17186         (verify_flow_info): Likewise.
17187         * global.c (global_alloc): Likewise.
17188         (global_conflicts): Likewise.
17189         * integrate.c (save_for_inline_nocopy): Likewise.
17190         (expand_inline_function): Likewise.
17191         * jump.c (jump_optimize_1): Likewise.
17192         (duplicate_loop_exit_test): Likewise.
17193         (thread_jumps): Likewise.
17194         * loop.c (loop_optimize): Likewise.
17195         (combine_givs): Likewise.
17196         (recombine_givs): Likewise.
17197         * reorg.c (dbr_schedule): Likewise.
17198         * unroll.c (unroll_loop): Likewise.
17199
17200         * combine.c (combine_instructions): Use xmalloc instead of alloca.
17201
17202 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
17203
17204         * toplev.c (rest_of_compilation): Don't optimize the CFG
17205         when rebuilding, just before dbr.
17206
17207 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17208
17209         * output.h (assemble_end_function, assemble_destructor,
17210         assemble_constructor, assemble_gc_entry, assemble_global,
17211         assemble_label, output_constant_pool) Constify a char*.
17212
17213         * varasm.c (assemble_destructor, assemble_constructor,
17214         assemble_gc_entry, assemble_end_function, assemble_global,
17215         assemble_label, output_constant_pool): Likewise.
17216
17217 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
17218
17219         * config/arm/thumb.c (thumb_expand_prologue): Add comments
17220         explaining what is goin on in this function.
17221
17222 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17223
17224         * regclass.c (record_reg_classes): In matching case, recompute
17225         costs since the direction of movement is different.
17226
17227 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
17228
17229         * resource.c (mark_target_live_regs): For unconditional branches,
17230         the resources found at the branch target should be added to the
17231         resources found so far, not intersected.
17232
17233 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
17234
17235         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
17236         old cpp's.
17237         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
17238         (sys/mman.h): Include this file only if #HAVE_MMAP.
17239         (run_compiles): Initialize `esac_fmt' with one old KR string, not
17240         with automatically concatenated ANSI strings.
17241
17242 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
17243
17244         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
17245         (DIV_ROUND_UP): Robustify.
17246         (ggc_recalculate_in_use_p): New function.
17247         (release_pages): Don't inline it.
17248         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
17249         outer contexts.
17250         (ggc_pop_context): Use ggc_recalculate_in_use_p.
17251         (clear_marks): Always save in_use_p.
17252         (sweep_pages): Use ggc_recalculate_in_use_p.
17253         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
17254         Release pages before counting statistics.
17255
17256 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
17257
17258         * toplev.c (rest_of_compilation): Fix thinko in this change:
17259
17260         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
17261
17262         (rest_of_compilation): If inside an inlined external function,
17263         pretend we are just being declared.
17264
17265 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
17266
17267         * flow.c (calculate_global_regs_live): Fix thinko.
17268
17269         * integrate.c (expand_inline_function): Fix bugs in previous
17270         change from Oct 28, 1999.
17271
17272 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
17273
17274         * stmt.c (expand_value_return): Fix typo in this change:
17275
17276         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17277         (expand_value_return): Correctly convert VAL when promoting function
17278         return; support RETURN_REG being a PARALLEL.
17279
17280 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
17281
17282         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
17283
17284 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17285
17286         * hard-reg-set.h (reg_names): Constify a char*.
17287
17288         * regclass.c  (reg_names): Likewise.
17289
17290         * regs.h (reg_names): Likewise
17291
17292         * a29k/a29k.c (reg_names): Delete declaration.
17293
17294         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
17295
17296         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
17297         arc_output_function_epilogue): Likewise.
17298
17299         * elxsi/elxsi.c (reg_names): Likewise.
17300
17301         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
17302
17303         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
17304         Likewise.
17305
17306         * m88k/m88k.c (output_function_profiler): Likewise.
17307
17308         * sparc/sparc.c (sparc_flat_output_function_prologue,
17309         sparc_flat_output_function_epilogue): Likewise.
17310
17311 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
17312
17313         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
17314         warning from -Wuninitialized and put it under -W.
17315         * function.c (uninitialized_vars_warning): Warn only when the
17316         corresponding flag is set.
17317
17318 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
17319
17320         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
17321         is nonzero and the single set does not have an elt, then assign
17322         it an elt.
17323
17324         * simplify-rtx.c: New file.
17325         * Makefile.in (OBJS): Add simplify-rtx.o
17326         (simplify-rtx.o): Add dependencies.
17327         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
17328         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
17329         (cse_gen_binary, simplify_unary_operation): Delete.
17330         (simplify_binary_operation, simplify_plus_minus): Likewise.
17331         (check_fold_consts, simplify_relation_operation): Likewise.
17332         (simplify_ternary_operation): Likewise.
17333         (delete_trivially_dead_insns): Simplify the contents of the
17334         REG_EQUAL note before trying to substitute it into the source
17335         of the reg-reg copy at the end of a libcall sequence.
17336
17337         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
17338         references/callers changed.
17339
17340         * mn10200.c (mn10200_va_arg): Force the return value into a
17341         register.
17342
17343         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
17344
17345         * cccp.c (macroexpand): Avoid out of range accesses for omitted
17346         arguments.
17347
17348 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
17349
17350         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
17351
17352 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
17353
17354         * fold-const.c (fold): Fix thinko when optimizing comparisons
17355         against -0.0.
17356
17357 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
17358
17359         * gcc.texi (Passes): Update front-end files to their current
17360         location.
17361
17362 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
17363
17364         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
17365         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
17366         (PREDICATE_CODES): Add addition_operation.
17367         * alpha-protos.h (addition_operation): Declare.
17368         (secondary_reload_class): Likewise.
17369         * alpha.c (addition_operation): New.
17370         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
17371         * alpha.md (adddi3): Turn into expander.
17372         (*lda, *adddi_2): New.
17373         (movsf, movdf patterns): Don't preference integer regs.
17374         (movsi, movdi patterns): Don't preference fp regs.
17375
17376 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
17377
17378         * genrecog.c (write_switch): Check for duplicate CODE cases.
17379
17380 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
17381
17382         * ggc-common.c: Update pre-function commentary.
17383         * ggc-page.c: Likewise.
17384         (poison): Remove.
17385         (poison_pages): Use memset directly.
17386         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
17387         (ggc_collect): Poison before sweeping.
17388         * ggc-simple.c: Update pre-function commentary.
17389         (ggc_alloc_obj): Poison non-zeroed memory.
17390
17391 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
17392
17393         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
17394         match format string, even on 64-bit hosts.
17395         * gcc-page.c (ggc_page_print_statistics): Likewise.
17396
17397 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
17398
17399         * config/i386/i386.c (ix86_cpu): Revert last patch.
17400         * config/i386/i386.h (ix86_cpu): Ditto.
17401
17402 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
17403
17404         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
17405         TYPE_SIZE, convert type of result to sizetype.
17406
17407 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
17408
17409         * flow.c (count_or_remove_death_notes): Equate NULL with the
17410         universal set.
17411
17412         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
17413         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
17414         dbr_schedule.
17415
17416         * i386.c (pic_label_no): Delete.
17417         (ix86_attr_length_default): Don't use single_set to peek
17418         inside a parallel.
17419
17420         * recog.c (peephole2_optimize): Allow recog_next_insn to index
17421         the first insn after bb->end.
17422         * i386.md (push mem peeps): Scratch is live after evaluation
17423         of the memory.
17424         (cmp mem peep): Similarly.
17425
17426 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
17427
17428         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
17429         * function.c (pad_to_arg_alignment): Add missing braces.
17430
17431 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17432
17433         * alpha/alpha-protos.h (literal_section): Add prototype.
17434         (alpha_need_linkage, alpha_start_function,alpha_end_function):
17435         Constify a char*.
17436
17437         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
17438         prototype.
17439         (alpha_start_function, alpha_end_function, float_strings,
17440         alpha_need_linkage): Constify a char*
17441
17442         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
17443
17444         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
17445
17446         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
17447
17448         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
17449
17450 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17451
17452         * flow.c (debug_flow_info): Add prototype.
17453
17454         * gcc.c (main): Likewise.
17455
17456         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
17457         Likewise.
17458
17459         * reload1.c (failed_reload, set_reload_reg): Likewise.
17460
17461         * mips-tfile.c (main): Likewise.
17462         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
17463         with ATTRIBUTE_NORETURN.
17464
17465 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
17466
17467         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
17468         DECL is not a memory ref.
17469
17470 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
17471
17472         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
17473         * config/i386/i386.c (ix86_cpu): Add extern attribute.
17474
17475 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
17476
17477         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
17478         * config/mips/elf64.h: ditto.
17479
17480 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
17481
17482         * expr.c (emit_push_insn): New argument alignment_pad.
17483         Update all callers.  Adjust stack pointer based on alignment pad.
17484         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
17485         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
17486         (locate_and_pad_parm): New argument alignment_pad.  Update all
17487         callers.
17488         * expr.h (emit_push_insn): Update prototype.
17489         (locate_and_pad_parm): Update prototype.
17490         * calls.c (arg_data):  Add new field alignment_pad.
17491         (initialize_argument_information): Initialize alignment_pad.
17492
17493 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
17494
17495         * except.c (free_eh_nesting_info): Free the info itself.
17496         * function.c (free_after_compilation): Don't free NULL.
17497         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
17498         (pre_edge_insert): Free inserted.
17499         * stmt.c (free_stmt_status): Don't free NULL.
17500
17501 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
17502
17503         * gcov.c (DIR_SEPARATOR): Provide default.
17504         (output_data): Add test for MS-DOS format absolute filename.
17505         (fancy_abort): Correct program name.
17506         (open_files): Open all files in binary mode.
17507         * libgcc2.c (__bb_exit_func): Likewise.
17508
17509         * profile.c (init_branch_prob): Specify binary when opening files.
17510
17511         * flags.h (flag_unwind_tables): New decl.
17512         * toplev.c (flag_unwind_table): New definition.
17513         (f_options): Add -funwind-tables.
17514         (decode_g_option): Clarify warning when unknown -g option is given.
17515         (rest_of_compilation): If inside an inlined external function,
17516         pretend we are just being declared.
17517
17518         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
17519         (dwarf2out_frame_finish): Likewise.
17520
17521 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
17522
17523         * fold-const.c (merge_ranges): If not in0, but in1, handle
17524         upper bounds equal like subset case.
17525
17526 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
17527
17528         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
17529         passed in a register but moved to the stack.
17530
17531 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
17532
17533         * gcc.c (pass_exit_codes, greatest_status): New variables.
17534         (struct option_map): Add entry for "--pass-exit-codes".
17535         (execute): Update greatest_status if error.
17536         (display_help): Add documentation for -pass-exit-codes.
17537         (process_command): Handle -pass-exit-codes.
17538         (main): Look at pass_exit_codes and greatest_status on call to exit.
17539
17540 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17541
17542         * reload.c (find_reloads): Refine test for no input reload
17543         case to not includes reloads emitted after insn.
17544
17545         * function.c (find_temp_slots_from_address): Handle sum involving
17546         a register that points to a temp slot.
17547         (update_temp_slot_address): Make recursive call if both old and
17548         new are PLUS with a common operand.
17549         * calls.c (expand_call): Mark temp slot for result as having
17550         address taken.
17551
17552         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
17553
17554         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
17555         component as well as "BINUTILS".
17556
17557         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
17558         * integrate.c (copy_rtx_and_substitute): Likewise.
17559         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
17560         All callers changed.
17561         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
17562
17563         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
17564         gdb extensions, write size of type; also be more consistent
17565         in using references when this is a subtype.
17566
17567         * pa.md (extv, extzv, insv): Use define_expand to reject constant
17568         that is out of range.
17569
17570         * loop.c (unknown_constant_address_altered): New variable.
17571         (prescan_loop): Initialize it.
17572         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
17573         (invariant_p, case MEM): Remove handling for volatile and readonly;
17574         check new variable if readonly.
17575         (check_dbra_loop): Chdeck unknown_constant_address_altered.
17576
17577         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
17578         (addr_affects_sp_p): Removed from note_mem_written and only
17579         define #ifdef AUTO_INC_DEC.
17580
17581         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
17582
17583         * regclass.c (record_reg_classes): Properly handle register move
17584         directions.
17585
17586         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
17587         Don't think valid if both operands are invalid.
17588         (struct constant_descriptor): New field RTL.
17589         (mark_const_hash_entry): Mark it.
17590         (record_constant{,_rtx}): Initialize it.
17591         (output_constant_def): Allocate RTL in permanent obstack and
17592         save in table.
17593         ({record,compare}_constant_1): Modes must match for
17594         CONSTRUCTOR of ARRAY_TYPE.
17595
17596         * c-common.h (initializer_constant_valid_p): Delete decl from here.
17597         * output.h (initializer_constant_valid_p): Move decl to here.
17598         * c-common.c (initializer_constant_valid_p): Delete function from here.
17599         * varasm.c (initializer_constant_valid_p): Move function to here.
17600
17601         * tree.h (STRIP_SIGN_NOPS): New macro.
17602         * fold-const.c (optimize_minmax_comparison): New function.
17603         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
17604         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
17605         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
17606         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
17607         widening conversions.
17608         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
17609         to look at size of mode, not precision of type; also add missing cases.
17610         (optimize_bit_field_compare, decode_field_reference): Don't try to
17611         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
17612
17613         * dwarf2out.c (ctype.h): Include.
17614         (dwarf2out_set_demangle_name_func): New function.
17615         (size_of_line_info): Deleted.
17616         (output_line_info): Compute size of line info table from difference
17617         of labels.
17618         (base_type_die, add_name_attribute): Call demangle function, if any.
17619         (field_byte_offset): Use bits per word for variable length fields.
17620         (gen_array_type_die): Add array name.
17621         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
17622         (dwarf2out_add_library_unit_info): New function.
17623
17624         * explow.c (set_stack_check_libfunc): New function.
17625         (stack_check_libfunc): New static variable.
17626         (probe_stack_range): Allow front-end to set up a libfunc to call.
17627
17628         * combine.c (simplify_comparison): When making comparison in wider
17629         mode, check for having commuted an AND and a SUBREG.
17630         (contains_muldiv): New function.
17631         (try_combine): Call it when dividing a PARALLEL.
17632         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
17633         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
17634         a PLUS.
17635         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
17636         use one of the CLOBBERs instead.
17637         (if_then_else_cond): If comparing against zero, just return thing
17638         being compared.
17639
17640         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
17641         Don't generate shifts and subtract if have conditional arithmetic.
17642
17643         * rtl.h (delete_barrier): New declaration.
17644         * jump.c (jump_optimize): Set up to handle conditional call.
17645         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
17646         (delete_barrier): New function.
17647
17648         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
17649
17650         * recog.c (nonmemory_operand): Accept ADDRESSOF.
17651
17652         * tree.c (build_type_attribute_variant): Push to obstack of
17653         ttype around type_hash_canon call.
17654
17655         * expr.c (placeholder_list): Move decl to file scope.
17656         (expand_expr): Don't force access to volatile just because its
17657         address is taken.
17658         If ignoring reference operations, just expand the operands.
17659         (expand_expr, case COMPONENT_REF): Propagate
17660         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
17661         Refine test for using bitfield operations vs pointer punning.
17662         (expand_expr, case CONVERT_EXPR): If converting to
17663         BLKmode UNION_TYPE from BLKmode, just return inner object.
17664         Use proper mode in store_field call.
17665         Properly set sizes of object to store and total size in store_field
17666         call for convert to union.
17667         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
17668         memory (like for ADDR_EXPR).  Also, don't put constant in register if
17669         we'll want it in memory.
17670         (readonly_fields_p): New function.
17671         (expand_expr, case INDIRECT_REF): Call it if LHS.
17672         (expand_assignment): Handle a RESULT_DECL where
17673         DECL_RTL is a PARALLEL.
17674         (do_jump, case WITH_RECORD_EXPR): New case.
17675         (get_inner_reference): Always go inside a CONVERT_EXPR
17676         and NOP_EXPR if both modes are the same.
17677         (store_field): Use bitfield operations if size of bitsize is not same
17678         as size of RHS's type.
17679         Check for bitpos not a multiple of alignment in BLKmode case.
17680         Do block move in largest possible alignment.
17681         (store_constructor): Set BITSIZE to -1 for variable size and properly
17682         in case of array of BLKmode.
17683         (expand_expr_unaligned): New function.
17684         (do_compare_and_jump): Call it.
17685
17686         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
17687         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
17688         does not include 'o'.
17689
17690         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
17691         both SET_DEST and SET_SRC reference a virtual register.
17692         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
17693
17694         * integrate.c (expand_inline_function): Handle case of setting
17695         virtual stack vars register (from built in setjmp); when parameter
17696         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
17697         (subst_constant): Add new parm, MEMONLY.
17698         (expand_inline_function, integrate_parm_decls): Pass new parm.
17699         (integrate_decl_tree): Likewise.
17700         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
17701         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
17702         (copy_rtx_and_substitute, case SET): Add explicit calls to
17703         copy_rtx_and_substitute for both sides.
17704
17705         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
17706         constraints.
17707         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
17708         within INDEX_TYPE, instead of before.
17709         (fixup_gotos): Use f->target_rtl, not the next insn,
17710         since latter may be from a later fixup.
17711         (expand_value_return): Correctly convert VAL when promoting function
17712         return; support RETURN_REG being a PARALLEL.
17713         (expand_return): When checking for result in regs and having
17714         cleanup, consider PARALLEL in DECL_RTL as being in regs.
17715
17716 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
17717
17718         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
17719         last_nominal_fname): Mark const.
17720         (struct include_hash: name, nshort, control_macro): Mark
17721         const.
17722         (struct macrodef: symnam): Mark const.
17723         (struct if_stack: fname): Mark const.
17724         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
17725         (IStable): New character-syntax array which encompasses all
17726         the old is_foo arrays.
17727         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
17728         is_space): New macros for interrogating IStable.
17729         (check_macro_name): Kill last argument.  All callers changed.
17730
17731         * cppinit.c (initialize_char_syntax): Delete.
17732         (is_idchar, is_idstart, is_hor_space, is_space,
17733         trigraph_table): Delete.
17734         (IStable): New.  Initialize with clever macros to avoid
17735         information duplication.
17736         (builtin_array): Table of builtins to get rid of explicit list
17737         in initialize_builtins.
17738         (initialize_builtins): Use builtins_array.
17739         (cpp_start_read): Call init_IStable, and set IStable['$'] if
17740         opts->dollars_in_ident.
17741
17742         * cppexp.c: Change all refs to is_xyz[] arrays to use new
17743         is_xyz() macros.
17744         (cpp_parse_expr): Avoid 'format string is not constant'
17745         warning. Use ISGRAPH to identify printable chars.
17746         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
17747         is_xyz() macros.
17748         (read_and_prescan): Map trigraphs to chars with open-coded
17749         if-else-if-... sequence, not a lookup table.
17750         * cpphash.c: Change all refs to is_xyz[] arrays to use new
17751         is_xyz() macros.
17752         * cpplib.c: Change all refs to is_xyz[] arrays to use new
17753         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
17754         (check_macro_name): Remove ability to report an invalid
17755         assertion name, which is never used.
17756         (do_line): Constify a couple of char *'s.
17757         * cppmain.c (main): Call cpp_cleanup before returning.
17758
17759 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
17760
17761         * ggc.h (struct ggc_statistics): New type.
17762         (ggc_get_size): New function.
17763         (ggc_print_statistics): Likewise.
17764         * ggc-common.c (ggc_stats): New variable.
17765         (ggc_mark_rtx_children): Keep statistics.
17766         (ggc_mark_tree_children): Likewise.
17767         (ggc_print_statistics): New function.
17768         * ggc-page.c (struct globals): Add bytes_mapped field.
17769         (alloc_anon): Update it.
17770         (release_pages): Likewise.
17771         (ggc_get_size): New function.
17772         (ggc_page_print_statistics): New function.
17773         * ggc-simple.c (ggc_get_size): New function.
17774
17775 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
17776
17777         * flow.c (propagate_block): When the last reference to a label
17778         before an ADDR_VEC is deleted because the reference is a dead
17779         store, delete the ADDR_VEC.
17780
17781 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
17782
17783         * resource.c (find_free_register): Don't use the frame pointer
17784         if frame_pointer_needed.
17785
17786 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
17787
17788         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
17789         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
17790
17791         * config/i960/i960.c (i960_va_start): New locals base, num.
17792         Use INDIRECT_REF instead of ARRAY_REF on valist.
17793         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
17794
17795 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
17796
17797         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
17798
17799 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
17800
17801         * tree.def (PLACEHOLDER_EXPR): Update comments.
17802
17803 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17804
17805         * c-common.c (check_format_info): Avoid non-literal format string
17806         warnings when `first_arg_num' is zero.
17807
17808 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17809
17810         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
17811
17812 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
17813
17814         * arm.md (casesi_insn): Add a clobber of the condition code
17815         register.
17816
17817 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
17818
17819         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
17820         used by both cc1 and cc1plus.
17821
17822 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
17823
17824         * config/arm/arm.c: Initialise arm_structure_size_boundary to
17825         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
17826         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
17827         to the value 32 if it has not already been defined.
17828         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
17829         Override definition in arm.h with a value of 8.
17830
17831 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
17832
17833         * c-pragma.c (push_alignment): Don't check the return value
17834         of xmalloc.
17835
17836 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
17837
17838         * sparc.h (ADJUST_COST): Fix thinko.
17839
17840 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
17841
17842         * cccp.c (rescan): Fixed obp pointer handling around call to
17843         check_expand subroutine.
17844
17845 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
17846
17847         * gcse.c (delete_null_pointer_checks): Only record non-null info
17848         for pseudos when examining stores.
17849
17850         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
17851         splitters for these patterns.  Use "#" for output templates.
17852         (addsi3_carryin_shift): New pattern.
17853
17854 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
17855
17856         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
17857         of the function return register into a plain REG until
17858         after function inlining is done.
17859
17860 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
17861
17862         * jump.c (jump_optimize_1): If we did cross-jumping, and
17863         the data will matter, rebuild the CFG.
17864         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
17865         not optimizing.  Don't run shorten_branches.
17866         * toplev.c (rest_of_compilation): Run shorten_branches after
17867         reg_to_stack.
17868
17869 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
17870
17871         * rtl.h (note_stores): Add additional paramter.
17872         * rtlanal.c (reg_set_p_1): Take additional paramter.
17873         (reg_set_last_1): Likewise.
17874         (reg_set_p): Adjust call to note_stores.
17875         (reg_set_last): Likewise.
17876         (note_stores): Pass data parameter to worker function.
17877         * alias.c (record_set): Take additional parameter.
17878         (init_alias_analysis): Pass it.
17879         * caller-save.c (mark_set_regs): Take additional parameter.
17880         (save_call_clobbered_regs): Pass NULL to note_stores.
17881         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
17882         parameter.
17883         (record_dead_and_set_regs_1): Likewise.
17884         (reg_dead_at_p_1): Likewise.
17885         (combine_instructions): Adjust calls to note_stores.
17886         (try_combine): Likewise.
17887         (record_dead_insn): Remove.
17888         (record_dead_and_set_regs): Adjust calls to note_stores.
17889         (reg_dead_at_p): Likewise.
17890         * cse.c (invalidate_skipped_set): Take additional parameter.
17891         (cse_check_loop_start): Likewise.
17892         (cse_check_loop_start_value): Remove.
17893         (cse_set_around_loop): Adjust calls to note_stores.
17894         * flow.c (notice_stack_pointer_modification): Take additional
17895         parameter.  Remove duplicate declaration.
17896         (record_volatile_insns): Adjust calls to note_stores.
17897         * gcse.c (record_set_info): Take additional parameter.
17898         (record_last_set_info): Likewise.
17899         (invalidate_nonnull_info): Likewise.
17900         (record_set_insn): Remove.
17901         (compute_sets): Adjust calls to note_stores.
17902         (last_set_insn): Remove.
17903         (compute_hash_table): Adjust calls to note_stores.
17904         (insert_insn_end_bb): Likewise.
17905         (delete_null_pointer_checks): Likewise.
17906         * global.c (mark_reg_store): Take additional parameter.
17907         (mark_reg_clobber): Likewise.
17908         (reg_becomes_live): Likewise.
17909         (global_conflicts): Adjust calls to note_stores.
17910         (build_insn_chain): Likewise.
17911         * integrate.c (note_modified_parmregs): Take additional parameter.
17912         (mark_stores): Likewise.  Make it static.
17913         (save_for_inline_nocopy): Adjust calls to note_stores.
17914         (try_constants): Likewise.
17915         * integrate.h (mark_stores): Remove declaration.
17916         * jump.c (mark_modified_reg): Take additional parameter.
17917         (thread_jumps): Adjust calls to note_stores.
17918         * local-alloc.c (validate_equiv_mem_from_store): Take additional
17919         parameter.
17920         (no_equiv): Likewise.
17921         (reg_is_set): Likewise.
17922         (validate_equiv_mem): Adjust calls to note_stores.
17923         (update_equiv_regs): Likewise.
17924         (block_alloc): Likewise.
17925         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
17926         (note_addr_stored): Take additional parameter.
17927         (note_set_pseudo_multiple_uses): Likewise.
17928         (record_initial): Likewise.
17929         (prescan_loop): Adjust calls to note_stores.
17930         (strength_reduce): Likewise.
17931         (check_dbra_loop): Likewise.
17932         * regmove.c (flags_set_1): Take additional paramter.
17933         (mark_flags_life_zones): Adjust calls to note_stores.
17934         * reload1.c (mark_not_eliminable): Take additional parameter.
17935         (forget_old_reloads_1): Likewise.
17936         (reload_cse_invalidate_rtx): Likewise.
17937         (reload_cse_check_clobber): Likewise.
17938         (reload_combine_note_store): Likewise.
17939         (move2add_note_store): Likewise.
17940         (reload): Adjust calls to note_stores.
17941         (reload_as_needed): Likewise.
17942         (emit_reload_insns): Likewise.
17943         (reload_cse_regs_1): Likewise.
17944         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
17945         (reload_combine): Adjust calls to note_stores.
17946         * resource.c (update_live_status): Take additional paramter.
17947         (mark_target_live_regs): Adjust calls to note_stores.
17948         * stupid.c (find_clobbered_regs): Take additional parameter.
17949         (stupid_life_analysis): Adjust calls to note_stores.
17950
17951 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
17952
17953         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
17954         definition.
17955
17956         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
17957         definition.
17958
17959         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
17960         of the variable arm_structure_size_boundary.
17961
17962 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
17963
17964         * alias.c (init_alias_analysis): Allocate reg_known_value and
17965         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
17966         and reg_seen.
17967         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
17968         * cse.c (cse_main): Call end_alias_analysis.
17969         * haifa-sched.c (schedule_insns): Likewise.
17970         * local-alloc. (update_equiv_regs): Likewise.
17971         * reload1.c (reload_cse_regs): Likewise.
17972
17973 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17974
17975         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
17976         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
17977         mapping from MASK_FPU.
17978
17979 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
17980
17981         * sparc.md (call): Don't bound structure return size to 0xfff.
17982
17983 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
17984
17985         * resource.c (mark_target_live_regs): Check that the target
17986         insn wasn't created after compute_bb_for_insn.
17987
17988 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
17989
17990         * ggc-page.c (poison_pages): Don't be overzealous.
17991
17992 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
17993
17994         * alias.c: Update comments for ADDRESS.
17995         (nonlocal_reference_p): Look inside the ADDRESS to determine if
17996         it is a local memory reference.
17997
17998         * c-typeck.c (build_function_call): Check that the built-in
17999         function is of class BUILT_IN_NORMAL before trying to recongize
18000         it as BUILT_IN_ABS.
18001         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
18002         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
18003
18004 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
18005
18006         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
18007         of alloca.
18008         (pre_gcse): Likewise.
18009         (hoist_expr_reaches_here_p): Likewise.
18010         (hoist_code): Likewise.
18011         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
18012         code to ...
18013         (pre_expr_reaches_here_p_work): ... here.
18014         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
18015         code to ...
18016         (expr_reaches_here_p_work): ... here.
18017
18018 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
18019
18020         * resource.c (find_basic_block): Delete.
18021         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
18022         (init_resource_info): Call compute_bb_for_insn.
18023
18024 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
18025
18026         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
18027         with already adjacent blocks, but no fallthru.
18028         (merge_blocks_move_successor_nojumps): Simplify.
18029         (debug_flow_info): New.
18030
18031         * toplev.c (rest_of_compilation): Open jump1 dump file before
18032         jump and close after, as opposed to just using dump_rtl.
18033
18034 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18035
18036         * reload.h (earlyclobber_operand_p): Declare.
18037         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
18038         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
18039         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
18040         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
18041
18042 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
18043                           Richard Henderson  <rth@cygnus.com>
18044
18045         * emit-rtl.c (emit_block_insn_before): New.
18046         (emit_block_insn_after): New.
18047         * basic-block.h: Declare them.
18048
18049         * bitmap.h: Protect from multiple inclusion.
18050
18051         * recog.c (scratch_operand): Handle VOIDmode correctly.
18052
18053         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
18054
18055         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
18056         * function.c (assign_parms): Likewise.
18057         * global.c (global_conflicts): Clarify STACK_REGS commentary.
18058
18059         * reg-stack.c (max_uid): Remove.
18060         (blocks, block_begin, block_end, block_drops_in): Remove.
18061         (block_stack_in, block_out_reg_set, block_number): Remove.
18062         (struct block_info_def, BLOCK_INFO): New.
18063         (enum emit_where): New.
18064         (current_block): New.
18065         (BLOCK_NUM): Remove.
18066         (mark_regs_pat, record_label_references): Remove.
18067         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
18068         (nan): New.
18069         (goto_block_pat, print_blocks, dump_stack_info): Remove.
18070         (reg_to_stack): Simplified test for existance of fp code.  Use
18071         flow.c code.  Call shorten_branches after cross-jump opt.
18072         (check_asm_stack_operands): Renamed from record_asm_reg_life.
18073         Return false if the asm doesn't use stack regs.  Don't do life
18074         analysis on the asm.
18075         (emit_pop_insn): Replace function pointer arg `when' with
18076         enum `where'.  Update all callers.
18077         (change_stack): Likewise.  Update basic block end.
18078         (emit_swap_insn): Use current_block->head to limit reverse search
18079         for start of block.  Use emit_block_insn_after.
18080         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
18081         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
18082         structure assignment instead of bcopy.
18083         (print_stack): New.
18084         (convert_regs_entry, convert_regs_exit): New.
18085         (convert_regs_1, convert_regs_2): Split out from convert_regs.
18086         Work on basic blocks and the CFG.
18087         (convert_regs): Use them.
18088
18089         * i386.c (output_fix_trunc): Remove code for DImode input operand
18090         not at top-of-stack.
18091         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
18092         appropriate mode.
18093         (fix_truncdi_1): Allow any mode scratch.
18094
18095 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
18096
18097         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
18098         * linux.h, netbsd.h, vms.h: Not here.
18099
18100 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
18101
18102         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
18103         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
18104         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
18105         CONDITIONAL_REGISTER_USEAGE): Use them.
18106         * config/mips/mips.c (mips_move_1word,mips_move_2words,
18107         gen_conditional_branch,override_options) : Use them.
18108         * config/mips/mips.md : Use them.
18109
18110 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
18111
18112         * i386.md (zero_extendqihi2): Use SImode register name with andl.
18113
18114 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
18115
18116         * integrate.c (function_cannot_inline_p): Don't allow inlining
18117         if setjmp is used.
18118
18119 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18120
18121         * c-parse.in (cast_expr): Constify.
18122
18123         * cccp.c (special_symbol): Likewise.
18124
18125         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
18126
18127         * dwarf2out.c (base_type_die): Likewise.
18128
18129         * global.c (allocno_compare): Likewise.
18130
18131         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
18132
18133         * regclass.c (fix_register): Likewise.
18134
18135         * rtl.h (fix_register): Likewise.
18136
18137         * stupid.c (stupid_reg_compare): Likewise.
18138
18139         * toplev.c (decode_f_option): Likewise.
18140
18141         * tree.c (build_complex_type): Likewise.
18142
18143 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
18144
18145         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
18146
18147 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18148
18149         * reload.c (find_reloads): Compute mode and nregs fields of all
18150         reloads.
18151         * reload1.c (calculate_needs_all_insns): Simplify a bit.
18152         (calculate_needs): Use precomputed mode/nregs values.
18153         (allocate_reload_reg): Likewise.
18154         Break out two...
18155         (failed_reload, set_reload_reg): ... new functions.
18156         (choose_reload_regs_init): New function, mostly broken out from...
18157         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
18158         Also lose one #if 0 block.
18159
18160 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
18161
18162         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
18163         substitution.
18164
18165 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
18166
18167         * tree.h (BLOCK_TYPE_TAGS): Remove.
18168         (BLOCK_END_NOTE): Likewise.
18169         (BLOCK_LIVE_RANGE_FLAG): Likewise.
18170         (BLOCK_LIVE_RANGE_START): Likewise.
18171         (BLOCK_LIVE_RANGE_END): Likewise.
18172         (tree_block): Remove live_range_flag, live_range_var_flag, and
18173         type_tags.  Remove end_note, live_range_start, and live_range_end.
18174         (remember_end_note): Remove prototype.
18175         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
18176         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
18177         remember_end_note.
18178         * ggc-common.c (ggc_mark_tree_children): Don't mark
18179         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
18180         * integrate.c (adjust_copied_decl_tree): Remove.
18181         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
18182         * stmt.c (last_block_end_note): Remove.
18183         (init_stmt): Don't add a GC root for it.
18184         (expand_fixup): Don't set it.
18185         (remember_end_note): Remove.
18186         (expand_end_bindings): Don't set last_block_end_note.
18187
18188 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18189
18190         * reload1.c (reload_reg_free_for_value_p): Show
18191         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
18192         reloads.
18193
18194 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
18195
18196         * expmed.c (extract_bit_field): Allow for the case of non-integer
18197         objects that are smaller than a word (like SFmode on a 64-bit
18198         machine).
18199
18200         * loop.c (basic_induction_var): A non-integer variable which is
18201         being set by a paradoxical subreg is probably not a biv.
18202
18203 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18204
18205         * prefix.c (translate_name) Check for empty prefix string.
18206
18207 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
18208
18209         * Makefile.in (CPP_CROSS_NAME): New variable.
18210         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
18211         xcpp.
18212         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
18213         names of the files to be uninstalled.
18214
18215 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
18216
18217         * collect2.c (IS_DIR_SEPARATOR): Define.
18218         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
18219
18220         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
18221         functions too.
18222
18223         * haifa-sched.c (add_dependence): Update the true dependency
18224         cache the first time we add a true dependence to the LOG_LINKS chain.
18225
18226 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
18227
18228         * fold-const.c (fold): Fix comment.
18229
18230 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18231
18232         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
18233         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
18234         dbxout_start_new_source_file, dbxout_source_file,
18235         dbxout_source_line, dbxout_finish, dbxout_type_fields,
18236         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
18237         Constify a char*.
18238         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
18239         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
18240         (dbxout_block): Initialize variable `blocknum'.
18241
18242         * dbxout.h (dbxout_init, dbxout_finish,
18243         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
18244         dbxout_args, dbxout_source_line): Constify a char*.
18245
18246         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
18247         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
18248         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
18249         low_pc_attribute, high_pc_attribute, body_begin_attribute,
18250         body_end_attribute, comp_dir_attribute, sf_names_attribute,
18251         src_info_attribute, mac_info_attribute, producer_attribute,
18252         lookup_filename, generate_macinfo_entry, fundamental_type_code,
18253         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
18254         dwarfout_undef): Constify a char*.
18255         (add_incomplete_type, retry_incomplete_types): Add prototypes.
18256
18257         * dwarfout.h (dwarfout_define, dwarfout_undef,
18258         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
18259
18260 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
18261
18262         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
18263         (MULTILIB_ISA_DEFAULT): New.
18264         (MULTILIB_DEFAULTS): Use it.
18265         * config/mips/mips.c (): Remove the now unnecessary definition
18266         of MIPS_ISA_DEFAULT.
18267         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
18268         unnecessary definition.
18269
18270 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
18271
18272         * arm.md (pic_load_addr): Add constraints to operand 1.
18273
18274 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
18275
18276         * fixinc/genfixes:  Provide a means for specifying -D options to
18277         AutoGen
18278
18279 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
18280
18281         * arm.c (arm_override_options): Correct initialization of
18282         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
18283         arm_is_strong, and arm_is_6_or_7.
18284
18285         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
18286         (note_set_pseudo_multiple_uses): New function.
18287         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
18288         if a pseudo set in the loop exit is used elsewhere.
18289
18290 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
18291
18292         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
18293
18294 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
18295
18296         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
18297         a single load-address pattern.
18298
18299 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
18300
18301         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
18302         depending on whether or not line-number notes are present.
18303
18304 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18305
18306         * cccp.c (progname, file_buf, default_include, include_file,
18307         macrodef, definition, hashval, wchar_type, user_label_prefix,
18308         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
18309         expand_to_temp_buffer, is_system_include, base_name,
18310         absolute_filename, read_name_map, open_include_file,
18311         record_control_macro, check_precompiled, check_preconditions,
18312         pcfinclude, pass_thru_directive, create_definition,
18313         check_macro_name, comp_def_part, collect_expansion,
18314         check_assertion, read_token_list, assertion_install,
18315         assertion_lookup, eval_if_expression, conditional_skip,
18316         validate_else, skip_quoted_string, quote_string, macarg1,
18317         error_from_errno, install, lookup, hashf, dump_defn_1,
18318         perror_with_name, pfatal_with_name, main, trigraph_pcp,
18319         check_white_space, rescan, handle_directive, monthnames,
18320         special_symbol, do_include, remap_include_file, write_output,
18321         arglist, do_assert, do_unassert, do_line, do_error, do_once,
18322         do_ident, do_sccs, do_xifdef, skip_if_group,
18323         output_line_directive, macroexpand, macarg, change_newlines,
18324         initialize_builtins, make_definition): Constify a char*.
18325
18326         * pcp.h (stringdef): Likewise.
18327
18328 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
18329
18330         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
18331         not of pattern.
18332
18333 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
18334                           Richard Henderson  <rth@cygnus.com>
18335
18336         * alias.c: Include ggc.h.
18337         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
18338         (record_set): Verify enough room in reg_base_value.
18339         (init_alias_analysis): Allocate reg_base_value with xcalloc.
18340         Register it as a GC root.
18341         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
18342         * Makefile.in (alias.o): Depend on ggc.h.
18343
18344         * unroll.c (unroll_loop): Verify the insn before a barrier
18345         is a JUMP_INSN before checking JUMP_LABEL.
18346
18347 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18348
18349         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
18350         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
18351         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
18352         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
18353         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
18354         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
18355
18356 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18357
18358         * output.h (ctors_section, dtors_section, bss_section): Prototype.
18359
18360         * alpha/alpha-interix.h (text_section): Delete prototype.
18361         * alpha/elf.h (text_section): Likewise.
18362         * arm/linux-elf.h (text_section): Likewise.
18363         * arm/linux-telf.h (text_section): Likewise.
18364         * c4x/c4x.h (text_section): Likewise.
18365         * dsp16xx/dsp16xx.h (bss_section): Likewise.
18366         * elfos.h (text_section): Likewise.
18367         * i386/aix386ng.h (text_section): Likewise.
18368         * i386/i386-interix.h (text_section): Likewise.
18369         * i386/sco5.h (text_section): Likewise.
18370         * i386/svr3gas.h (text_section): Likewise.
18371         * nextstep.h (text_section): Likewise.
18372         * psos.h (text_section): Likewise.
18373         * ptx4.h (text_section): Likewise.
18374         * svr3.h (text_section): Likewise.
18375         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
18376
18377 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18378
18379         * final.c (peephole): Delete prototype.
18380
18381         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
18382         (pre_insert_copies): Remove unused variable `bb'.
18383
18384         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
18385         prototypes.
18386
18387         * output.h (peephole): Add prototype.
18388
18389 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
18390
18391         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
18392         -O0.
18393
18394 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
18395
18396         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
18397         for inlined declarations.
18398
18399 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
18400
18401         * arm.c (logical_binary_operator): New fucntion.
18402         * arm.h (logical_binary_operator): Declare it.
18403         (PREDICATE_CODES): Handle logical_binary_operator.
18404         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
18405         output constraints.  Add appropriate splitters.
18406         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
18407         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
18408         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
18409
18410 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18411
18412         * genoutput.c (struct operand_data): New elt eliminable.
18413         (output_operand_data): Write it.
18414         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
18415         (compare_operands): Take it into account.
18416         * recog.h (struct insn_operand_data): New elt eliminable.
18417         * reload1.c (check_eliminable_occurrences, elimination_effects): New
18418         functions.
18419         (old_asm_operands_vec, new_asm_operands_vec): Delete.
18420         (eliminate_regs): Move code that detects changes to elimination
18421         target regs into new function elimination_effects.
18422         Delete one #if 0 block.
18423         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
18424         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
18425         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
18426         Only call eliminate_regs for real operands of the insn, not for parts
18427         of its structure or parts matched by things like match_operator.
18428         Use elimination_effects and check_eliminable_occurrences.  Use
18429         copy_insn to duplicate the pattern when not in the final pass.
18430
18431 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
18432
18433         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
18434         and fld.
18435
18436 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
18437
18438         * fixinc/README: document the "mach" machine matching test
18439         * fixinc/fixfixes.c: Implement the #else/#endif label fix
18440         * fixinc/fixtests.c: Implement the #else/#endif label test
18441         * fixinc/inclhack.def: utilize these tests and fixes
18442         * fixinc/inclhack.sh:  regen
18443         * fixinc/fixincl.x:  regen
18444         * fixinc/fixincl.sh:  regen
18445
18446 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
18447
18448         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
18449         depend on ggc.h.
18450
18451 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
18452
18453         * gcc.1: Document exit codes.
18454
18455 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18456
18457         * calls.c: Include tm_p.h later, so everything we need is defined.
18458         * expr.c: Likewise.
18459         * function.c: Likewise.
18460
18461         * except.c: Include tm_p.h.
18462
18463         * sparc.c: Likewise.
18464         (dwarf2out_cfi_label): Don't prototype.
18465         (check_return_regs, epilogue_renumber,
18466         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
18467         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
18468         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
18469         ultra_schedule_insn): Add static prototype.
18470         (data_segment_operand, text_segment_operand): Call itself with the
18471         proper number of arguments.
18472         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
18473
18474         * sparc.h: Move all declarations to sparc-protos.h.
18475         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
18476         symbolic_operand.
18477
18478         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
18479
18480         * config/svr4.h (text_section, ctors_section, dtors_section): Add
18481         Prototypes.
18482         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
18483         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
18484         ASM_OUTPUT_ASCII): Constify a char*.
18485
18486         * sparc-protos.h: New file for sparc prototypes.
18487
18488 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18489
18490         * function.c (record_insns, contains): Always declare and define.
18491         (record_insns): Mark with ATTRIBUTE_UNUSED.
18492
18493 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
18494
18495         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
18496         to .section when outputting a .bss section to deal with multiple
18497         .bss input sections (as happens with -fdata-sections)
18498         Also output %progbits, not @progbits so the assembler doesn't treat as
18499         a comment.
18500         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
18501
18502         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
18503         thumb parts even when building with non-thumb CPUs, by forcing
18504         thumb mode.
18505
18506 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
18507
18508         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
18509         (movdf_const_intreg_sp64): Similarly.
18510
18511         * local-alloc.c (update_equiv_regs): Check the correct insn
18512         for pre-existing REG_EQUIV notes.
18513
18514 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
18515
18516         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
18517         block reached by a branch if we're not going to actually process
18518         this block.
18519
18520 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
18521
18522         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
18523         a local extern function declaration.
18524
18525 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
18526
18527         * i386.c (ix86_expand_prologue): Properly wrap USE around
18528         reg for CALL_INSN_FUNCTION_USAGE.
18529
18530 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
18531
18532         * config/mips/mips.md (movdf_internal1a): Allow floating-point
18533         move between GP_REGs.
18534
18535 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
18536
18537         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
18538         the mode size when finding out if an offset is legal.
18539
18540 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
18541
18542         * basic-block.h (PROP_*): Move constants from ...
18543         * flow.c: ... here.
18544         (compute_bb_for_insn): Free the array before reallocating.
18545         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
18546         (allocate_reg_life_data): Reset all reg variables collected by
18547         propagate_block.
18548         (get_block_head_tail): Don't convert from bb to block.
18549         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
18550         (find_insn_reg_weight): Take block not bb.
18551         (schedule_block): Don't set block num for moved insns.
18552         (schedule_region): Don't update_life_info or find_insn_reg_weight.
18553         (schedule_insns): Do it here instead.
18554         * combine.c (combine_instructions): Invoke compute_bb_for_insn
18555         before update_life_info.
18556         * recog.c (split_all_insns, peephole2_optimize): Update for
18557         new arg to update_life_info.
18558         * rtlanal.c (remove_note): Cope with NULL note.
18559         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
18560         if we did sched1.
18561
18562 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
18563
18564         * jump.c (jump_optimize_1): More accurately detect casesi insns.
18565
18566         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
18567         block records so that merge_blocks_nomove will clean up correctly.
18568         (split_edge): Handle casesi insns.
18569
18570         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
18571
18572 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
18573
18574         * pa.md (call, call_value): Do not emit a blockage after restoring
18575         the PIC register.
18576
18577 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
18578
18579         * c-typeck.c (c_expand_asm_operands): Fix typo.
18580
18581 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18582
18583         * arm.c (fpu_rhs_operand): Verify modes.
18584         (fpu_add_operand): Likewise.
18585         (di_operand): Likewise.
18586         (soft_df_operand): Likewise.
18587
18588 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
18589
18590         * arm.c (arm_return_in_memory): APCS rules state that the elements
18591         of a structure returned in a register must be 'integer-like'.
18592
18593 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
18594
18595         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
18596         in the source tree when the generated targets are out of date
18597         * fixinc/genfixes: Alter it to run individual fixes for make.
18598         * fixinc/README: rewrite
18599         * fixinc/inclhack.def: moved initial comments to README
18600
18601 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
18602
18603         * toplev.c (main): Do not generate an error message if an
18604         unrecognised command line switch is recognisable by another
18605         language.  If extra_warnings are enabled, then generate a
18606         warning message instead.
18607
18608 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
18609
18610         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
18611         (insert_pack_attributes): Delete prototype.
18612
18613         * c-pragma.c (default_alignment): New static variable.
18614         (push_alignment): Initialize to current effective alignment.
18615         (pop_alignment): Use to set new alignment.
18616         (insert_pack_attributes): Delete function.
18617         (handle_pragma_token): Set default_alignment as well each time
18618         a #pragma pack(<n>) is encountered.
18619
18620 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
18621
18622         * reg-stack.c (stack_result): Aggregates are not returned in
18623         stack registers.
18624
18625 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
18626
18627         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
18628
18629 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
18630
18631         * basic-block.h (set_block_num): Declare.
18632         * flow.c (update_life_info): Don't call compute_bb_for_insn
18633         or free_basic_block_vars.
18634         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
18635         (insn_orig_block): Remove.
18636         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
18637         (schedule_block): Keep BLOCK_NUM up-to-date.
18638         (schedule_insns): Use compute_bb_for_insn.
18639         * recog.c (split_all_insns): Likewise.
18640         (peephole2_optimize): Likewise.
18641
18642 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
18643
18644         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
18645         if the pic register is used.
18646
18647 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18648
18649         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
18650         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
18651         if that tests TREE_PERMANENT.
18652
18653 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
18654
18655         * cse.c (invalidate_for_call): Do not remove memory references from
18656         the table here.  It's handled elsewhere.
18657
18658         * haifa-sched.c (add_dependence): Protect references to the
18659         true dependency cache with #ifdef INSN_SCHEDULING.
18660         (remove_dependence): Similarly.
18661
18662         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
18663         to the cfg code that this is a return instruction.
18664         * mn10300.md (return_internal): Similarly.
18665
18666         * combine.c (get_last_value): If the last set of a register
18667         is after subst_low_cuid, then we can not use it to determine
18668         the register's last value.
18669
18670 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
18671
18672         * Makefile.in: Back out previous change.
18673
18674 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
18675
18676         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
18677
18678         * haifa-sched.c (add_dependence): Only check/update the cache
18679         if it exists.
18680         (remove_dependence): Likewise.
18681         (schedule_insns): Only create the true_dependency_cache if the
18682         average number of instructions in a basic block is very large.
18683
18684 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
18685
18686         * Makefile.in (ggc-common.o): Depend on genrtl.h.
18687         (ggc-simple.o): Likewise.
18688         (ggc-page.o): Likewise.
18689
18690 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
18691
18692         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
18693         Prototype for exported functions.
18694         (pre_lcm, pre_rev_lcm): Remove prototypes.
18695         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
18696         (compute_available): Move to lcm.c, and change parameter order.
18697         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
18698         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
18699         (gcse_main): No longer call compute_preds_succs.  Rebuild the
18700         set table after reach pre pass.
18701         (pre_insert_map, pre_delete_map, edge_list): New.
18702         (alloc_pre_mem): Allocate edge vectors.
18703         (free_pre_mem): Delete edge vectors.
18704         (compute_pre_data): Call new edge based lcm routines.
18705         (process_insert_insn): New function.
18706         (insert_insn_end_bb): Use it.
18707         (pre_edge_insert): New function.
18708         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
18709         needed.
18710         (pre_insert_copies): Revamp using new edge based lcm outputs.
18711         (pre_delete): Likewise.
18712         (one_pre_gcse_pass): Insert & remove fake edges to the exit
18713         block.
18714         (compute_code_hoist_vbeinout): New new edge based routines.
18715         * lcm.c: Remove all the old LCM functions.  Replace with new ones
18716         that work with the new cfg datastructures and work with edges
18717         instead of blocks.
18718
18719 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18720
18721         * reload.h (struct reload): Add new fields "mode" and "nregs".
18722         * reload1.c: Change all occurrences of reload_mode and reload_nregs
18723         to reference the "mode" and "nregs" field within struct reload.
18724
18725 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
18726
18727         * haifa-sched.c (true_dependency_cache): New.
18728         (add_dependence): Use the true dependency cache to avoid expensive
18729         walks down the LOG_LINKS dependency list.  Add entries to the
18730         cache as necessary.
18731         (remove_dependence): Remove entries from the true dependency cache
18732         as needed.
18733         (schedule_insns): Allocate and initialize and free the true
18734         dependency cache.
18735
18736         * haifa-sched.c (schedule_insns): Do not remove inter-block
18737         dependencies anymore.
18738
18739 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
18740
18741         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
18742         * i386/t-winnt: Likewise.
18743
18744 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
18745
18746         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
18747
18748 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
18749
18750         * Makefile.in (LANGUAGES): Omit "proto".
18751         (clean): Remove stale comment about removing unprotoize.c.
18752
18753 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18754
18755         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
18756         using arithmetic on void pointers.
18757
18758 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
18759
18760         * haifa-sched.c (compute_block_forward_dependencies): Only check
18761         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
18762
18763 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
18764
18765         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
18766         (expr_equiv_p): Reject memories with different alias sets.
18767
18768 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
18769
18770         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
18771         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
18772         (f_options): Add "bounded-pointers" and "bounds-check" entries.
18773         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
18774         (lang_init): Set default for flag_bounds_check if still "unspecified".
18775
18776 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18777
18778         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
18779
18780 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18781
18782         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
18783         instructions.
18784
18785 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18786
18787         * config/c4x/c4x.md (*db_noclobber,
18788         *decrement_and_branch_until_zero_noclobber): New patterns and
18789         associated splitters.
18790
18791 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18792
18793         * config/c4x/c4x.md (parallel instruction patterns): Rework
18794         constraints to keep reload happy.
18795
18796 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18797
18798         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
18799         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
18800         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
18801         Add new patterns and associated post-reload splitters.
18802
18803 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18804
18805         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
18806
18807 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18808
18809         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
18810         if appropriate.
18811         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
18812
18813 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18814
18815         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
18816         memory mode.
18817
18818 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
18819
18820         * pa.c (move_operand): Rely on memory_address_p to determine the
18821         validity of non-indexed memory addresses.
18822         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
18823         operand in DFmode and SFmode when generating PA2.0 code.
18824
18825 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
18826
18827         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
18828
18829 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
18830
18831         * mips.c (function_prologue): Fix argument types.
18832         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
18833         (casesi_internal): Write to the scratch register.
18834
18835 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
18836
18837         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
18838         to U_CHAR **.
18839         (parse_charconst): Delete unnecessary cast when calling
18840         cpp_parse_escape.
18841         (cpplib.h): Kill prototype of cpp_parse_escape.
18842
18843 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
18844
18845         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
18846         * unroll.c (unroll_loop): Cast return value of alloca.
18847         * i370/i370.c: Include function.h and toplev.h.
18848         (i370_label_scan): Remove c++ commented abort.
18849         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
18850         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
18851         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
18852         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
18853
18854 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
18855
18856         * config/t-freebsd: Do not override USER_H.
18857         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
18858
18859 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
18860                           Mumit Khan  <khan@xraylith.wisc.edu>
18861
18862         * c-parse.in (component_decl): Support anonymous struct/union.
18863         (%expect): Update.
18864         * c-parse.y: Regenerate.
18865         * c-parse.c: Likewise.
18866         * objc/objc-parse.y: Likewise.
18867         * objc/objc-parse.c: Likewise.
18868         * c-decl.c (finish_struct): Don't sort the fields.
18869         (field_decl_cmp): Delete unused function.
18870
18871 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
18872
18873         * sparc.md (movsf_const_intreg): Revert last constraint change.
18874         (movdf_const_intreg_sp32): Likewise.
18875
18876 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
18877
18878         * cse.c: Include hashtab.h instead of splay-tree.h
18879         (struct cse_reg_info): No longer use variant union.  Add new
18880         field "regno".  All references changed to avoid union.
18881         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
18882         (free_cse_reg_info): Remove.
18883         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
18884         (get_cse_reg_info): Revamp to use expandable hash tables instead
18885         of splay trees.  Initialize new fields in cse_reg_info structure.
18886         (new_basic_block): Similarly.
18887
18888 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
18889
18890         * genrecog.c (message_with_line): Prototype.
18891         (validate_pattern): Pass along the set for the dest, not a flag.
18892         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
18893         Check for PC/CC0 as sources.
18894         (nodes_identical): Check for children position match before
18895         allowing the combination.
18896
18897         * rtl.c (read_rtx): Track line number across \\\n.
18898
18899 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
18900
18901         * mips.h (SPECIAL_MODE_PREDICATES): New.
18902         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
18903         (movdi+1, movsi+1): Add output reload constraint.
18904         (casesi_internal): Likewise.  Fix commentary.
18905         (return_internal): Use pmode_register_operand.
18906
18907 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
18908
18909         * 1750a.md (movstrqi): Add missing output reload constraint.
18910         (call_value): Likewise.
18911         * a29k.md (cpxxx patterns): Add missing match_operator mode.
18912         (jmpfdec): Add missing inout reload constraint.
18913         * elxsi.md (addsi patterns): Add missing output reload constraint.
18914         (move from sp): Use @ alternates.
18915         (call_value): No constraint on output.
18916         * fr30.md (movsi_pop): Add missing output reload constraint.
18917         (movsf_constant_store): Likewise.
18918         (splits): Remove constraints.
18919         (subsi3): Add missing mode.
18920         * i370.md (cmpstrsi+1): Add missing output reload constraint.
18921         (call_value): Likewise.
18922         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
18923         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
18924         * m32r.md (movsicc_internal): Add output reload constraint.
18925         (movstrsi_internal): Add inout reload constraints.
18926         * m88k.h (reg_names): Don't declare.
18927         (SPECIAL_MODE_PREDICATES): New.
18928         * m88k.md (*): Use register_operand not reg_or_0_operand
18929         on destinations.
18930         * mn10200.h (PREDICATE_CODES): New.
18931         * ns32k.md (ffs pattern): Add output reload constraint.
18932         * pdp11.md (sob pattern): Add inout reload constraint.
18933         * sh.md (splits): Remove constraints.
18934         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
18935         * v850.md (pattern_is_ok_for_epilogue): Likewise.
18936         * vax.md (jgequ pattern): Add inout reload constraint.
18937
18938 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
18939
18940         * configure.in (djgpp): Revert previous patch.
18941         * configure: Rebuit.
18942         * config/i386/djgpp.h: Revert previous patch.
18943
18944 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
18945
18946         * fixinc/inclhack.def: Restore patch lost during last merge of
18947         "no_bogosity" branch.
18948         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
18949
18950 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18951
18952         * fixincludes: Add a HPUX 11 fix for inttypes.h.
18953         * fixinc/inclhack.def: Same.
18954         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
18955
18956 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
18957
18958         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
18959         as the base of a PLUS.
18960
18961 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18962
18963         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
18964         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
18965
18966 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
18967
18968         * pa.md (post_stw+1): Use pmode_register_operand.
18969         (dcacheflush, icacheflush): Likewise.
18970
18971         * i386.md (movstricthi_1): Allow r/r.
18972
18973 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
18974
18975         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
18976         to (not (and (arg0) (arg1))). Similary for and.
18977
18978         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
18979         fallthrough to associate code.
18980         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
18981         bits in common.
18982
18983         * combine.c (simplify_logical): Convert XOR to IOR if operands have
18984         no bits in common; remove XOR to ROTATE conversion.
18985
18986 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18987
18988         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
18989
18990 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18991
18992         * config/c4x/c4x.c (dst_operand): New.
18993         (PREDICATE_CODES): Update.
18994         * config/c4x/c4x.h (dst_operand): Declare it.
18995         * config/c4x/c4x.md:  Define mode for each unspec usage.
18996         (move patterns):  Use dst_operand predicate instead of src_operand.
18997         (movqi_update, movqf_update): Delete.
18998
18999 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
19000
19001         * recog.c (pmode_register_operand): New.
19002         * recog.h: Declare it.
19003         * genrecog.c (pred_codes): Likewise.
19004         (special_mode_pred_table): Likewise.
19005         (validate_pattern): Don't warn no mode for address_operand.
19006
19007         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
19008         if the operand is not insn-like.
19009
19010 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
19011                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
19012
19013         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
19014
19015 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
19016
19017         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
19018         instead of general_operand in a SET_DEST.  Use const_double_operand
19019         instead of an explicit test against CONST_DOUBLE.
19020         (movsf_const_lo): Add missing register mode.
19021         (goto_handler_and_restore): Add auxiliary test for Pmode.
19022         (flush): Adjust to use address_operand.
19023         (return_sf_no_fpu): Add missing output constraint.
19024
19025 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
19026
19027         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
19028         for call return value.
19029         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
19030
19031 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
19032
19033         * toplev.c (main): Only warn about options for other languages.
19034         * collect2.c (main): Pass -w to sub-gcc.
19035
19036 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
19037
19038         * flow.c (propagate_block): Add call-clobbered registers to
19039         significant too.
19040
19041         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
19042         zapping mem_set_list.
19043         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
19044         (mark_set_1, mark_used_regs): Likewise.
19045
19046 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
19047
19048         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
19049
19050 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19051
19052         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
19053         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
19054         options. Also add a new item "C-only Warning Options" to the
19055         option summary.
19056
19057 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
19058
19059         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
19060         from multiple calls.
19061
19062 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
19063
19064         * i386.md (call value patterns): Move to the end of the file.
19065         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
19066
19067 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
19068
19069         * configure.in (djgpp configuration): Define extra_objects..
19070         * configure: Rebuilt.
19071         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
19072         (DTORS_SECTION_ASM_OP): Define.
19073         (INIT_SECTION_ASM_OP): Define.
19074         (FINI_SECTION_ASM_OP): Define.
19075         (DATA_SECTION_ASM_OP): Define.
19076         (TEXT_SECTION_ASM_OP): Define.
19077         (EH_FRAME_SECTION_ASM_OP): Define.
19078         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
19079         (STARTFILE_SPEC): Add crtbegin.o.
19080         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
19081         to here from LINK_COMMAND_SPEC.
19082         (DO_GLOBAL_CTORS_BODY): Define.
19083         (CRTSTUFF_USE_FINI_SECTION): Define
19084         (HAS_INIT_SECTION): Delete.
19085
19086 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
19087
19088         * Makefile.in (all.cross): Depend on xcpp$(exeext).
19089
19090 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
19091
19092         * pa.h (PREDICATE_CODES): New.
19093
19094         * genrecog.c (validate_pattern): Condense the destination
19095         non-lvalue message.
19096
19097 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
19098
19099         * alpha.md (call-1): Supply missing mode for operator.
19100         (*): Add missing output reload constraints.  Remove constraints
19101         from define_splits.
19102
19103         * i386.h (SPECIAL_MODE_PREDICATES): New.
19104         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
19105         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
19106         (addsi_lea_3): Add missing mode for op 3.
19107         (prologue_set_got, prologue_get_pc): Add missing modes.
19108         (*) Add missing output reload constraints.
19109
19110 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
19111
19112         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
19113         check for member bit-size overflow and use var_size if it occurs.
19114         (layout_record): Use bitsize_int() to define the type size in bits.
19115         Likewise for computation and assignment to DECL_FIELD_BITPOS.
19116         (layout_decl): Likewise when assigning to DECL_SIZE.
19117
19118 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
19119
19120         * genrecog.c (validate_pattern): Typo last change.  Verify
19121         that output operands have output reloads.
19122
19123 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
19124
19125         * genrecog.c (special_mode_pred_table): New.
19126         (NUM_SPECIAL_MODE_PREDS): New.
19127         (find_operand): New.
19128         (validate_pattern): New argument `insn'.  Warn for assignment to
19129         any predicate accepting non-lvalues.  Conditionaly warn for
19130         match_operand without a mode.  Try much harder to match source
19131         and destination modes on a set.
19132         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
19133
19134 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
19135
19136         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
19137
19138 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
19139
19140         * combine.c (simplify_logical): Recognize xor pattern that encodes
19141         rotation.
19142
19143 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19144
19145         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
19146         alignment.
19147
19148 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
19149
19150         * ggc-page.c (MAP_FAILED): Provide default.
19151
19152 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
19153
19154         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
19155         * sparc.h (PREDICATE_CODES): Update.
19156
19157 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
19158
19159         * alpha.c (some_ni_operand): New.
19160         * alpha-protos.h: Declare it.
19161         * alpha.h (PREDICATE_CODES): Update.
19162         * alpha.md (sXaddq reload insns): Use some_ni_operand
19163         for SET_DEST instead of some_operand.
19164
19165 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
19166                           Jim Wilson  <wilson@cygnus.com>
19167
19168         * genrecog.c (maybe_both_true_2): Don't compare modes of
19169         two DT_pred tests.
19170         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
19171         after find_afterward.
19172         (debug_decision_1): Dump next and afterward codes.
19173
19174 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
19175
19176         * rtl.c (dump_and_abort): Remove.
19177         (fatal_with_file_and_line): New.
19178         (fatal_expected_char): New.
19179         (read_rtx_lineno, read_rtx_filename): New.
19180         (read_skip_spaces): Track line number.
19181         (read_name): Use fatal_with_file_and_line.
19182         (read_rtx): Use fatal_expected_char.  Track line number.
19183         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
19184
19185         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
19186         if it isn't a CODE_LABEL.
19187
19188         * genattr.c (main): Set read_rtx_filename.
19189         * genattrtab.c (main): Likewise.
19190         * gencodes.c (main): Likewise.
19191         * genconfig.c (main): Likewise.
19192         * genemit.c (main): Likewise.
19193         * genextract.c (main): Likewise.
19194         * genflags.c (main): Likewise.
19195         * genopinit.c (main): Likewise.
19196         * genoutput.c (main): Likewise.
19197         * genpeep.c (main): Likewise.
19198
19199         * genrecog.c (decision_test.u.insn): Add `lineno'.
19200         (pattern_lineno, error_count): New variables.
19201         (message_with_line): New.
19202         (add_to_sequence): Break out checking code to ...
19203         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
19204         (merge_insn): Use message_with_line.
19205         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
19206         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
19207
19208 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19209
19210         * expr.c (store_constructor): Clear union if constructor is empty.
19211
19212 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
19213
19214         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
19215         Add !endian checks.  Change %{...} to %(...).
19216
19217 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
19218
19219         * i386.md (*addsi3_cc): Renamed from addcsi3.
19220         (*addsi3_carry): Renamed from addxsi3.
19221         (*subsi3_cc): Renamed from subcsi3.
19222         (*subsi3_carry): Renamed from subxsi3.
19223         (*xorqi_cc_1): Renamed from xorcqi_1.
19224         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
19225         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
19226
19227 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
19228
19229         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
19230         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
19231
19232 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
19233
19234         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
19235         climb up the chain of insns.
19236
19237 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
19238
19239         * genrecog.c (write_subroutine): Careful for null trees.
19240         (process_tree): Don't elide empty functions.
19241
19242 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
19243
19244         * Makefile.in (genrtl.o): Depend on ggc.h.
19245         * configure.in (valloc): Probe for it.
19246         (with-gc): Use ggc-page if valloc present.
19247         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
19248         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
19249         (ggc_alloc_string): Moved from ggc-page.c.
19250         * ggc-none.c (ggc_alloc_obj): New.
19251         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
19252         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
19253         (struct globals): Likewise for dev_zero_fd.
19254         (init_ggc): Likewise for it's initialization.
19255         (ggc_allocated_p): Move careful dereference from ...
19256         (ggc_lookup_page_table): ... here.  Delete.
19257         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
19258         (alloc_anon): Use valloc if no mmap.
19259         (release_pages): Use free if using valloc.
19260         (ggc_alloc_obj): Renamed from alloc_obj.
19261         (ggc_set_mark): Renamed from mark_obj.
19262         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
19263         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
19264         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
19265         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
19266         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
19267         (ggc_collect): Use fp printing instead of our own rounding.
19268         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
19269         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
19270         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
19271         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
19272         (struct ggc_string, struct ggc_any): Delete.
19273         (offsetof): Provide default definition.
19274         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
19275         (PTR_KEY): New.
19276         (struct ggc_mem): New, from corpse of ggc_any.
19277         (struct ggc_status): Delete.
19278         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
19279         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
19280         (n_strings_collected, n_anys_collected): Delete.
19281         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
19282         (ggc_alloc_string, ggc_alloc): Delete.
19283         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
19284         (ggc_free_string, ggc_free_any): Delete.
19285         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
19286         (ggc_compare_addresses, ggc_mark_string): Delete.
19287         (ggc_mark_string_if_gcable, ggc_mark): Delete.
19288         (search_data): Delete.
19289         (struct globals): New.
19290         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
19291         (tree_insert, tree_lookup): New.
19292         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
19293         (clear_marks, sweep_objs): New.
19294         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
19295         (init_ggc): Set allocated_last_gc.
19296         (ggc_push_context): Gut.  Use G.context.
19297         (ggc_pop_context): Likewise.
19298         (ggc_pop_context_1): New.
19299         (debug_ggc_tree): New.
19300         (debug_ggc_balance, tally_leaves): New.
19301         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
19302         (ggc_mark_string_if_gcable): Remove decl.
19303         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
19304         (ggc_mark_rtvec_children): New.
19305         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
19306         (ggc_mark_if_gcable): New decl.
19307         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
19308         (ggc_alloc_tree, ggc_alloc): Likewise.
19309         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
19310         (ggc_alloc_obj): New decl.
19311         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
19312         (ggc_alloc_tree, ggc_alloc): Likewise.
19313         (ggc_set_mark): New decl.
19314         * rtl.h (struct rtx_def): Remove gc_mark.
19315         (struct rtvec_def): Likewise.
19316         * tree.h (struct tree_common): Likewise.
19317
19318 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
19319
19320         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
19321         float_format and thread_file definitions.
19322         * configure: Rebuilt.
19323
19324 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
19325
19326         * extend.texi (Function Names): Document types of function names.
19327
19328 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19329
19330         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
19331         an earlyclobbered output conflict with RELOAD_INPUT reloads.
19332
19333 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19334
19335         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
19336
19337 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19338
19339         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
19340
19341 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
19342
19343         * collect2.c (main): Do prelimnary link on AIX if rflag.
19344
19345 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
19346
19347         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
19348         __CTOR_LIST__ in opposite order, which is the correct order for sorted
19349         constructors.
19350         (__do_global_dtors): similarly for __DTOR_LIST__.
19351
19352 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19353                                 Diego Novillo <dnovillo@cygnus.com>
19354
19355         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
19356         FPUL_REGS.
19357
19358 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
19359
19360         * fixincl/*: Merged "no_bogosity" branch
19361         * fixincl/fixlib.h: protect against doubly defining t_bool
19362         * fixincl/server.h: protect against doubly defining t_bool
19363
19364 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
19365
19366         * genoutput.c: Include toplev.h.
19367
19368 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
19369
19370         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
19371         Undef.
19372         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
19373         * configure: Regenerate.
19374
19375 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
19376
19377         * gcse.c (delete_null_pointer_checks): Returns void.
19378
19379 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19380
19381         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
19382         * emit-rtl.c (copy_insn_1): Likewise.
19383
19384 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
19385
19386         * config/mips/mips.c (mips_build_va_list): Correct
19387         TREE_CHAIN setting when hard-float.
19388         (mips_va_start): Use corrected setting.
19389         (mips_va_arg): Likewise.  Also pass a tree to build of
19390         POSTINCREMENT_EXPR rather than a naked 'int'.
19391
19392 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
19393
19394         * ggc.h (ggc_push_context): Fix comment.
19395         (ggc_pop_context): Likewise.
19396         (mark_string_if_gcable): Likewise.
19397         * ggc-common.c (ggc_mark_rtx_children): Use
19398         ggc_mark_string_if_gcable.
19399         * ggc-page.c (ggc_lookup_page_table): New function.
19400         (ggc_allocated_p): Likewise.
19401         (mark_obj): Fix formatting.
19402         (ggc_mark_string_if_gcable): New function.
19403         * ggc-simple.c (ggc_allocated_strings): New variable.
19404         (ggc_strings_used): Likewise.
19405         (ggc_compare_addresses): New function.
19406         (ggc_pop_context): Pop the `any' memory too.
19407         (ggc_mark_string_if_gcable): New function.
19408         (ggc_collect): Initialize and tear down ggc_allocated_strings.
19409
19410 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
19411
19412         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
19413         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
19414         * rs6000.c (expand_block_move): Match movstrsi_?reg register
19415         changes.
19416
19417 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
19418
19419         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
19420         (sched_reg_live_length, sched_reg_basic_block): Delete.
19421         (current_block_num, bb_live_regs, old_live_regs): Delete.
19422         (dead_notes, struct sometimes): Delete.
19423         (sched_note_set, birthing_insn_p): Delete.
19424         (adjust_priority): Gut useless reg lifetime code.
19425         (create_reg_dead_note, attach_deaths): Delete.
19426         (attach_deaths_insn, new_sometimes_live): Delete.
19427         (finish_sometimes_live): Delete.
19428         (find_pre_sched_live, find_post_sched_live): Delete.
19429         (update_reg_usage): Delete.
19430         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
19431         (schedule_insns): Delete reg lifetime code.
19432         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
19433         (unlink_other_notes): Adjust REG_NOTE commentary.
19434         (reemit_notes): Use REG_SAVE_NOTE.
19435         (schedule_block): Likewise.
19436         (schedule_region): Allocate bitmap of blocks in region.  Use
19437         count_or_remove_death_notes.  Use update_life_info.
19438
19439         * rtl.h (REG_SAVE_NOTE): New.
19440         * rtl.c (reg_note_name): Update.
19441
19442 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
19443
19444         * combine.c (refresh_blocks, need_refresh): New.
19445         (combine_instructions): Allocate refresh_blocks.  Invoke
19446         update_life_info if needed.
19447         (distribute_notes): Mark refresh_blocks instead of installing
19448         USE insns.
19449         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
19450         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
19451
19452         * Makefile.in (recog.o): Depend on basic-block.h.
19453
19454 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
19455
19456         * genrecog.c (add_to_sequence): Thinko last change: delete
19457         shadowing allow_const_int variable.
19458
19459 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19460
19461         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
19462         __GNUC__ and __GNUC_MINOR__.
19463
19464         * gansidecl.h: Likewise.
19465
19466         * rtl.c: Likewise.
19467
19468         * rtl.h: Likewise.
19469
19470         * toplev.h: Likewise.
19471
19472         * tree.c: Likewise.
19473
19474         * tree.h: Likewise.
19475
19476         * varray.c: Likewise.
19477
19478         * varray.h: Likewise.
19479
19480 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19481
19482         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
19483         use one before a jump table.
19484
19485         * rtl.def (ADDRESS): Change documentation to match reality.
19486         * md.texi: Don't document it.
19487         * gmicro.md (load address pattern): Use 'p' constraint, delete use
19488         of ADDRESS rtx.
19489
19490         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
19491
19492 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
19493
19494         * genrecog.c (add_to_sequence): Move allow_const_int test outside
19495         known predicate block; default allow_const_int true.
19496         (debug_decision_list): New.
19497
19498 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
19499
19500         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
19501
19502 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
19503
19504         * gcse.c (gcse_main): Avoid global optimizations if we have a
19505         large number of basic blocks and the ratio of edges to blocks
19506         is high.
19507         (delete_null_pointer_checks): Likewise.
19508
19509 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
19510
19511         * c-common.c (check_format_info): Warn if format string isn't a
19512         string literal.
19513
19514 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
19515
19516         * configure.in (arm*-*-*): Don't let autoconf remove brackets
19517         * configure: regenerate
19518
19519 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
19520
19521         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
19522         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
19523         (peepholes): Re-enable.
19524
19525 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
19526
19527         * Makefile.in (flow.o): Depend on TREE_H.
19528         * basic-block.h (REG_SET_EQUAL_P): New.
19529         (XOR_REG_SET): New.
19530         (n_edges): Declare.
19531         (free_regset_vector): Remove declaration.
19532         (flow_delete_insn_chain): Declare.
19533         (enum update_life_extent): New.
19534         (update_life_info, count_or_remove_death_notes): Declare.
19535         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
19536         Verify register live at bb->global_live_at_start before adding USE.
19537         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
19538         (CLEAN_ALLOCA): New.
19539         (n_edges): New.
19540         (PROP_*): New flags.
19541         (find_basic_blocks_1): Use alloc_EXPR_LIST.
19542         (clear_edges): Zero n_edges.
19543         (make_edge): Increment n_edges.
19544         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
19545         (flow_delete_insn_chain): Export.
19546         (delete_block): Decrement n_edges.
19547         (merge_blocks_nomove): Likewise.
19548         (life_analysis): Give life_analysis_1 PROP flags.
19549         (verify_wide_reg_1, verify_wide_reg): New.
19550         (verify_local_live_at_start): New.
19551         (update_life_info): Rewrite to call into propogate_block.
19552         (mark_reg): New.
19553         (mark_regs_live_at_end): After reload, if epilogue as rtl,
19554         always mark stack pointer.  Conditionally mark PIC register.
19555         After reload, mark call-saved registers, return regsiters.
19556         (life_analysis_1): Accept PROP flags not remove_dead_code.
19557         Call mark_regs_live_at_end before zeroing regs_ever_live.
19558         Use calculate_global_regs_live.  Copy global_live_at_end before
19559         calling final propagate_block.  Zero reg_next_use on exit.
19560         (calculate_global_regs_live): New.
19561         (allocate_bb_life_data): Don't allocate bb->local_set.
19562         (init_regset_vector, free_regset_vector): Remove.
19563         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
19564         Test flags before every operation.  Warn if prologue/epilogue insn
19565         would have been deleted.
19566         (mark_set_regs, mark_set_1): Accept and use FLAGS.
19567         Use alloc_EXPR_LIST.
19568         (mark_used_regs): Accept and use FLAGS, not FINAL.
19569         Remove special handling for RETURN.
19570         (try_pre_increment): Use alloc_EXPR_LIST.
19571         (dump_flow_info): Dump n_edges.
19572         (unlink_insn_chain, split_hard_reg_notes): Remove.
19573         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
19574         (find_insn_with_note, new_insn_dead_notes): Remove.
19575         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
19576         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
19577         (replace_insns): Remove.
19578         (count_or_remove_death_notes): New.
19579         (verify_flow_info): Abort on error after all checks.
19580         (remove_edge): Decrement n_edges.
19581         (remove_fake_edges): Tweak format.
19582         * haifa-sched.c (schedule_insns): Use split_all_insns.
19583         * output.h (update_life_info): Remove declaration.
19584         * recog.c (split_all_insns): From the corpse of split_block_insns,
19585         do the whole function block by block.  Use update_life_info.
19586         (recog_last_allowed_insn): New.
19587         (recog_next_insn): Mind it.
19588         (peephole2_optimize): Set it.  Walk backwards through blocks.
19589         Use update_life_info.
19590         * rtl.h (update_flow_info, replace_insns): Remove declarations.
19591         (split_all_insns): Declare.
19592         * toplev.c (rest_of_compilation): Thread prologue before flow2.
19593         Use split_all_insns.
19594
19595         * i386.md (or -1 peep2s): Disable.
19596
19597 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
19598
19599         * config/mips/mips.md (movstrsi+[123]) : Combine these into
19600         a single pattern.  Scrap the 'd' versions as unnecessary.
19601
19602         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
19603         tablejump_mips162,tablejump_internal4): The operands to a
19604         label_ref must be VOIDmode.
19605
19606 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19607
19608         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
19609
19610 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
19611
19612         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
19613
19614 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
19615
19616         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
19617         cache every function if ggc_p.
19618
19619 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19620
19621         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
19622         instead of copy_rtx.  Accept sequences that contain asm statements.
19623         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
19624         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
19625         orig_asm_operands_vector, copy_asm_operands_vector,
19626         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
19627         variables.
19628         * rtl.h (copy_insn, copy_insn_1): Declare.
19629
19630 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19631
19632         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
19633
19634         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
19635         arguments to `current_file_function_operand'.
19636
19637         * genrecog.c: Include hard-reg-set.h and resource.h in the
19638         generated output file.
19639
19640         * real.c: Include tm_p.h.
19641
19642 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19643
19644         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
19645         output operand.
19646
19647 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
19648
19649         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
19650         before the fctiwz insn.
19651
19652 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19653                           Mark Mitchell  <mark@codesourcery.com>
19654
19655         * tree.c (make_lang_type_fn): New funtion pointer.
19656         (make_lang_type): Call it.
19657         * tree.h (make_lang_type): Declare.
19658         (make_lang_type_fn): Likewise.
19659         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
19660
19661 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
19662
19663         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
19664         make sure that HIGH instructions are copied into BASE_REGS.
19665
19666 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
19667
19668         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
19669
19670 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
19671
19672         * c-decl.c (finish_struct): Use simpler method of
19673         removing elements of a singly-linked list.
19674
19675 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
19676
19677         * alpha.md (peephole2's): Comment out peephole2's that generate
19678         buggy code.
19679
19680 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
19681
19682         * genrecog.c (add_to_sequence): Disable mode check for
19683         wildcard matches.
19684
19685 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19686
19687         * ggc-simple.c (init_ggc): Set empty_string.
19688
19689 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
19690
19691         * configure.in: Detect mmap.  Add --with-gc=foo to select
19692         garbage collector; default to page if mmap available.
19693         * Makefile.in (GGC): Substitute.
19694
19695 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
19696
19697         * c-decl.c (ggc_p): Enable.
19698
19699 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19700
19701         * flow.c (verify_flow_info): Make it extern & unconditionally define.
19702
19703 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
19704
19705         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
19706         string for little-endian-data.
19707
19708 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
19709
19710         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
19711         case somebody tries to compile --enable-checking code with gcc
19712         1.34 or such.
19713
19714 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
19715
19716         * genrecog.c (add_to_sequence): Verify operand to label_ref is
19717         VOIDmode.
19718
19719 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
19720
19721         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
19722         * jump.c (jump_optimize_1): Document why.
19723
19724 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19725
19726         * collect2.c (scan_prog_file, scan_libraries): Prototype function
19727         pointers and casts for `int_handler' and `quit_handler'.
19728
19729         * flow.c (verify_flow_info, split_hard_reg_notes,
19730         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
19731         remove_edge, remove_fake_successors): Add static prototypes.
19732         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
19733         (mark_set_1): Initialize variable `regno'.
19734         (unlink_insn_chain): Likewise for variable `curr'.
19735         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
19736
19737         * loop.c (strength_reduce): Initialize variable
19738         `unrolled_insn_copies'.
19739         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
19740         prototypes.  Change these functions to take const PTR parameters
19741         to avoid prototype conflict when used as the comparson argument
19742         for qsort.
19743         (check_dbra_loop): Initialize variable `comparison_val'.
19744
19745         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
19746         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
19747         (find_valid_class): Initialize variable `best_class'.
19748         (find_reloads): Call memcpy, not bcopy.
19749
19750         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
19751         (hard_reg_use_compare): Don't needlessly cast away const.
19752         (reload_reg_class_lower): Likewise.
19753         (choose_reload_regs): Initialize variable `regno'.
19754
19755 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
19756
19757         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
19758
19759 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
19760
19761         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
19762         ({,d}discard): Add forward declarations.  Declare parameter as
19763         unused.
19764         (main_without_main): Explicitly declare return type to be int.
19765         (memcpy): Properly declare.
19766
19767         * libgcc2.c (toplevel): If inhibit_libc is defined and not
19768         building the trampoline support, declare malloc, free, and
19769         atexit.
19770         (__clear_cache): Mark arguments as potentially unused.
19771
19772         * frame.c (toplevel): If inhibit_libc is defined, declare
19773         malloc and free.
19774
19775 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
19776
19777         * flow.c (make_edge): Accept an optional 2D bitmap in which
19778         to cache edge existence.  Update all callers.
19779         (make_label_edge, make_eh_edge): Pass through the edge cache.
19780         (make_edges): Provide the cache.
19781
19782 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19783
19784         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
19785         a char*.
19786         (local_mbtowc): Change the type of variable `i' from int to size_t.
19787
19788         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
19789         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
19790
19791 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
19792
19793         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
19794         after other includes that define the appropriate types.  Include
19795         tm_p.h for getting user prototypes.
19796         * ggc-callbacks.c (toplevel): Ditto.
19797         * ggc-none.c (toplevel): Ditto.
19798         * gcc-page.c (toplevel): Ditto.
19799         * ggc-simple.c (toplevel): Ditto.
19800
19801 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
19802                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
19803
19804         * config/mips/mips.c (mips_move_2words): Split doubles if
19805         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
19806
19807 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
19808
19809         * genrecog.c (struct decision_test): New.
19810         (struct decision): Remove test-related members, sort the rest by size.
19811         (IS_SPLIT): Simplify.
19812         (new_decision, new_decision_test): New.
19813         (add_to_sequence): Use them.  No special handling for args of
19814         non-MATCH codes.
19815         (maybe_both_true): Renamed from not_both_true; return sense changed.
19816         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
19817         of maybe_both_true and adjusted for decision_test.
19818         (position_merit): Remove.
19819         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
19820         (merge_accept_insn): New, broken out of merge_trees.
19821         (merge_trees): Use them.  No special case for c_test; no node
19822         splitting; use test type instead of position_merit.
19823         (factor_tests): New.
19824         (simplify_tests): New.
19825         (break_out_subroutines): Don't write code now.
19826         (find_afterward): New.
19827         (write_afterward, write_switch, write_cond): New.
19828         (write_action, is_unconditional): New.
19829         (write_node): New.  Use them.
19830         (write_tree_1): Rewrite.  Use the new functions above.
19831         (write_tree): Remove afterward processing.
19832         (write_subroutine): Simplify function variant emission.
19833         (write_subroutines): New.
19834         (same_codes, clear_codes): Remove.
19835         (same_modes, clear_modes): Remove.
19836         (write_header): New, broken out of main.
19837         (make_insn_sequence): Use new_decision and new_decision_test.
19838         (process_tree): New, broken out of main.
19839         (main): Adjust for merge_trees interface change.
19840         Don't #define operands in the output file.
19841         (record_insn_name): New, broken out of make_insn_sequence.
19842         (debug_decision_2, debug_decision_1, debug_decision_0): New.
19843         (debug_decision): New.
19844
19845 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
19846
19847         * resource.c (find_free_register): Mark class_str argument const.
19848         * resource.h: Update prototype to match.
19849
19850         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
19851         * i386.md: Give all anonymous insns names.
19852
19853 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
19854
19855         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
19856         blocks.
19857
19858 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
19859
19860         * toplev.c (dbr_sched_time): Unconditional.
19861         (peephole2_time): New.
19862         (compile_file): Add pass numbers to all of the dump file suffixes.
19863         Dump peephole2_time.  Don't dump times for non-applicable passes.
19864         (rest_of_compilation): Add pass numbers to dump file suffixes.
19865         Conditionalize calls to the scheduler.
19866         * invoke.texi: Update.
19867
19868 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
19869
19870         * flow.c (make_edges): Fix insn iteration.
19871         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
19872         (find_basic_blocks_1): Fix spelling mistake.
19873
19874 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
19875
19876         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
19877         always have side-effects.  Use memset not bzero.
19878         (make_node): Likewise.
19879
19880 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
19881
19882         * stmt.c (expand_anon_union_decl): When any of the elements of the
19883         union is addressable, so is the entire union.
19884
19885 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
19886
19887         * sbitmap.c (sbitmap_ones): Don't set too many bits.
19888
19889         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
19890         * bitmap.c (bitmap_operation): Return true iff TO changed.
19891         (bitmap_equal_p): New.
19892         (bitmap_bit_p): Tidy arithmetic.
19893         (debug_bitmap_file): Likewise.
19894
19895 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
19896
19897         * toplev.c (rest_of_compilation): Turn on cse_not_expected
19898         before cse2 instead of after.
19899
19900 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
19901
19902         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
19903         register offsets.
19904
19905 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19906
19907         * cppinit.c (is_idchar initializer): Loosen tests to accept
19908         gcc 2.>6 and >2.
19909
19910 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
19911
19912         * mips.md: Define conditional move patterns for floating point
19913         operands and DI mode conditions.
19914
19915 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
19916
19917         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
19918         always have side-effects.
19919
19920 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
19921
19922         * mn10200.c (asm_file_start): Fix typo.
19923
19924         * cppinit.c (is_idchar initializer): Tighten tests for when
19925         to put the table into initialized memory.
19926
19927         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
19928         not an array of rtunion.
19929         * gcc-page.c (ggc_alloc_rtvec): Similarly.
19930         * gcc-simple (ggc_free_rtvec): Similarly.
19931
19932         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
19933         of rtunions.
19934
19935         * mbchar.h: Add missing #endif.
19936
19937         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
19938         (FPBIT, DPBIT): Define.
19939
19940 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19941
19942         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
19943
19944         * profile.c (instrument_arcs, output_gcov_string,
19945         tablejump_entry_p): Add static prototypes.
19946         (output_gcov_string): Constify a char*.
19947
19948         * regmove.c (replacement_quality, fixup_match_2): Add static
19949         prototypes.
19950
19951         * resource.h (reg_dead_p): Add extern prototype.
19952
19953         * rtl.c (trim_filename): Add static prototype.
19954
19955         * scan-decls.c (skip_to_closing_brace): Likewise.
19956
19957         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
19958         (expand_end_case): Initialize variable `range'.
19959         (emit_case_nodes): Remove unused prototype `rtx_fn'.
19960
19961         * varasm.c (asm_emit_uninitialised): Add static prototype.
19962         (asm_emit_uninitialised, assemble_variable): Mark parameter with
19963         ATTRIBUTE_UNUSED.
19964
19965 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19966
19967         * cpplib.c (if_directive_nameo): Add static prototype.
19968
19969         * cse.c (cse_insn): Remove unused variable `p'.
19970
19971         * except.c (create_rethrow_ref, push_entry,
19972         receive_exception_label, new_eh_region_entry, find_func_region,
19973         clear_function_eh_region, process_nestinfo): Add static prototypes.
19974         (get_reg_for_handler): Hide definition.
19975         (process_nestinfo): Initialize variable `extra_handlers'.
19976
19977         * expr.h (expand_builtin_longjmp): Add extern prototype.
19978
19979         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
19980
19981         * function.c (prepare_function_start): Likewise.
19982         (pop_function_context_from): Mark parameter `context' with
19983         ATTRIBUTE_UNUSED.
19984         (push_temp_slots_for_block, flush_addressof): Hide definition.
19985
19986         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
19987         solve_program_flow_graph, calculate_branch_probs,
19988         function_summary, main, fancy_abort): Add prototypes.
19989
19990         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
19991         (add_hash): Constify a char*.
19992
19993         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
19994         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
19995         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
19996
19997         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
19998
19999         * lists.c (free_list, zap_lists): Likewise.
20000
20001 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20002
20003         * alias.c (nonlocal_reference_p): Add static prototype.
20004
20005         * bitmap.c (bitmap_element_allocate): Prototype args in function
20006         pointer cast.
20007
20008         * builtins.c (stabilize_va_list): Add static prototype.
20009         (expand_builtin_va_arg): Constify a char*.
20010
20011         * c-lex.c (getch, put_back, extend_token_buffer_to,
20012         read_line_number, token_getch, token_put_back): Add static
20013         prototypes.
20014
20015         * c-parse.gperf (hash, is_reserved_word): Likewise.
20016
20017         * cccp.c (is_dir_separator): Likewise.
20018
20019 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20020
20021         * graph.h: New file to prototype functions exported by graph.c.
20022
20023         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
20024
20025         * graph.c: Include graph.h.
20026
20027         * toplev.c: Likewise.  Remove redundant prototypes.
20028
20029 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
20030
20031         * invoke.texi: Removed duplicated description for -Q.
20032
20033 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
20034
20035         * extend.texi: Grammar fix in __extension__ text.
20036
20037 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
20038
20039         * md.texi (define_peephole2): New section.
20040
20041 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
20042
20043         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
20044         (mov $-1 to or peepholer): Enable for pentium when optimizing for
20045         speed.
20046
20047 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
20048
20049         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
20050
20051 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
20052
20053         * i386.md (ffs expander): Emit Pentium friendly code for
20054         TARGET_PENTIUM.
20055
20056 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
20057
20058         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
20059         for non-trees.
20060         (build1): Likewise.
20061
20062 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20063
20064         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
20065
20066 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
20067
20068         * config/m68k/m68k.c (use_return_insn): Return false if the pic
20069         register is in use.
20070
20071 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20072
20073         * md.texi (No Constraints): Delete section.
20074         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
20075         * final.c (final_scan_insn): We always have register constraints.
20076         * genattrtab.c: Don't include "insn-config.h".
20077         (write_attr_case): We always have register constraints.
20078         * genconfig.c (register_constraint_flag): Delete.
20079         (walk_insn_part): Don't check whether we have register constraints.
20080         (main): Don't write out "#define REGISTER_CONSTRAINTS".
20081         * genoutput.c (have_constraints): Delete.
20082         (main): Don't set it.
20083         (output_operand_data): We always have constraints.
20084         (scan_operands): Likewise.
20085         (compare_operands): Likewise.
20086         * local-alloc.c (block_alloc): We always have constraints.
20087         (requires_inout): Always compile this function.
20088         * recog.c (extract_insn): We always have constraints.
20089         (constrain_operands, reg_fits_class_p): Always compile these
20090         functions.
20091         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
20092         fields.
20093         (struct insn_operand_data): Likewise.
20094         * regclass.c (regclass): We always have constraints.
20095         (record_reg_classes, copy_cost, record_address_regs,
20096         auto_inc_dec_reg_p): Always compile these functions.
20097         * regmove.c (regmove_optimize): We always have constraints.
20098         * reload.c (find_reloads): Likewise.
20099         * reload1.c (reload): Likewise.
20100         (reload_cse_simplify_operands): Likewise.
20101         * i860.c (output_delay_insn): Likewise.
20102
20103 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
20104
20105         * iris6.h (BUILD_VA_LIST_TYPE): Define.
20106
20107 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20108
20109         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
20110         for the va_list record.
20111
20112 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
20113
20114         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
20115         prologues.
20116
20117 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
20118
20119         * alias.c: Include insn-flags.h.
20120         * Makefile.in (alias.o): Update.
20121
20122 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
20123
20124         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
20125         to LTU and GEU.  Handle more cases using sbb.
20126
20127 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
20128
20129         * i386.md (truncatexfdf splitters): Do not use subreg.
20130         (fop XFmode patterns): Fix mode in operand testing.
20131
20132 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
20133
20134         * jump.c (jump_optimize_1): Amend last change to test only the
20135         form of the operand, not the insn.
20136
20137         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
20138         not register_operand to determine when B may need preloading.
20139
20140 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
20141
20142         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
20143         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
20144         (call-value patterns): Move to end of file.
20145         (*): Remove mode from label_ref in (pc) context.
20146         (movstrqi): Use memory not general_operand for BLKmode operands.
20147         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
20148         to register_operand operands.
20149         (peep2 patterns): Convert from commented-out peephole patterns.
20150
20151 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20152
20153         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
20154         to BUILT_IN_INIT_DWARF_REG_SIZES.
20155         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
20156         Renamed from BUILT_IN_DWARF_REG_SIZE; call
20157         expand_builtin_init_dwarf_reg_sizes.
20158         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
20159         with __builtin_init_dwarf_reg_size_table.
20160         * dwarf2out.c (struct reg_size_range): Delete.
20161         (expand_builtin_init_dwarf_reg_sizes): New function.
20162         (expand_builtin_dwarf_reg_size): Delete.
20163         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
20164         (expand_builtin_dwarf_reg_size): Don't declare.
20165         * libgcc2.c (dwarf_reg_size_table_initialized): New.
20166         (dwarf_reg_size_table): New.
20167         (init_reg_size_table): New function.
20168         (copy_reg): Use dwarf_reg_size_table.
20169         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
20170         before use.
20171
20172 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
20173
20174         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
20175         Correctly build argument list to constructor and destructor functions.
20176
20177 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
20178
20179         * c-tree.h (warn_float_equal): Declare.
20180         * c-decl.c (warn_float_equal): Define.
20181         (c_decode_option): Recognize -W[no-]float-equal.
20182         * c-typeck.c (build_binary_op): Conditionally warn
20183         about equality tests of floating point types.
20184         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
20185         * invoke.texi: Add docs for -Wfloat-equal warning.
20186
20187 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
20188
20189         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
20190         generating RTL directly.
20191         * mips.h (INIT_TARGET_OPTABS): Likewise.
20192         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
20193
20194         * expr.h (init_mov_optab): Delete declaration
20195
20196         * h8300.c (WORD_REG_USED): Update to avoid useless register
20197         saves in interrupt functions and functions which never return.
20198
20199         * cse.c (struct set): Delete inner_dest_loc field.
20200         (cse_insn): Remove assignments to inner_dest_loc field.
20201
20202 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
20203
20204         * ggc-page.c: Don't include <unistd.h> etc taken care of
20205         by "system.h".  Include <sys/mman.h> afterward.
20206
20207 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
20208
20209         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
20210         ggc_alloc_string.
20211
20212 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
20213
20214         * xcoffout.c (xcoffout_declare_function): Add documentation.
20215         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
20216         TARGET_64BIT.  Compare constant to -1, not bit pattern.
20217         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
20218         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
20219         gen_movsi typos.
20220
20221 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
20222
20223         * dwarf2out.c (add_abstract_origin_attribute): Abort if
20224         origin_die is NULL.
20225         (gen_inlined_enumeration_type_die): Do not abort if the type has
20226         not been writeen out.
20227         (gen_inlined_structure_type_die): Do not abort if the type has
20228         not been writeen out.
20229         (gen_inlined_union_type_die): Do not abort if the type has
20230         not been writeen out.
20231         (gen_tagged_type_instantiation_die): Do not abort if the type
20232         has not been written out.
20233
20234 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20235
20236         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
20237         call it.
20238         * reg-stack.c (straighten_stack): Copy hard reg set with
20239         COPY_HARD_REG_SET.
20240
20241 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
20242
20243         * builtins.c (stabilize_va_list): Stabilize array type va_list
20244         to a pointer type, not the base record type.
20245         (expand_builtin_va_copy): Dereference the pointers explicitly;
20246         use the correct size for the copy.
20247
20248         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
20249         (rs6000_va_arg): Likewise.
20250
20251 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
20252
20253         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
20254
20255 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
20256
20257         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
20258         field.
20259         (DECL_BUILT_IN_CLASS): Adjust accordingly.
20260
20261 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
20262
20263         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
20264         (init_ggc): Use it instead of a constant.
20265         (ggc_collect): Bound allocated_last_gc by it.
20266
20267 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
20268
20269         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
20270         with va_list.
20271
20272 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
20273
20274         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
20275         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
20276         * configure:  Regen.
20277         * config/mips/openbsd.h:  New, OpenBSD little endian target.
20278         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
20279         * config/mips/xm-openbsd.h:  New, OpenBSD host.
20280
20281 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
20282
20283         * config/m68k/m68k.c (output_function_prologue,
20284         output_function_epilogue): Use
20285         current_function_uses_pic_offset_table instead of regs_ever_live
20286         to decide whether to save/restore pic register.
20287         (legitimize_pic_address): Don't modify regs_ever_live any more.
20288
20289 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
20290
20291         * function.h (struct function): Add x_dont_save_pending_sizes_p.
20292         * stor-layout.c (variable_size): Don't add sizes to the pending
20293         sizes list if x_dont_save_pending_sizes_p is set.
20294
20295 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
20296
20297         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
20298         for symbolic_operand().
20299         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
20300
20301 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20302
20303         * combine.c (gen_rtx_combine): Add missing call to va_end().
20304
20305         * final.c (asm_fprintf): Likewise.
20306
20307         * genattrtab.c (attr_rtx): Likewise.
20308
20309 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
20310
20311         * cse.c: Update comments.
20312         (cse_insn): When converting a conditional/computed jump into
20313         an unconditional jump, always make sure a BARRIER immediately
20314         follows the converted jump.  Do not delete unreachable code.
20315         (cse_basic_block): Do not delete unreachable code.
20316         * toplev.c (rest_of_compilation): Move call to
20317         delete_trivially_dead_insns after the conditional call to
20318         jump_optimize.
20319
20320 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20321
20322         * collect2.c (make_temp_file): Don't prototype.
20323
20324         * gcc.c (make_temp_file): Likewise.
20325
20326         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
20327
20328 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
20329
20330         * varasm.c (asm_emit_uninitialised): New function: Generate
20331         the assembler statements necessary to declare an uninitialised
20332         variable.
20333         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
20334         variable.
20335         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
20336         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
20337         section.
20338         (assemble_variable): Use asm_emit_uninitialised to emit an
20339         uninitialised variable.
20340
20341 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
20342
20343         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
20344         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
20345         <geoffk@cygnus.com>.
20346
20347 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20348
20349         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
20350         * c-common.h (builtin_function): Don't declare.
20351
20352         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
20353         DECL_BUILT_IN.
20354         (pushdecl): Likewise.
20355         (finish_decl): Likewise.
20356         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
20357         int.  All callers changed.
20358         Set the builtin's DECL_BUILT_IN_CLASS.
20359         * tree.h (enum built_in_class): New.
20360         (enum built_in_function): Delete NOT_BUILT_IN.
20361         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
20362         in a union.
20363         (DECL_SET_FUNCTION_CODE): Likewise.
20364         (DECL_BUILT_IN_CLASS): New macro.
20365         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
20366         (struct tree_decl): Split builtin function code field into a
20367         struct.
20368         (builtin_function): Declare.
20369
20370 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
20371
20372         * optabs.c (init_traps): Fix typo in last change.
20373
20374 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
20375
20376         * toplev.c (rest_of_decl_compilation): Update comment.
20377
20378 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
20379
20380         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
20381         in .sbss if appropriate.
20382         (EXTRA_SECTION_FUNCTIONS): Add sbss.
20383         (SBSS_SECTION_ASM_OP): New macro.
20384         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
20385         (EXTRA_SECTIONS): Add in_sbss.
20386         * config/mips/mips.h: Prototype sbss_section.
20387
20388 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
20389
20390         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
20391         to disappear.
20392
20393 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
20394
20395         * optabs.c (init_traps): Register trap_rtx as a GC root.
20396
20397 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20398
20399         * config/mips/mips.c (function_arg_pass_by_reference): Define
20400         unconditionally, since it's called unconditionally.
20401
20402 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
20403
20404         * toplev.c (documented_lang_options): Add -fshort-wchar.
20405         * c-decl.c (c_decode_option): Likewise.
20406         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
20407         for wchar_t.
20408         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
20409         * gcc.c (default_compilers): If -fshort-wchar,
20410         override __WCHAR_TYPE__.
20411         * tm.texi (C Dialect Options): Add -fshort-wchar.
20412
20413         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
20414         symbol for a variable.
20415
20416         * cpplib.h (CPP_PREPROCESSED): New macro.
20417         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
20418         we're seeing this input for a second time.
20419
20420 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
20421
20422         * emit-rtl.c (init_emit_once): Initialize modes first.
20423
20424 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
20425
20426         * config/i386/i386.c (pic_label_name): Change to char pointer.
20427         (global_offset_table): New variable.
20428         (load_pic_register): Fill global_offset_table if it hasn't
20429         already been done.  Allocate pic_label_name dynamically.
20430         * ggc.h (empty_string): New variable.
20431         * ggc-simple.c (empty_string): Likewise.
20432         (init_ggc): Allocate empty_string and add as root.
20433         * stmt.c (digit_strings): New variable.
20434         (init_stmt): Add last_block_end_note as root.  Allocate and
20435         initialize digit_strings.
20436         (expand_asm_operands): Use empty_string instead of string
20437         constant.  Use digit_strings instead of string constants.
20438         * profile.c (init_arc_profiler): Allocate string with
20439         ggc_alloc_string instead of xmalloc.
20440         (output_func_start_profiler): Likewise.
20441         * c-typeck.c (digest_init): Check if init is error_mark_node.
20442
20443 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
20444                           Richard Henderson  <rth@cygnus.com>
20445
20446         * ggc-page.c: New file.
20447         * Makefile.in (ggc-page.o): New.
20448
20449 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
20450
20451         * invoke.texi: Document -fdelete-null-pointer-checks
20452         * toplev.c (flag_delete_null_pointer_checks): New.
20453         (f_options): Add entry for -fdelete-null-pointer-checks.
20454         (rest_of_compilation): Conditionalize null pointer check
20455         elimination on flag_delete_null_pointer_checks.
20456         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
20457
20458 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
20459
20460         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
20461         copyright notice and special exception to GPL.
20462
20463 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20464
20465         * abi64.h (mips_function_value): Add prototype arguments.
20466
20467         * mips-protos.h: New file with mips prototypes.
20468
20469         * mips.c: Include "tm_p.h".
20470         (mktemp, lookup_name): Add prototype arguments.
20471         (extern_list, string_constant, mips_fill_delay_slot,
20472         mips_output_external, mips_output_external_libcall,
20473         mips_output_filename, mips_declare_object, function_prologue,
20474         mips_expand_prologue, function_epilogue, mips16_constant,
20475         build_mips16_function_stub, mips_output_conditional_branch):
20476         Constify a char*.
20477         (mips_va_start): Remove unused variable `u'.
20478         (mips_va_arg): Cast value to unsigned when comparing against one.
20479         (trace): Delete.
20480         (save_restore_insns, mips_expand_prologue): Add missing arg in
20481         call to `large_int'.
20482
20483         * mips.h: Move prototypes to mips-protos.h.
20484         (data_section, memory_address_p, rdata_section,
20485         readonly_data_section, simple_epilogue_p, text_section): Delete
20486         prototypes delcared elsewhere.
20487         (mips_epilogue_delay_slots, print_options): Delete unused decls.
20488         (trace): Delete.
20489         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
20490
20491         * mips.md: Delete extra args in call to `mips_move_2words'.
20492
20493         * xm-iris6.h (alloca): Add prototype argument.
20494
20495         * genpeep.c: Include "tm_p.h" in generated output file.
20496
20497 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20498
20499         * basic-block.h (find_edge_index): Change parameters.
20500         * flow.c (verify_edge_list): Pass basic_block parameters to
20501         find_edge_index instead of integers.
20502
20503 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
20504
20505         * combine.c (simplify_comparison): Use an unsigned shift to adjust
20506         the constant.
20507
20508 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
20509
20510         * gcc.1: Fix a formatting error.
20511
20512 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
20513
20514         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
20515         i786, mn10200, mn10300, pdp11, v850.
20516
20517 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
20518
20519         * libgcc2.c (num_digits): Add prototype with
20520         __attribute__((const)).
20521         (__terminate): Add prototype.
20522
20523 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
20524
20525         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
20526
20527         * alpha/alpha.c (print_operand): Fix type of `code'.
20528         (alpha_output_filename): Constify.
20529         * alpha/alpha.h: Move all function declarations ...
20530         * alpha/alpha-protos.h: ... here.  New file.
20531         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
20532         (SECTION_FUNCTION_TEMPLATE): Likewise.
20533
20534 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20535
20536         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
20537         * expr.c (expand_expr): Likewise.
20538         (do_jump): Likewise.
20539         (do_store_flag): Pass ccp_store_flag to can_compare_p.
20540         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
20541         accessor macros.
20542         (enum can_compare_purpose): New.
20543         (can_compare_p): Adjust prototype.
20544         (prepare_cmp_insn, prepare_operand): Declare.
20545         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
20546         * optabs.c (cmp_available_p): Deleted.
20547         (expand_abs): Pass ccp_jump to can_compare_p.
20548         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
20549         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
20550         Call can_compare_p rather than cmp_available_p.
20551         (prepare_operand): No longer static.
20552         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
20553         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
20554         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
20555         sequence to use emit_cmp_and_jump_insns.
20556         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
20557
20558 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
20559
20560         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
20561         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
20562         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
20563         (plus (reg) (const_int 0))
20564         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
20565
20566 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
20567
20568         * rs6000.c (expand_block_move): DImode loads and stores require
20569         word-aligned displacements.  Increment address registers with
20570         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
20571
20572 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
20573
20574         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
20575         is no name for the base type, rather than segfault.  If we are
20576         writing out a complex integer type, use DW_ATE_lo_user.
20577
20578         * expr.c (emit_move_insn_1): If we are copying a complex that fits
20579         in one word or less (complex char, complex short, or on 64 bit
20580         systems complex float) to/from a hard register, copy it through
20581         memory instead of dying in gen_{real,imag}part.  If we have a
20582         short complex type, prevent inlining since it allocates stack
20583         memory.
20584
20585         * tree.c (build_complex_type): If we are writing dwarf2 output,
20586         generate a name for complex integer types.
20587
20588 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20589
20590         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
20591         * flow.c (remove_edge): Remove extra whitespace.
20592         (remove_fake_edges): Fix comment.
20593         (add_noreturn_fake_exit_edges): Use the correct name.
20594
20595 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
20596
20597         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
20598         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
20599         (clean): Depend on INTL_CLEAN.
20600         (maintainer-clean): Adjust.
20601
20602 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20603
20604         * configure.in (AC_PREREQ): Bump to 2.13.
20605         (AC_C_STRINGIZE): Call this instead of using a custom macro.
20606
20607         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
20608
20609         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
20610
20611         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
20612
20613         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
20614         (HAVE_STRINGIZE): Define.
20615
20616 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
20617
20618         * c-parse.in: save and restore warn_pointer_arith on __extension__
20619         along with pedantic.
20620         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
20621         Set the type of extension to itype rather than $<itype>1 kludge.
20622         * extend.texi (Alternate Keywords): Adjust documentation.
20623         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
20624
20625 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
20626
20627         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
20628         most assembler templates.
20629
20630         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
20631         FP loads and stores.
20632         (following_call): Always return zero for the PA8000.
20633         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
20634         FP loads and stores.
20635         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
20636
20637         * pa.h (BRANCH_COST): Define.
20638
20639         * pa.md (return, return_internal): Use bve for PA2.0.
20640
20641         * pa.md (fused multiply): Add variants which reduce height for the
20642         fused multiply, but which still generate 2 insns.
20643         (fnegabs): Similarly.
20644
20645         * pa.md (subsi3): Turn into an expander.  Create two anonymous
20646         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
20647         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
20648
20649         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
20650         for TARGET_PA_20.
20651         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
20652         code generation.
20653         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
20654         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
20655
20656         * regclass.c (init_regs): Add "top_of_stack" as a garbage
20657         collection root.
20658
20659         * flow.c (record_active_eh_regions): Terminate loop after finding
20660         the last insn in the last basic block.
20661
20662 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20663
20664         * config/c4x/c4x.md: Delete parallel instruction peepholes.
20665
20666 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20667
20668         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
20669
20670 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20671
20672         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
20673         splitting to not use output template.
20674
20675 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20676
20677         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
20678         * config/c4x/c4x.c (c4x_va_start): New function.
20679
20680 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
20681
20682         * genrecog.c (not_both_true): Handle correctly cases when called for
20683         tests with different positions in the insn.
20684
20685 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20686
20687         * machmode.h (HOST_PTR_PRINTF): Move from here ...
20688
20689         * system.h (HOST_PTR_PRINTF): ... to here.
20690
20691         * mips-tfile.c: Don't include machmode.h.
20692
20693         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
20694         (mips-tfile.o): Don't depend on machmode.h.
20695
20696 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20697
20698         * haifa-sched.c (sched_analyze): Rename local variable `region' to
20699         avoid conflicts with typedef struct `region' at the top level scope.
20700
20701 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
20702
20703         * basic-block.h (basic_block): Add eh_beg, eh_end.
20704         * flow.c (entry_exit_blocks): Update.
20705         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
20706         Call new functions.
20707         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
20708         lists.c functions to allocate insn lists.
20709         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
20710         edge creation ...
20711         (make_eh_edge): ... here.  New.
20712         (move_stray_eh_region_notes): New.
20713         (record_active_eh_regions): New.
20714         (delete_unreachable_blocks): Split out block merging ...
20715         (try_merge_blocks): ... here.  New.
20716         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
20717         Dump debugging data.
20718         (merge_blocks_move_successor_nojumps): Likewise.
20719         (merge_blocks): Use eh_beg+eh_end to validate block movement.
20720
20721 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
20722
20723         * extend.texi (Bound member functions): Document unbound pmf
20724         conversion.
20725
20726 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20727
20728         * flow.c (split_edge): Handle insertion on a fallthrough edge which
20729         has the EXIT_BLOCK as a dest.
20730
20731 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20732
20733         * flow.c (remove_edge): New function to remove an edge from the
20734         flow graph.
20735         (remove_fake_successors): New function to remove fake successor edges.
20736         (remove_fake_edges): New function to remove all fake edges from the
20737         flow graph.
20738         (add_fake_exit_edges): New function to add fake edges from all blocks
20739         with no successors to the exit block.
20740         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
20741         prototypes for new functions.
20742
20743 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20744
20745         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
20746         Use Pmode to determine whether to output .dword or .word.
20747
20748 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
20749
20750         * tree.c (built_in_filename): New variable.
20751         (BUILT_IN_FILENAME): New macro.
20752         (init_tree_codes): Allocate built_in_filename.
20753         (make_node): Use built_in_filename instead of string constant.
20754
20755 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
20756
20757         * configure.in: Add fr30 target.
20758         * configure: Regenerate.
20759         * config/fr30: New directory.
20760         * config/fr30/crti.asm: New file.
20761         * config/fr30/fr30.c: New file.
20762         * config/fr30/crtn.asm: New file.
20763         * config/fr30/fr30.h: New file.
20764         * config/fr30/fr30.md: New file.
20765         * config/fr30/lib1funcs.asm: New file.
20766         * config/fr30/t-fr30: New file.
20767         * config/fr30/xm-fr30.h: New file.
20768
20769 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
20770
20771         * flow.c (merge_blocks_move_successor_nojumps): Delete the
20772         BARRIER at the end of the successor, not the BARRIER before
20773         the successor.
20774
20775         * pa.c (pa_add_gc_roots): Fix thinko in last change.
20776
20777 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
20778
20779         * stmt.c (any_pending_cleanups): Don't crash when
20780         current_function->stmt is unset.
20781
20782 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20783
20784         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
20785         other initializations that may use it for relative offsets.
20786
20787 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20788
20789         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
20790         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
20791         * config/i386/sol2dbg.h: Removed.
20792         * config/i386/sol2gas.h: New file, to enable gas work-around.
20793         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
20794         Don't use sol2dbg.h.
20795         * configure: Rebuilt.
20796
20797 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
20798
20799         * invoke.texi (-fthis-is-variable): Remove documentation.
20800
20801 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
20802
20803         * basic-block.h (compute_bb_for_insn): Declare.
20804         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
20805         to use; set size of basic_block_for_insn directly.
20806         (find_basic_blocks): Update.
20807
20808 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20809
20810         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
20811
20812 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20813
20814         * crtstuff.c (ON_EXIT): Delete empty macro definition.
20815         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
20816
20817 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
20818
20819         * c-decl.c (c_decode_option): Extend comment.
20820
20821 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
20822
20823         * toplev.c (progname): Make 'const char *'
20824         (flag_print_mem): Move out of main.
20825         (version_flag): Move out of main.
20826         (filename): Move out of main.
20827         (debug_args): Remove g prefix from options.
20828         (documented_lang_options): Remove cpplib specific options.
20829         (display_help): Add g prefix to debug options.
20830         (check_lang_option): Delete this function.
20831         (decode_d_option): New function: Decode -d... option.
20832         (decode_f_option): New function: Decode -f... option.
20833         (decode_W_option): New function: Decode -W... option.
20834         (decode_g_option): New function: Decode -g... option.
20835         (independent_decode_option): New function: Decode a language
20836         independent command line option.
20837         (main): Invoke lang_decode_option and then
20838         independent_decode_option on each command line option in
20839         turn.
20840
20841 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
20842
20843         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
20844          * fold-const.c (fold_range_test): Do not try to fold the range
20845          test if the rhs or lhs has side effects.
20846
20847         * basic-block.h (compute_flow_dominators): Declare.
20848
20849         * gcse.c (alloc_code_hoist_mem): New function.
20850         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
20851         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
20852         (hoist_code, one_code_hoisting_pass): Likewise.
20853         (gcse_main): If optimizing for size, then hoist expressions
20854         computed in multiple dominated basic blocks.
20855
20856         * gcse.c (invalid_nonnull_info): New function.
20857         (delete_null_pointer_checks): Likewise.
20858         * rtl.h (delete_null_pointer_checks): Declare.
20859         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
20860
20861         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
20862         (merge-blocks_move_successor_nojumps): Likewise.
20863         (merge_blocks): Allow merging of some blocks, even if it requires
20864         physical movement of the blocks, but not if it requires new jumps.
20865
20866         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
20867         Callers and prototype changed.
20868         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
20869
20870 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20871
20872         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
20873         -YP when both -p and -pg are present.  From i386/sol2.h.
20874
20875 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20876
20877         * Makefile.in (distclean): Delete tm_p.h.
20878         * configure.in: Create a new file, "tm_p.h", from a list in
20879         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
20880         "i386/i386-protos.h".
20881
20882         * alias.c: Include "tm_p.h".
20883         * c-typeck.c: Likewise.
20884         * calls.c: Likewise.
20885         * cse.c: Likewise.
20886         * emit-rtl.c: Likewise.
20887         * explow.c: Likewise.
20888         * expmed.c: Likewise.
20889         * expr.c: Likewise.
20890         * final.c: Likewise.
20891         * flow.c: Likewise.
20892         * fold-const.c: Likewise.
20893         * function.c: Likewise.
20894         * gcse.c: Likewise.
20895         * global.c: Likewise.
20896         * haifa-sched.c: Likewise.
20897         * integrate.c: Likewise.
20898         * jump.c: Likewise.
20899         * local-alloc.c: Likewise.
20900         * loop.c: Likewise.
20901         * optabs.c: Likewise.
20902         * recog.c: Likewise.
20903         * reg-stack.c: Likewise.
20904         * regclass.c: Likewise.
20905         * regmove.c: Likewise.
20906         * reload.c: Likewise.
20907         * reload1.c: Likewise.
20908         * reorg.c: Likewise.
20909         * resource.c: Likewise.
20910         * stmt.c: Likewise.
20911         * stor-layout.c: Likewise.
20912         * toplev.c: Likewise.
20913         * tree.c: Likewise.
20914         * unroll.c: Likewise.
20915         * genattrtab.c (main): Make generated file include "tm_p.h".
20916         * genemit.c (main): Likewise.
20917         * genoutput.c (main): Likewise.
20918         * genrecog.c (main): Likewise.
20919
20920         * i386.h: Delete all prototypes.
20921         * i386.c: Include "tm_p.h".
20922         (ix86_attr_length_default): Call constant_call_address_operand
20923         with correct number of arguments.
20924         * i386-protos.h: New file.
20925         * i386.md (unnamed patterns): Call constant_call_address_operand
20926         with correct number of arguments.
20927         (exception_receiver): Call load_pic_register with correct number
20928         of arguments.
20929
20930 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
20931
20932         * c-pragma.c (mark_align_stack): Dereference the void* properly.
20933
20934 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
20935
20936         * rtl.h (insns_safe_to_move_p): New function.
20937         * loop.c (find_and_verify_loops): Use it.
20938         * rtlanal.c (insns_safe_to_move_p): Define it.
20939
20940 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
20941
20942         * c-pragma.c: Include ggc.h.
20943         * Makefile.in (c-pragma.o): Update.
20944
20945 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20946
20947         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
20948         (LIB_SPEC): Likewise.
20949         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
20950         Reindent -YP/-p/-pg.
20951         Copied from config/sparc/sol2.h.
20952
20953 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
20954
20955         * c-pragma.c (mark_align_stack): New.
20956         (init_pragma): New.
20957         * c-pragma.h (init_pragma): Declare it.
20958         * c-lex.c (init_parse): Call it.
20959
20960 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20961
20962         * configure.in: Pick up thread library on Solaris/x86 just
20963         like on Solaris/sparc.
20964         * configure: Rebuilt.
20965
20966 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
20967
20968         * rtl.h (global_rtx_index): New enum.
20969         (global_rtl): Change to array of rtx.
20970         (pc_rtx, cc0_rtx): Redefine accordingly.
20971         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
20972         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
20973         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
20974         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
20975         (const_int_rtx): Change to array of rtx.
20976         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
20977         accordingly.
20978         * emit-rtl.c (global_rtl): Change to array of rtx.
20979         (const_int_rtx): Change to aray of rtx.
20980         (gen_rtx_CONST_INT): Redefine accordingly.
20981         (init_emit_once): Allocate and initialize global_rtl.  Likewise
20982         for const_int_rtx.  Add both as GC roots.
20983         * genattrtab.c (global_rtl): Update declaration.
20984
20985 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
20986
20987         * Makefile (USER_H): Add iso646.h back.
20988
20989 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
20990
20991         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
20992         zapping the LOG_LINKS of sched_before_next_call.
20993
20994         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
20995         * pa.c (insn_refs_are_delayed): Renamed from
20996         insn_sets_and_refs_are_delayed.
20997
20998 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
20999
21000         * functiion.h (struct function): Add x_whole_function_mode_p.
21001         (retrofit_block): Declare.
21002         * function.c (retrofit_block): New function.
21003         (identify_blocks): Add assertions.  Allow an incomplete set of
21004         block notes if we're still generating code for the function.
21005         * integrate.c: Include loop.h.
21006         (expand_inline_function): Call find_loop_tree_blocks to map block
21007         notes to blocks when in whole-function mode.  Use retrofit_block
21008         to insert new BLOCKs for the inlined function, rather than
21009         insert_block.
21010         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
21011         * Makefile.in (integrate.o): Depend on loop.h.
21012
21013 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
21014
21015         * tree.h (warn_about_unused_variables): Declare.
21016         * stmt.c (warn_about_unused_variables): New function, split out
21017         from ...
21018         (expand_end_bindings): Here.
21019
21020 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
21021
21022         * stmt.c (preserve_subexpressions_p): Don't crash when
21023         current_function->stmt is unset.
21024
21025 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
21026
21027         * stmt.c (expand_start_bindings): Allow callers to pass a flag
21028         indicating that no NOTE_INSN_BLOCK_BEG note is required.
21029         (expand_start_target_temps): Use it.
21030         * except.c (expand_eh_region_start_for_decl): Likewise.
21031         * expr.c (expand_expr): Likewise.
21032
21033 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21034
21035         * fold-const.c (operand_equal_p): Pay attention to side effects.
21036
21037 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
21038
21039         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
21040         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
21041
21042         * tlink.c (scan_linker_output): Look for keywords before accepting
21043         a mangled name in quotes.
21044
21045 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
21046
21047         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
21048         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
21049
21050 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
21051
21052         * alpha.md: Revert Thu Nov 26 change that came in through the
21053         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
21054         Avoid earlyclobber when possible.
21055
21056 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21057
21058         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
21059
21060         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
21061         Define HAVE_ON_EXIT.
21062
21063 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21064
21065         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
21066         CTYPE_CONV in all ctype macros.
21067
21068         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
21069         from system.h.
21070
21071         * cexp.y (initialize_random_junk): Likewise.
21072
21073         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
21074
21075         * i370.c (handle_pragma): Likewise.
21076
21077         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
21078
21079         * v850.c (override_options): Likewise.
21080
21081         * doprint.c (_doprnt): Likewise.
21082
21083         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
21084         Likewise.
21085
21086         * fixinc/server.c (load_data): Likewise.
21087
21088         * fold-const.c (real_hex_to_f): Likewise.
21089
21090         * genattr.c (write_upcase, gen_attr): Likewise.
21091
21092         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
21093         write_upcase): Likewise.
21094
21095         * genemit.c (print_code): Likewise.
21096
21097         * genopinit.c (gen_insn): Likewise.
21098
21099         * genpeep.c (print_code): Likewise.
21100
21101         * genrecog.c (print_code): Likewise.
21102
21103         * optabs.c (init_libfuncs): Likewise.
21104
21105 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
21106
21107         * haifa-sched.c (sched_analyze): Keep the list of notes organized
21108         in pairs.
21109         (reemit_notes): Likewise.
21110
21111 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
21112
21113         * ggc.h (ggc_root): Move to ggc-common.c.
21114         (roots): Remove.
21115         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
21116         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
21117         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
21118         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
21119         * ggc-common.c (ggc_root): Move from ggc.h.
21120         (roots): Declare, static.
21121         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
21122         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
21123         null or check/set mark bit.
21124         (ggc_mark_roots): New.
21125         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
21126
21127 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
21128
21129         * m32r.c: Include toplev.h.
21130         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
21131         (gen_compare): Rename swap_p to must_swap to match uses.
21132         Add default abort case.
21133         (m32r_output_function_epilogue): Remove unused variables.
21134         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
21135         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
21136         define to empty parameter list.  Update all uses.
21137         (predicate decls): Use enum machine_mode not int.
21138         * m32r.md (movsi): Call abort, not fatal_insn.
21139         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
21140
21141 1999-09-14  Andrew Haley  <aph@cygnus.com>
21142
21143         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
21144         use $0 instead of 0.
21145
21146 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21147
21148         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
21149         computation out of loop over hard regs.
21150
21151 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
21152
21153         * function.c (identify_blocks): Don't shadow a variable in an
21154         outer scope.
21155         * integrate.c (integrate_decl_tree): Don't use pushlevel,
21156         pushdecl, or poplevel to build up the new BLOCK tree.
21157         (expand_inline_function): Likewise.
21158         (integrate_parm_decls): Likewise.
21159
21160 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
21161
21162         * c-typeck.c (qualify_type): Merge qualifiers from both types.
21163
21164 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
21165
21166         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
21167         * invoke.texi: Document this change.
21168
21169 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
21170
21171         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
21172         Free the struct.
21173         (mark_emit_status): Renamed from mark_emit_state.
21174         * except.c (mark_eh_status): Renamed from mark_eh_state.
21175         Check not null before marking.
21176         (free_eh_status): New.
21177         * expr.c (mark_expr_status, free_expr_status): New.
21178         * function.c (free_machine_status): New.
21179         (free_after_parsing): New.
21180         (free_after_compilation): Move bits to free_after_parsing; call
21181         free_eh_status, free_expr_status; zero the marked members of the
21182         function state.
21183         (prepare_function_start): No can_garbage_collect.
21184         Call init_eh_for_function.
21185         (expand_dummy_function_end): Free up current_function state.
21186         (mark_function_status): Renamed from mark_function_state.
21187         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
21188         * function.h (struct function): No can_garbage_collect.
21189         (free_machine_status, free_after_parsing): Declare.
21190         (free_eh_status, free_expr_status): Declare.
21191         * ggc.h (mark_expr_status): Declare.
21192         * stmt.c (free_stmt_status): Free the struct.
21193         (mark_stmt_status): Renamed from mark_stmt_state.
21194         (init_stmt): Don't call init_eh.
21195         (init_stmt_for_function): Don't call init_eh_for_function.
21196         * toplev.c (compile_file): Call init_eh.
21197         (rest_of_compilation): Free basic block info before ggc_collect.
21198         Call free_after_parsing; conditionally call free_after_compilation.
21199         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
21200         Check not null before marking.
21201         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
21202
21203 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
21204
21205         * c-lex.c (yylex): Initialize warn.
21206
21207 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
21208
21209         * pa.c (emit_move_sequence): Properly set the mode of the scratch
21210         register when performing secondary reloads for the SAR register.
21211
21212 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
21213
21214         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
21215         (NOTE_BLOCK): New macro.
21216         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
21217         * function.h (identify_blocks): Change prototype.
21218         * function.c (identify_blocks): Simplify.
21219         (reorder_blocks): Likewise.
21220         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
21221         NOTE_INSN_BLOCK_{BEG,END}.
21222         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
21223         the list of saved notes if the note isn't a
21224         NOTE_INSN_BLOCK_{BEG,END}.
21225         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
21226         NOTE_BLOCK_NUMBER.
21227         (reemit_notes): Adjust recreation of notes to reflect new saved
21228         note structure.
21229         * print-rtl.c (print_rtx): Print the address of the BLOCK when
21230         printing a block note.
21231         * stmt.c (block_vector): Remove.
21232         (find_loop_tree_blocks): Simplify.
21233         (unroll_block_trees): Likewise.
21234         * tree.h (reorder_block): Change prototype.
21235
21236 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
21237
21238         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
21239         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
21240         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
21241         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
21242         (atexit, exit): Simplify.
21243         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
21244         * config/lots: Remove defns of HAVE_ATEXIT.
21245
21246 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
21247
21248         * calls.c (precompute_arguments): Fix typo in comment.
21249         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
21250         TARGET_EXPR.
21251
21252 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
21253
21254         * dsp16xx.c (override_options): Fix typos in GC root registration.
21255
21256 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
21257
21258         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
21259         from config/svr4.h.
21260         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
21261         (FUNCTION_PROFILER): Redefine appropriately for Linux.
21262         (CC1_SPEC): Likewise.
21263
21264 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21265
21266         * genattr.c (main): Add extern prototype.  Call return, not exit.
21267         * genattrtab.c (main): Likewise.
21268         * gencheck.c (main): Likewise.
21269         * gencodes.c (main): Likewise.
21270         * genconfig.c (main): Likewise.
21271         * genemit.c (main): Likewise.
21272         * genextract.c (main): Likewise.
21273         * genflags.c (main): Likewise.
21274         * gengenrtl.c (main): Likewise.
21275         * genopinit.c (main): Likewise.
21276         * genoutput.c (main): Likewise.
21277         * genpeep.c (main): Likewise.
21278         * genrecog.c (main): Likewise.
21279
21280         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
21281         * genattrtab.c (get_insn_name): Likewise.
21282         * gencodes.c (get_insn_name): Likewise.
21283         * genconfig.c (get_insn_name): Likewise.
21284         * genemit.c (get_insn_name): Likewise.
21285         * genextract.c (get_insn_name): Likewise.
21286         * genflags.c (get_insn_name): Likewise.
21287         * genopinit.c (get_insn_name): Likewise.
21288         * genpeep.c (get_insn_name): Likewise.
21289
21290         * gencheck.c (usage): Add static prototype.
21291         * genextract.c (print_path): Constify a char*.
21292         * genopinit.c (optabs): Likewise.
21293         * genoutput.c (operand_data, data, output_predicate_decls,
21294         compare_operands): Likewise.
21295         * genrecog.c (write_tree): Add default case in switch.
21296
21297 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21298
21299         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
21300
21301         * print-rtl.c (get_insn_name): Remove prototype.
21302
21303         * toplev.h (progname): Declare const.
21304
21305         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
21306         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
21307         dump_sched_info, dump_local_alloc, regset_release_memory,
21308         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
21309         error_with_file_and_line, error_with_decl, error_for_asm, error,
21310         fatal, warning_with_file_and_line, warning_with_decl, warning,
21311         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
21312         Remove redundant prototypes.
21313
21314         (notice, check_lang_option, report_file_and_line, vnotice,
21315         mark_file_stack): Add static prototype.
21316         (set_fatal_function): Add prototype.
21317         (vnotice, report_file_and_line, set_fatal_function,
21318         check_lang_option): Constify a char*.
21319         (main): Prototype.  Call return, not exit.
21320
21321 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21322
21323         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
21324
21325         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
21326
21327         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
21328
21329         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
21330
21331 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21332
21333         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
21334         behave as if it's zero in all cases.
21335         (expand_function_start): Adjust call to assign_parms.
21336         * tree.h (assign_parms): Adjust prototype.
21337         * objc/objc-act.c (hack_method_prototype): Adjust call to
21338         assign_parms.
21339
21340 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
21341
21342         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
21343         arg_pointer_rtx fixed if the argument pointer register is
21344         not fixed.
21345         (NONZERO_BASE_PLUS_P): Likewise.
21346
21347 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
21348
21349         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
21350         match_insn2 to match_insn.
21351         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
21352
21353 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
21354
21355         * Makefile.in (USER_H): Remove va-foo.h.
21356
21357         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
21358         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
21359         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
21360         va-spur.h,va-v850.h}: Remove.
21361
21362 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
21363
21364         * sparc/sparc.md (eligible_for_return_delay): New attribute.
21365         (in_return_delay): Use it instead of match_insn.
21366
21367 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21368
21369         * config/alpha/va_list.h (va-alpha.h): Do not include.
21370         (__gnuc_va_list): Typedef as in varargs.h.
21371
21372 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
21373
21374         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
21375         DECL_LIVE_RANGE_RTL.
21376
21377 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
21378
21379         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
21380         not NOTE_BLOCK_NUMBER.
21381         (expand_eh_region_end): Likewise.
21382         (find_exception_handler_labels): Likewise.
21383         (scan_region): Likewise.
21384         (exception_optimize): Likewise.
21385         (update_rethrow_references): Likewise.
21386         (set_insn_eh_region): Likewise.
21387         * final.c (final_scan_insn): Likewise.
21388         * flow.c (make_edges): Likewise.
21389         * integrate.c (expand_inline_function): Likewise.
21390         * print-rtl.c (print_rtx): Likewise.
21391
21392 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
21393
21394         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
21395         terms of builtin functions and types.
21396
21397         * mips.c (mips_build_va_list): New.
21398         (mips_va_start, mips_va_arg): New.
21399         * mips.h (BUILD_VA_LIST_TYPE): New.
21400         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
21401
21402         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
21403         (sh_build_va_list, sh_va_start, sh_va_arg): New.
21404         * sh.h (BUILD_VA_LIST_TYPE): New.
21405         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
21406
21407 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
21408
21409         * recog.h (struct recog_data): Make dup_num, operand_address_p,
21410         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
21411         (struct insn_data): Likewise with n_operands, n_dups,
21412         n_alternatives, output_format.
21413         * regclass.c (scan_one_insn): Cast n_operands to int before
21414         arithmetic inside comparison.
21415
21416 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
21417
21418         * toplev.c (compile_function): Unconditionally emit nop.
21419
21420 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21421
21422         * haifa-sched.c (actual_hazard): Move declaration of variable
21423         `this_cost' into the scope where it is used.
21424
21425 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21426
21427         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
21428         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
21429         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
21430
21431         * genrecog.c (make_insn_sequence): Call memset, not bzero.
21432
21433         * jump.c (find_insert_position): Don't declare or define unless
21434         !HAVE_conditional_arithmetic.
21435         (returnjump_p_1, delete_prior_computation): Add static prototypes.
21436
21437         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
21438
21439         * recog.c (offsettable_address_p): Prototype function pointer.
21440         (preprocess_constraints): Call memset, not bzero.
21441
21442         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
21443         (gcc_obstack_init): Don't declare.
21444         (fix_sizetype): Add static prototype.
21445         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
21446         (tree_cons): Call memset, not bzero.
21447
21448         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
21449         definition in macro ASM_WEAKEN_LABEL.
21450         (mark_const_hash_entry): Add static prototype.
21451
21452 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21453
21454         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
21455
21456         * unroll.c (find_common_reg_term, subtract_reg_term,
21457         loop_find_equiv_value): Add static prototypes.
21458         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
21459         (copy_loop_body): Remove unreachable break statement.
21460
21461         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
21462
21463         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
21464
21465 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21466
21467         Undo some changes from the gcc2 merge:
21468         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
21469         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
21470         pointers.
21471
21472         Undo this change:
21473         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
21474         * emit-rtl.c (gen_lowpart_common): Disable optimization of
21475         initialized float-int union if the value is a NaN.
21476
21477 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21478
21479         * gthr-win32.h: New file.
21480
21481         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
21482         shared as a valid attribute.
21483         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
21484         * extend.texi: Document `shared' variable attribute.
21485
21486 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
21487
21488         * configure.in: Handle --enable-threads on FreeBSD.
21489         * configure: Rebuit.
21490
21491 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
21492
21493         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
21494         thread support.
21495         * configure: Rebuilt.
21496
21497 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
21498                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
21499                           Rosimildo DaSilva <rdasilva@connecttel.com>
21500
21501         * configure.in (m68k-*-rtemscoff*): Added.
21502         * configure.in (mips64orion-*-rtems*): Converted to ELF.
21503         * configure.in (sparc-*-rtemsaout*): Added as alias for old
21504         sparc-rtems configuration.
21505         * configure.in (sparc-*-rtemself*): Added.
21506         * configure.in (sparc-*-rtems*): Now ELF not a.out.
21507         * config/i386/rtems.h: Added comment.
21508         * config/sparc/rtemself.h: New file.
21509
21510         * configure.in (m68k-rtemself): Added.
21511         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
21512         and DWARF_DEBUGGING_INFO.
21513         * config/m68k/crti.s: New file.
21514         * config/m68k/crtn.s: New file.
21515         * config/m68k/t-crtstuff: New file.
21516         * config/m68k/rtemself.h: New file.
21517
21518         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
21519         global ctor/dtor and C++ exception handling.
21520         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
21521         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
21522         ENDFILE_SPEC.
21523         * config/i386/t-rtems-i386: New File.
21524
21525 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
21526
21527         * stmt.c (expand_end_case): Return right away if the case stack is
21528         empty.
21529
21530 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
21531
21532         * Makefile.in (version.c): Remove rule incorrectly brought in from
21533         the gcc2 merge.
21534
21535 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
21536
21537         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
21538         * msdos/top.sed:  Take into account a prepended $(SHELL) to
21539         move-if-change.
21540         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
21541
21542         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
21543
21544 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21545
21546         * regmove.c (fixup_match_1): Don't change an unchanging register.
21547         (stable_but_for_p): Renamed to:
21548         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
21549         Changed all callers.
21550
21551 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
21552
21553         * loop.c (strength_reduce): Don't call reg_used_between_p if the
21554         insn from BL2 is after the insn from BL.
21555
21556 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
21557
21558         * recog.h (INSN_OUTPUT_FORMAT_*): New.
21559         (struct insn_data): Merge `template' and `outfun' into `output'.
21560         Add `output_format'.
21561         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
21562         (struct data): Remove `outfun'; add `output_format'.
21563         (name_for_index): Remove declaration.
21564         (output_insn_data): Handle output formats.
21565         (process_template): Emit the bare array for @.
21566         (gen_expand, gen_split): Set output_format to NONE.
21567         * output.h (get_insn_template): Declare.
21568         * final.c (get_insn_template): New.
21569         (final_scan_insn): Use it.
21570         * toplev.c (compile_file): Likewise.
21571
21572         * c4x/c4x.c (c4x_process_after_reload): Likewise.
21573         * i860/i860.c (output_delayed_branch): Likewise.
21574         (output_delay_insn): Likewise.
21575
21576 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21577
21578         * rtl.c (obstack_alloc_rtx): Removed.
21579
21580 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
21581
21582         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
21583
21584 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
21585
21586         * i386.c (call_insn_operand): Reject const_int.
21587         (expander_call_insn_operand): Use call_insn_operand.
21588
21589 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21590
21591         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
21592
21593 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
21594
21595         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
21596         Use DImode operation.
21597
21598 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
21599
21600         * gcc.c: Include sys/resource.h.
21601         (report_times): New flag.
21602         (execute):  If report_times is set, calculate and report the
21603         CPU time consumed by each subprocess.
21604
21605         (rus, prus): New globals.
21606         (option_map): Add --time.
21607         (display_help): Document -time.
21608         (process_command): Set report_times if -time is given.
21609         Turn off -pipe if -time is given.
21610
21611         * invoke.texi: Document new option -time.
21612
21613         * configure.in: Check for getrusage.  Check if we have to
21614         prototype getrusage.
21615         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
21616         * configure: Regenerate.
21617         * config.in: Regenerate.
21618
21619 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
21620
21621         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
21622         fields.
21623
21624 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
21625
21626         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
21627         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
21628         (nan): Return _thenan_sf or _thenan_df as appropriate.
21629         (L_thenan_sf): Define _thenan_sf.
21630         (L_thenan_df): Define _thenan_df.
21631
21632         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
21633         (DPBIT_FUNCS): Add _thenan_df.
21634
21635 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
21636
21637         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
21638         TYPE_SIZE_UNIT.
21639
21640 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21641
21642         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
21643
21644         * gcc.h: New file.
21645         (lang_specific_driver): Don't take a function pointer parameter.
21646         All callers changed.
21647
21648         * gcc.c: Include gcc.h.
21649         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
21650         lang_specific_extra_outfiles, fatal): Don't declare.
21651         (multilib_defaults_raw): Constify.
21652         (read_specs): Call memset, rather than bzero.
21653         (main): Call return, not exit.
21654         (lookup_compiler): Call memcpy, not bcopy.
21655         (fatal): Make extern.
21656
21657         * cppspec.c: Include gcc.h.
21658         (lang_specific_driver): Initialize variable `quote'.  Constify a
21659         char*.  All calls to the function pointer parameter now
21660         explicitly call `fatal'.
21661
21662         * gccspec.c (lang_specific_driver): Include gcc.h.
21663
21664 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
21665
21666         * arm.c (note_invalid_constants): Use recog_data.operand_type
21667         for recog_op_type.
21668
21669 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21670
21671         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
21672         Declare.
21673
21674         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
21675         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
21676         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
21677         reload_secondary_in_reload, reload_secondary_out_reload,
21678         reload_secondary_in_icode, reload_secondary_out_icode,
21679         reload_reg_rtx, reload_when_needed): Delete declarations.
21680         (struct reload): New structure.
21681         (rld): Declare new array.
21682         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
21683         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
21684         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
21685         reload_secondary_in_reload, reload_secondary_out_reload,
21686         reload_secondary_in_icode, reload_secondary_out_icode,
21687         reload_reg_rtx, reload_when_needed): Delete definitions.
21688         (rld): New array.
21689         (whole file): Replace uses of the deleted arrays with uses of rld.
21690         * reload1.c (whole file): Replace uses of the deleted arrays with
21691         uses of rld.
21692         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
21693         explicit loops, not with bcopy.
21694
21695 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
21696
21697         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
21698         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
21699         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
21700         insn_name): Delete and consolidate into new structures.
21701         (insn_operand_predicate_fn): New.
21702         (insn_output_fn): New.
21703         (insn_gen_fn): New.
21704         (struct insn_operand_data): New.
21705         (struct insn_data): New.
21706         (insn_data): New.
21707         (OUT_FCN): Update for insn_data change.
21708         * builtins.c (expand_builtin_strlen): Likewise.
21709         (expand_builtin_memcmp): Likewise.
21710         * combine.c (make_extraction, simplify_comparison): Likewise.
21711         * cse.c (canon_reg, cse_insn): Likewise.
21712         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
21713         * expmed.c (store_bit_field, extract_bit_field): Likewise.
21714         (emit_store_flag): Likewise.
21715         * expr.c (convert_move, emit_block_move): Likewise.
21716         (clear_storage, emit_push_insn, expand_increment): Likewise.
21717         (do_store_flag): Likewise.
21718         * expr.h (GEN_FCN): Likewise.
21719         (insn_gen_function): Die.
21720         * final.c (final_scan_insn): Update for insn_data change.
21721         (output_asm_name): Likewise.
21722         * function.c (fixup_var_refs_1): Likewise.
21723         * loop.c (check_dbra_loop): Likewise.
21724         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
21725         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
21726         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
21727         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
21728         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
21729         * regmove.c (gen_add3_insn): Likewise.
21730         * reload.c (push_secondary_reload, combine_reloads): Likewise.
21731         (find_reloads, find_reloads_address_1): Likewise.
21732         (debug_reload_to_stream): Likewise.
21733         * reload1.c (emit_reload_insns, gen_reload): Likewise.
21734         * stmt.c (expand_end_case): Likewise.
21735         * toplev.c (compile_file): Likewise.
21736
21737         * c4x/c4x.c (c4x_process_after_reload): Likewise.
21738         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
21739
21740         * print-rtl.c (insn_name_ptr): Remove declaration.
21741         (get_insn_name): Declare.
21742         (print_rtx): Use it.
21743         * genoutput.c (insn_name_ptr): Remove.
21744         (next_operand_number): New.
21745         (struct operand_data): New.
21746         (null_operand, odata, odata_end): New.
21747         (struct data): Use struct operand_data.
21748         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
21749         (get_insn_name): Renamed from name_for_index.
21750         (output_prologue): Define NO_MD_PROTOTYPES.
21751         (output_predicate_decls): Break out from output_epilogue.
21752         Iterate over the operands list.
21753         (output_operand_data): Break out from output_epilogue.  Emit
21754         just the operands list.
21755         (output_insn_data): Break out from output_epilogue.  Emit just
21756         the insn data.
21757         (output_epilogue): Remove.
21758         (output_get_insn_name): New.
21759         (constraints, op_n_alternatives, predicates, address_p): Die.
21760         (modes, strict_low, seen): Die.
21761         (scan_operands): Take new param `d' instead of writing to
21762         seven global variables.
21763         (compare_operands): New.
21764         (place_operands): New.
21765         (validate_insn_alternatives): Update for struct data change.
21766         (gen_insn): Don't zero or copy 7 global arrays.  Update for
21767         scan_operands; call place_operands.
21768         (gen_peephole, gen_expand, gen_split): Likewise.
21769         (main): Update for new output routines.
21770
21771         * genattr.c (insn_name_ptr): Remove.
21772         (get_insn_name): New function.
21773         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
21774         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
21775         * genrecog.c: Likewise.
21776
21777         * alpha.md (adddi3): Make `pattern' array static.
21778
21779 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21780
21781         * config/c4x/c4x.h (c4x_rpts_cycles_string,
21782         c4x_cpu_version_string): Constify char *.
21783         * config/c4x/c4x.c (c4x_rpts_cycles_string,
21784         c4x_cpu_version_string): Likewise.
21785
21786 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
21787
21788         * tree.c (save_tree_status): Revert 10 Sep change.
21789         (restore_tree_status): Likewise.  Call obstack_free with NULL
21790         before freeing the obstack proper.
21791
21792 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
21793
21794         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
21795
21796         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
21797         surrounding context.
21798
21799 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
21800
21801         * tree.c (type_hash_canon): Put all types in the hash-table, when
21802         GC'ing.
21803
21804 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
21805
21806         * recog.h (struct recog_data, recog_data): New.
21807         (recog_foo variables): Kill.
21808         * recog.c (recog_operand, recog_operand_loc): Kill.
21809         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
21810         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
21811         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
21812         (recog_data): Define.
21813         (extract_insn): Update all recog_foo references to use recog_data.
21814         (preprocess_constraints, constrain_operands): Likewise.
21815         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
21816         * genattrtab.c (main): Likewise.
21817         * genextract.c (main): Likewise.
21818         * genoutput.c: Likewise.
21819         * genrecog.c (write_subroutine, main): Likewise.
21820         * local-alloc.c (block_alloc): Likewise.
21821         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
21822         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
21823         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
21824         * reload.c (find_reloads, find_reloads_toplev): Likewise.
21825         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
21826         (reload_cse_simplify_operands): Likewise.
21827
21828         * arc/arc.c (arc_final_prescan_insn): Likewise.
21829         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
21830         * h8300/h8300.c (notice_update_cc): Likewise.
21831         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
21832         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
21833         * mn10200/mn10200.c (notice_update_cc): Likewise.
21834         * mn10300/mn10300.c (notice_update_cc): Likewise.
21835         * romp/romp.c (update_cc): Likewise.
21836         * sparc/sparc.c (check_pic): Likewise.
21837         * v850/v850.c (notice_update_cc): Likewise.
21838
21839         * genemit.c (main): Don't declare recog_operand.
21840
21841 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
21842
21843         * ggc.h (rtvec_def): Forward declare.
21844         (tree_node): Likewise.
21845         (ggc_root): Define.
21846         (roots): Declare.
21847         (ggc_set_mark_rtx): Add prototype.
21848         (ggc_set_mark_rtvec): Likewise.
21849         (ggc_set_mark_tree): Likewise.
21850         * ggc-simple.c (ggc_root): Don't define.
21851         (roots): Don't declare.
21852         (ggc_mark_rtx): Remove.
21853         (ggc_mark_rtvec): Likewise.
21854         (ggc_mark_tree): Likewise.
21855         (ggc_mark_varray): Likewise.
21856         (ggc_mark_tree_hash_table_entry): Likewise.
21857         (ggc_mark_tree_hash_table): Likewise.
21858         (ggc_set_mart_rtx): New function.
21859         (ggc_set_mark_rtvec): Likewise.
21860         (ggc_set_mark_tree): Likewise.
21861         (ggc_add_root): Remove.
21862         (ggc_add_rtx_root): Likewise.
21863         (ggc_remove_tree_root): Likewise.
21864         (ggc_add_string_root): Likewise.
21865         (ggc_add_tree_varray_root): Likewise.
21866         (ggc_add_tree_hash_table_root): Likewise.
21867         (ggc_del_root): Likewise.
21868         (ggc_mark_rtx_ptr): Likewise.
21869         (ggc_mark_tree_ptr): Likewise.
21870         (ggc_mark_string_ptr): Likewise.
21871         (ggc_mark_tree_varray_ptr): Likewise.
21872         (ggc_mark_tree_hash_table_ptr): Likewise.
21873         * ggc-common.c: New file.
21874         * Makefile.in (OBJS): Add ggc-common.o.
21875         (ggc-common.o): List dependencies.
21876
21877 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
21878
21879         * cppalloc.c (xstrdup): Use memcpy.
21880         * cpperror.c (cpp_print_containing_files): Don't use
21881         cpp_notice.
21882         * cpplib.c (conditional_skip): Set temp->lineno.
21883         (do_endif): Make error message less obscure.
21884         (if_directive_name): New function.
21885         (cpp_get_token [case EOF]): Unwind the if stack and generate
21886         error messages for each unterminated conditional in this file.
21887         (parse_string):  Do not behave differently if -traditional.
21888
21889 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
21890
21891         * builtins.c (expand_builtin_va_arg): Cope with an array-type
21892         va_list decomposing to pointer-type.
21893         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
21894         (rs6000_va_arg): Likewise.
21895
21896 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
21897
21898         * except.c (start_dynamic_handler): Compute size using
21899         STACK_SAVEAREA_MODE.
21900
21901 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21902
21903         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
21904         include directory headers.  Don't define strrchr.  Don't provide
21905         my_* replacement functions.  Prefer PTR over `pointer_type'.
21906         Don't prototype system functions.  Don't redefine getopt.
21907
21908         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
21909         safe_read, safe_write, save_pointers, restore_pointers,
21910         is_id_char, in_system_include_dir, directory_specified_p,
21911         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
21912         find_corresponding_lparen, referenced_file_is_newer,
21913         save_def_or_dec, munge_compile_params, gen_aux_info_file,
21914         process_aux_info_file, identify_lineno, check_source,
21915         seek_to_line, forward_to_next_token_char, output_bytes,
21916         output_string, output_up_to, other_variable_style_function,
21917         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
21918         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
21919         find_static_definition, connect_defs_and_decs, add_local_decl,
21920         add_global_decls, needs_to_be_converted, visit_each_hash_node,
21921         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
21922         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
21923         scan_for_missed_items, edit_file, string_list_cons): Add static
21924         prototypes.
21925         (standard_exec_prefix, target_machine, target_version,
21926         default_syscalls_dir, string_list, string_list_cons, find_file,
21927         do_cleaning): Constify a char*.
21928         (safe_read, safe_write): Use PTR, not a char*.
21929         (is_id_char): Take an int, not a char.
21930         (main): Add prototype.  Call return, not exit.
21931
21932 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
21933
21934         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
21935         when comparing types.
21936
21937 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
21938
21939         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
21940         (strength_reduce): Release the varrays from the no-bivs early exit.
21941
21942         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
21943         the loop over the registers.
21944
21945         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
21946         for a new obstack.
21947         (restore_tree_status): Check that instead when freeing the obstack.
21948
21949 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
21950
21951         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
21952         as pointers.
21953
21954 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21955
21956         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
21957         operand size modifiers.
21958
21959 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21960
21961         * c-common.c (c_common_nodes_and_builtins): Don't build
21962         va_list_type_node.
21963         * c-common.h (enum c_tree_index and related accesor macros): Remove
21964         everything now declared in tree.h.
21965         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
21966         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
21967         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
21968         (error_mark_node, void_type_node, char_type_node, integer_type_node,
21969         unsigned_type_node, ptr_type_node, va_list_type_node,
21970         integer_zero_node, null_pointer_node, integer_one_node): Delete.
21971         (init_decl_processing): Call build_common_tree_nodes and
21972         build_common_tree_nodes_2 instead of building their nodes here.
21973         Don't add roots for these nodes.
21974         * stor-layout.c (size_zero_node, size_one_node): Delete.
21975         (set_sizetype): Make a new node for bitsizetype each time.
21976         * tree.c (global_trees): New variable.
21977         (init_obstacks): Add a gc root for it.
21978         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
21979         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
21980         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
21981         (build_common_tree_nodes): New function.
21982         (fix_sizetype): New function.
21983         (build_common_tree_nodes_2): New function.
21984         * tree.h (enum tree_index): New.
21985         (global_trees): Declare.
21986         Add accessor macros for all nodes now moved to global_trees.
21987         Delete their declarations.
21988
21989 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
21990
21991         * c-decl.c (finish_function): When processing a nested function,
21992         push and pop GC context around rest_of_compilation.
21993
21994 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
21995
21996         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
21997         Default ix86_arch to PROCESSOR_I386.
21998         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
21999         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
22000         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
22001         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
22002         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
22003         (EXTRA_SPECS): Remove deleted specs.
22004
22005 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
22006
22007         * function.c (assign_stack_local_1): Allocate from
22008         function->x_frame_offset, not frame_offset.
22009
22010 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
22011
22012         * ggc.h (lang_cleanup_tree): Remove.
22013         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
22014         * ggc-callbacks.c (lang_cleanup_tree): Remove.
22015
22016         * c-decl.c (finish_struct): Use ggc_alloc to allocate
22017         TYPE_LANG_SPECIFIC when garbage collecting.
22018         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
22019         (lang_cleanup_tree): Remove.
22020
22021 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
22022
22023         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
22024         * crtstuff.c: Not here.
22025         * dwarf2out.c: Or here.
22026         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
22027         info.
22028
22029 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
22030
22031         * function.h (free_after_compilation): Remove decl parameter.
22032         (free_varasm_status0: Likewise.
22033         (free_emit_status): Likewise.
22034         (free_stmt_status): Likewise.
22035         (free_after_compilation): Likewise.
22036         (init_lang_status): New variable.
22037         (free_lang_status): Likewise.
22038         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
22039         * function.c (init_lang_status): New variable.
22040         (free_lang_status): Likewise.
22041         (push_function_context_to): Don't set function::decl here.
22042         (free_after_copmilation): Make decl parameter implicit.  Call
22043         free_lang_status if defined.
22044         (prepare_function_start): Call init_lang_status if defined.
22045         (init_function_start): Set function::decl here.
22046         * profile.c (output_func_start_profiler): Don't call pushdecl
22047         until we've actually started the function.
22048         * stmt.c (free_stmt_status): Make decl parameter implicit.
22049         * toplev.c (rest_of_compilation): Don't pass decl to
22050         free_after_compilation.
22051         * varasm.c (free_varasm_status): Likewise.
22052
22053 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22054
22055         * except.c (call_get_eh_context): Add root when allocating static
22056         tree variable.
22057
22058 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
22059
22060         * arm.c: Include "ggc.h".
22061         (arm_add_gc_roots): New function.
22062         (arm_override_options): Call it.
22063         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
22064
22065         * arm.md (define_asm_attributes): Add a pool_range attribute.
22066
22067 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
22068
22069         * extend.texi (Volatiles): New node.
22070
22071 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
22072
22073         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
22074         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
22075         (struct ggc_any): Replace `mark' with `magic_mark'.
22076         (ggc_alloc_string): Use memcpy, not bcopy.
22077         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
22078         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
22079         (ggc_free_any): New.
22080         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
22081         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
22082         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
22083         Use IS_MARKED. Use ggc_free_any.
22084
22085 1999-09-09  Scott Bambrough <scottb@netwinder.org>
22086
22087         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
22088
22089 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
22090
22091         * toplev.c (main): Always init_ggc.
22092
22093 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
22094
22095         * except.c (find_all_handler_type_matches): Free the list if
22096         we found no matches.
22097
22098         * combine.c (SUBST): Break out to a real function do_SUBST.
22099         (SUBST_INT): Likewise.
22100         * gcse.c (free_pre_mem): Free `temp_bitmap'.
22101         (pre_insert): Free `inserted'.
22102         * loop.c (basic_induction_var): Always set `location'.
22103
22104         * function.c (expand_function_end): Add initial_trampoline as a root.
22105         * rtl.h (init_varasm_once): Declare.
22106         * toplev.c (compile_file): Call it.
22107         * ggc-simple.c (ggc_mark_string_ptr): New.
22108         (ggc_add_string_root): New.
22109         (ggc_collect): Disable collection avoidance temporarily.
22110         * ggc.h (ggc_add_string_root): Declare.
22111         * except.c (create_rethrow_ref): Use ggc_alloc_string.
22112         * optabs.c (init_libfuncs): Likewise.
22113         * varasm.c (named_section): Use ggc_alloc_string.
22114         (make_function_rtl): Likewise.
22115         (make_decl_rtl): Likewise.
22116         (assemble_static_space): Likewise.
22117         (assemble_trampoline_template): Likewise.
22118         (output_constant_def): Likewise.
22119         (force_const_mem): Likewise.
22120         (mark_const_hash_entry): New.
22121         (mark_pool_sym_hash_table): New.
22122         (mark_varasm_state): Use it.
22123         (init_varasm_once): New.
22124
22125         * expr.h (init_one_libfunc): Declare.
22126         * optabs.c (init_one_libfunc): New.
22127         (init_optabs): Use it.
22128         * config/gofast.h: Likewise.
22129         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
22130         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
22131
22132 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
22133
22134         * Makefile.in (cppexp.o): Depend on cpphash.h.
22135         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
22136         Include cpphash.h.
22137         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
22138         * cpplib.c (do_define): Generalise to handle poisoned definitions,
22139         redefining poisoned identifiers, etc.
22140         (do_undef): Don't allow poisoned identifiers to be undefined.
22141         (do_pragma): Add #pragma poison.
22142         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
22143
22144         * cccp.c: Add T_POISON node type.
22145         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
22146         poisoned xxx.
22147         (do_define): Generalise to handle poisoned definitions,
22148         redefining poisoned identifiers, etc.
22149         (do_undef): Don't allow poisoned identifiers to be undefined.
22150         (do_pragma): Add #pragma poison.
22151         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
22152
22153         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
22154         * c-pragma.h: Add ps_poison state.  We now always have generic
22155         pragmas.
22156
22157 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
22158
22159         * ggc.h (ggc_alloc): New function.
22160         (ggc_mark): Likewise.
22161         * ggc-simple.c (ggc_any): New structure.
22162         (ggc_status): Add anys.
22163         (n_anys_collected): New variable.
22164         (ggc_alloc): Define.
22165         (ggc_mark): Likewise.
22166         (ggc_collect): Collect the anys.
22167
22168 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22169
22170         * c-decl.c (mark_binding_level): Make static to match prototype.
22171
22172 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
22173
22174         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
22175
22176 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
22177
22178         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
22179         will use into account.  Expand the max width to 5.
22180         * rtl.c: Likewise.
22181
22182 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
22183
22184         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
22185         for the rtx length.
22186
22187 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
22188
22189         * alpha.md (call value patterns): Remove the result predicates.
22190
22191 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
22192
22193         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
22194         last change.
22195
22196 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22197
22198         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
22199         changed from extern char *, to extern PTR.  Also fix typo in
22200         NEED_DECLARATION_REALLOC test.
22201
22202         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
22203
22204 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22205
22206         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
22207         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
22208         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
22209         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
22210
22211         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
22212
22213         * cccp.c (pcfinclude): Likewise.
22214
22215         * global.c (allocno_compare): Likewise.
22216
22217         * haifa-sched.c (rank_for_schedule): Likewise.
22218
22219         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
22220
22221         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
22222
22223         * stupid.c (stupid_reg_compare): Likewise.
22224
22225         * tree.c (_obstack_allocated_p): Likewise.
22226
22227         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
22228
22229 1999-09-08  Bruce Korb  autogen@linuxbox.com
22230
22231         * Makefile.in: Give the hapless gperf user a hint about
22232         why "gperf -F" fails.
22233
22234 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
22235
22236         * lists.c: Include ggc.h.
22237         (zap_lists): New.
22238         (init_EXPR_INSN_LIST_cache): Install it.
22239
22240         * ggc-simple.c (init_ggc): Absorb the old init.
22241         (ggc_push_context): Use xcalloc.
22242         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
22243         (ggc_collect): Add [rvts] tags to the collection stats.
22244
22245 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
22246
22247         * cccp.c (main): Fix handling of -include and -imacros options.
22248
22249 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
22250
22251         * cpplib.c (cpp_push_buffer): Fix order of arguments.
22252
22253 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
22254
22255         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
22256         genrtl.c.
22257
22258 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
22259
22260         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
22261         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
22262         and SET_DEST. Update comment.
22263
22264 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22265
22266         * config/c4x/c4x.c: Include ggc.h.
22267         (c4x_add_gc_roots): New function.
22268         (c4x_override_options): Call c4x_add_gc_roots.
22269
22270 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
22271
22272         * defaults.h (TARGET_ESC): Move ...
22273         * system.h: ... here, where Linas had it in the first place.  Silly me.
22274
22275 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
22276
22277         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
22278         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
22279         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
22280         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
22281         * defaults.h (TARGET_ESC): Add default.
22282
22283 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
22284
22285         * configure.in: add i370-*-openedition, i370-*-mvs and
22286         i370-*-linux targets
22287
22288 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
22289
22290         * dsp16xxx.c: Include ggc.h
22291         (override_options): Mark GC roots.
22292         * mn10200.c: Include ggc.h.
22293         (asm_file_start): Mark GC roots.
22294         * tahoe.c: Include ggc.h.
22295         (extensible_operand): Mark GC roots.
22296
22297 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
22298
22299         * README: Add section discussing status of ELF ABI.
22300         * i370.c: Fix misc spelling mistakes.
22301         (i370_label_scan): Updated notes, exception handling.
22302         (i370_function_prolog): Simplify ELF stack handling.
22303         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
22304         (STACK_GROWS_DOWNWARD): ELF stack grows down.
22305         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
22306         * i370.md: (movdi): Add notes.
22307         (floatsidf2): Use stack not rtca for scratch float area.
22308         (iorsi3): Correct operand constraints.
22309         * x-oe: Restore TAROUTOPTS which are used by pax.
22310
22311 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
22312
22313         * rs6000.c: Include ggc.h.
22314         (rs6000_add_gc_roots): New function.
22315         (override_options): Call it.
22316
22317 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
22318
22319         * alpha.h (alpha_compare): New.
22320         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
22321         * alpha.c: Likewise for the definitions.
22322         (alpha_emit_conditional_branch): Update for alpha_compare.
22323         (alpha_emit_conditional_move): Likewise.
22324         * alpha.md (cmpdf, cmpdi): Likewise.
22325         (setcc patterns): Likewise.  Zero alpha_compare after use.
22326         (sne): Optimize (x != 0) into (0U < x).
22327
22328 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
22329
22330         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
22331         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
22332         (INIT_EXPANDERS): Remove.
22333         * alpha.c: Include ggc.h.
22334         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
22335         (alpha_init_machine_status, alpha_mark_machine_status): New.
22336         (override_options): Install them.
22337         (struct machine_function): Moved to alpha.h.
22338         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
22339         (alpha_init_expanders): Remove.
22340         (alpha_return_addr): Adjust to use current_function->machine.
22341         (alpha_ra_ever_killed): Likewise.
22342         (alpha_expand_epilogue): Likewise.
22343         * alpha.md (eh_epilogue): Likewise.
22344
22345 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
22346                           Melissa O'Neill  <oneill@cs.sfu.ca>
22347                           Geoffrey Keating  <geoffk@cygnus.com>
22348
22349         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
22350         call-used registers (call-saved registers must still be contiguous
22351         and end with r31, of course).
22352
22353 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
22354
22355         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
22356         (self_promoting_type_p): Delete.
22357         (self_promoting_args_p): Move ...
22358         * c-common.c: ... here.
22359         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
22360         (simple_type_promotes_to): New.
22361         * builtins.c (lang_type_promotes_to): New.
22362         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
22363         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
22364         * c-common.h: ... here.
22365         (self_promoting_args_p, simple_type_promotes_to): Declare.
22366         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
22367         (grokdeclarator): Likewise.
22368         * tree.h (lang_type_promotes_to): Declare.
22369
22370 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
22371
22372         Add some machine-dependent GC roots.
22373         * sparc.c: Include ggc.h.
22374         (sparc_add_gc_roots): New function.
22375         (mark_ultrasparc_pipeline_state): Likewise.
22376         (override_options): Call sparc_add_gc_roots.
22377         * pa.c: Include ggc.h.
22378         (pa_add_gc_roots): New function.
22379         (mark_deferred_plabels): Likewise.
22380         (override_options): Call pa_add_gc_roots.
22381         * mips.c: Include ggc.h.
22382         (mips_add_gc_roots): New function.
22383         (override_options): Use it.
22384
22385 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22386
22387         * cpperror.c (cpp_file_line_for_message): Constify a char*.
22388
22389         * cppexp.c (parse_number, parse_charconst, cpp_lex,
22390         cpp_parse_expr): Add static prototypes.
22391         (parse_charconst): Don't cast away const-ness.
22392         (token): Constify a char*.
22393
22394         * cppfiles.c (file_name_list, include_hash, find_include_file,
22395         finclude, initialize_input_buffer): Constify a char*.
22396         (file_cleanup, find_position): Add static prototypes.
22397
22398         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
22399         collect_expansion): Add static prototypes.
22400         (cpp_install, create_definition, monthnames): Constify a char*.
22401
22402         * cpphash.h (cpp_install): Likewise.
22403
22404         * cppinit.c (known_suffixes, default_include,
22405         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
22406         (base_name, dump_special_to_buffer, initialize_dependency_output):
22407         Add static prototypes.
22408
22409         * cpplib.c (my_strerror): Constify a char*.
22410         (null_underflow, null_cleanup, skip_comment, copy_comment,
22411         copy_rest_of_line, handle_directive, pass_thru_directive,
22412         get_directive_token, read_line_number, cpp_print_file_and_line,
22413         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
22414         v_cpp_warning_with_line, detect_if_not_defined,
22415         consider_directive_while_skipping): Add static prototypes.
22416         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
22417         cpp_pedwarn_with_file_and_line): Constify a char*.
22418
22419         * cpplib.h (cpp_options, include_hash, progname, definition,
22420         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
22421         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
22422         find_include_file, deps_output, include_hash): Constify a char*.
22423
22424         * cppmain.c (progname): Constify.
22425         (main): Add prototype.  Use return, not exit.
22426
22427         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
22428         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
22429         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
22430         check_protection): Add static prototype.
22431         (xfree): Remove.
22432         (progname, recognized_macrom, recognized_extern): Constify a char*.
22433         (main): Add prototype.
22434
22435         * gen-protos.c (progname): Constify a char*.
22436
22437 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
22438
22439         * emit-rtl.c (free_emit_status): Take decl as a parameter.
22440         (init_emit_once): Add more GC roots.
22441         * except.c (mark_func_eh_entry): New function.
22442         (mark_eh_node): Mark false_label and rethrow_label.
22443         (init_eh): Add more GC roots.
22444         * function.c (free_after_compilation): Take decl as a paramter.
22445         Call free_stmt_status.
22446         (mark_function_state): Don't assume x_parm_reg_stack_loc is
22447         non-NULL.
22448         * function.h (free_after_compilation): Change prototype.
22449         (free_varasm_status): Likewise.
22450         (free_emit_status): Likewise.
22451         (free_stmt_status): New function.
22452         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
22453         Remove, replacing with ...
22454         (ggc_status): New structure.
22455         (ggc_chain): New variable.
22456         (init_gcc): Define.
22457         (ggc_push_context): New function.
22458         (ggc_pop_context): Likewise.
22459         (ggc_alloc_rtx): Adjust for use of ggc_chain.
22460         (ggc_alloc_rtvec): Likewise.
22461         (ggc_alloc_tree): Likewise.
22462         (ggc_alloc_string): Likewise.
22463         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
22464         (ggc_mark_tree): Give language-dependent code a chance to mark
22465         `x' nodes.
22466         (ggc_mark_tree_varray): Handle empty arrays.
22467         (ggc_collect): Adjust for use of ggc_chain.  Clear
22468         bytes_alloced_since_last_gc.
22469         * ggc.h (ggc_pop_context): New function.
22470         (ggc_push_context): Likewise.
22471         * print-tree.c (print_node): Don't print obstacks when GC'ing.
22472         * stmt.c (free_stmt_status): New function.
22473         (init_stmt_for_function): Clear last_expr_value.
22474         * toplev.c (rest_of_compilation): Always call free_after_compilation.
22475         Conditionalize call to ggc_collect.
22476         (main): Call init_ggc.
22477         * tree.c (push_obstacks): Do the push, even when GC'ing.
22478         (push_obstacks_nochange): Likewise.
22479         (pop_obstacks): Liekwise.
22480         * varasm.c (free_varasm_status): Take decl as a parameter.
22481
22482 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22483
22484         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
22485         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
22486         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
22487         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
22488
22489 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
22490
22491         * pa/x-pa-mpeix: New file for the MPE port.
22492
22493         * pa/quadlib.asm: New file for long double support.
22494
22495         * configure.in: Add hppa1.0-*-mpeix for MPE port.
22496         * configure: Rebuilt.
22497
22498 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
22499
22500         * final.c (shorten_branches): Fix last change.
22501
22502 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
22503
22504         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
22505
22506 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
22507
22508         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
22509         details.
22510
22511 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22512
22513         * c-aux-info.c (concat): Don't define.
22514
22515         * cccp.c (my_strerror): Likewise.  All callers changed to use
22516         xstrerror instead.
22517         (do_include): Call xstrdup, not xmalloc/strcpy.
22518         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
22519         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
22520
22521         * collect2.c (my_strsignal): Likewise.  All callers changed to use
22522         strsignal instead.
22523         (locatelib): Call xstrdup, not xmalloc/strcpy.
22524
22525         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
22526
22527         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
22528
22529         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
22530
22531         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
22532
22533         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
22534
22535         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
22536
22537         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
22538         malloc/realloc.
22539         (find_all_handler_type_matches): Likewise.  Don't check return
22540         value.
22541         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
22542         xmalloc, not malloc.
22543         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
22544
22545         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
22546         (init_spec): Call xcalloc, not xmalloc/bzero.
22547         (set_spec): Call xstrdup, not save_string.
22548         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
22549         (find_a_file): Call xstrdup, not xmalloc/strcpy.
22550         (process_command): Call xstrdup, not save_string.
22551         (main): Call xcalloc, not xmalloc/bzero.
22552
22553         * gcov.c (xmalloc): Don't define.
22554         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
22555         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
22556         (output_data): Call xcalloc, not xmalloc/bzero.
22557
22558         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
22559
22560         * mips-tdump.c (xmalloc): Don't define.
22561         (print_symbol): Call xmalloc, not malloc.
22562         (read_tfile): Call xcalloc, not calloc.
22563
22564         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
22565         Don't define.  All callers of xfree/my_strsignal changed to use
22566         free/strsignal instead.
22567         (allocate_cluster): Call xcalloc, not calloc.
22568
22569         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
22570         Fix memory leak, free allocated memory.
22571
22572         * prefix.c (translate_name): Call xstrdup, not save_string.
22573         (update_path): Likewise.
22574
22575         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
22576
22577         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
22578         Don't define.  Callers of xfree/savestring2 changed to use
22579         free/concat instead.
22580
22581         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
22582         (init_elim_table): Likewise.
22583
22584         * resource.c (init_resource_info): Likewise.
22585
22586         * stupid.c (stupid_life_analysis): Likewise.
22587
22588         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
22589         (open_dump_file): Call concat, not xmalloc/strcpy/...
22590         (clean_dump_file): Likewise.
22591         (compile_file): Call xstrdup, not xmalloc/strcpy.
22592
22593 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
22594
22595         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
22596         * v850.c (v850_va_arg): New.
22597
22598 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22599
22600         * haifa-sched.c: Tidy comments.
22601
22602 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22603
22604         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
22605         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
22606         $(out_object_file)): Depend on ggc.h.
22607         * c-common.c: Include "ggc.h".
22608         (combine_strings): If doing GC, use ggc_alloc_string.
22609         * c-decl.c: Include "ggc.h".
22610         (ggc_p): Define with value 0.
22611         (mark_binding_level): New function.
22612         (init_decl_processing): Add GC roots.
22613         (mark_c_function_context): New function.
22614         (lang_mark_false_label_stack): New function.
22615         (lang_mark_tree): New function.
22616         (lang_cleanup_tree): New function.
22617         * c-lang.c: Include "ggc.h".
22618         (lang_init): Call c_parse_init.
22619         * c-lex.c: Include "ggc.h".
22620         (check_linenum): If doing GC, don't copy filenames to permanent
22621         obstack.
22622         * c-parse.in: Include "ggc.h".
22623         (c_parse_init): New function.
22624         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
22625         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
22626
22627         * except.c (mark_eh_state): Mark more state.
22628         * function.c (mark_function_state): Likewise.
22629         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
22630         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
22631         * toplev.c (mark_file_stack): New function.
22632         (compile_file): If doing GC, use ggc_alloc_string on input filename.
22633         (main): Add root for input_file_stack.
22634
22635         * i386.c: Include "ggc.h".
22636         (ix86_mark_machine_status): New function.
22637         (override_options): Set mark_machine_status.
22638
22639 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22640
22641         * tree.c (copy_node): Copy node contents also if doing GC.
22642
22643 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
22644
22645         * collect2.c (scan_libraries): Fix double-thinko :-).
22646
22647 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
22648
22649         * collect2.c (scan_libraries): Fix thinko.
22650
22651         * cse.c (delete_trivially_dead_insns): Do not skip the last
22652         insn if it is a real insn.
22653
22654 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
22655
22656         * Makefile.in (ggc-simple.o): Depend on hash.h.
22657         * ggc.h (ggc_add_tree_hash_table_root): Declare.
22658         (ggc_mark_tree_varray): Likewise.
22659         (ggc_mark_tree_hash_table): Likewise.
22660         * ggc-simple.c: Include hash.h.
22661         (ggc_mark_tree_hash_table_ptr): New function.
22662         (ggc_mark_tree_hash_table_entry): Likewise.
22663         (ggc_mark_tree_hash_table): Likewise.
22664         (ggc_add_tree_hash_table_root): Likewise.
22665         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
22666         rtx, when defining fields.
22667
22668 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
22669
22670         * profile.c (output_func_start_profiler): Remove apparently
22671         nonsensical call to start_sequence.
22672
22673 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
22674
22675         * clipper/clipper.c (clipper_va_start): Fix typos.
22676
22677         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
22678         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
22679         (spur_va_arg): New stub.
22680
22681         * configure.in: Comment out pyramid.
22682
22683 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
22684
22685         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
22686         don't conflict with the bits that win32, cygwin, and dgux
22687         defines.
22688
22689 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
22690                           Bernd Schmidt <bernds@cygnus.co.uk>
22691
22692         * integrate.c (function_cannot_inline_p): Do not inline
22693         functions with forced labels.
22694
22695 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
22696                           Bernd Schmidt <bernds@cygnus.co.uk>
22697                           Mark Mitchell  <mark@codesourcery.com>
22698
22699         * Makefile.in (ggc-simple.o): Depend on varray.h.
22700         (rtl.o): Depend on ggc.h.
22701         (genattrtab.o): Depend on ggc.h.
22702         (print-tree.o): Likewise.
22703         (fold-const.o): Likewise.
22704         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
22705         (make_insn_raw): Don't cache insns when GC'ing.
22706         (emit_insn_before): Likewise.
22707         (emit_insn_after): Likewise.
22708         (emit_insn): Likewise.
22709         (start_sequence): Use xmalloc to allocate the sequence_stack.
22710         (end_sequence): Add free to free it.
22711         (gen_sequence): Don't cache insns when GC'ing.
22712         (clear_emit_caches): Don't use sequence_element_free_list.
22713         (init_emit): Use xcalloc, not xmalloc+bzero.
22714         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
22715         * function.c (pop_function_context_from): Use free to free the
22716         fixup_var_refs_queue.
22717         (put_reg_into_stack): Allocate it with xmalloc.
22718         * genattrtab.c: Include ggc.h.
22719         (operate_exp): Don't use obstack_free when GC'ing.
22720         (simplify_cond): Likewise.
22721         (simplify_text_exp): Likewise.
22722         (optimize_attrs): Likewise.
22723         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
22724         GC'ing.
22725         (gencode): Generate a #include for ggc.h.
22726         * ggc-callbacks.c (ggc_p): Define it to zero.
22727         * ggc-none.c (ggc_p): Likewise.
22728         * ggc-simple.c: Include varray.h.
22729         (ggc_mark_tree_varray): New function.
22730         (ggc_add_tree_varray_root): Likewise.
22731         (ggc_mark_tree_varray_ptr): Likewise.
22732         * ggc.h (ggc_p): Declare.
22733         (varray_head_tag): Likewise.
22734         (ggc_add_tree_varray_root): Declare.
22735         * print-tree.c (print_node): Don't check for TREE_PERMANENT
22736         inconsistencies when GC'ing.
22737         * rtl.c: Include ggc.h.
22738         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
22739         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
22740         (rtx_free): Don't call obstack_free when GC'ing.
22741         * toplev.c (rest_of_compilation): Call ggc_collect after every
22742         pass, if GC'ing.
22743         * tree.c (push_obstacks): Do nothing, if GC'ing.
22744         (pop_obstacks_nochange): Likewise.
22745         (pop_obstacks): Likewise.
22746         (make_node): Use ggc_alloc_tree when GC'ing.
22747         (copy_node): Likewise.
22748         (get_identifier): Use ggc_alloc_string when GC'ing.
22749         (build_string): Likewise.
22750         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
22751         (tree_cons): Likewise.
22752         (build1): Likewise.
22753         (type_hash_canon): Don't call obstack_free when GC'ing.
22754
22755 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
22756
22757         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
22758         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
22759
22760 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
22761                           Bernd Schmidt <bernds@cygnus.co.uk>
22762                           Mark Mitchell  <mark@codesourcery.com>
22763
22764         * Makefile.in (stor-layout.o): Depend on ggc.h.
22765         (expr.o): Depend on ggc.h.
22766         (profile.o): Depend on ggc.h.
22767         (stor-layout.o): Depend on ggc.h.
22768         * emit-rtl.c (init_emit_once): Add gc roots.
22769         * expr.c: Include ggc.h.
22770         (emit_block_move): Add gc roots.
22771         (clear_storage): Likewise.
22772         * expr.h (init_stor_layout_once): New function.
22773         * profile.c: Include ggc.h.
22774         (init_arc_profiler): profiler_label is a root.
22775         * scan.c (make_sstring_space): Trust xrealloc to function
22776         correctly with first parameter NULL.
22777         * stor-layout.c: Include ggc.h.
22778         (set_sizetype): Add gc root.
22779         (init_stor_layout_once): New function.
22780         * toplev.c (compile_file): Call it.
22781
22782 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
22783                           Bernd Schmidt <bernds@cygnus.co.uk>
22784                           Mark Mitchell  <mark@codesourcery.com>
22785
22786         * Makefile.in (tree.o): Depend on ggc.h.
22787         (varasm.o): Likewise.
22788         (function.o): Likewise.
22789         (stmt.o): Likewise.
22790         (except.o): Likewise.
22791         (optabs.o): Likewise.
22792         (emit-rtl.o): Likewise.
22793         * emit-rtl.c: Include ggc.h.
22794         (sequence_element_free_list): Remove, and all references.
22795         (mark_sequence): New functions.
22796         (mark_emit_state): New function.
22797         * except.c: Include ggc.h.
22798         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
22799         (mark_tree_label_node): New functions.
22800         (mark_eh_state): New function.
22801         * function.c: Include ggc.h.
22802         (mark_temp_slot, mark_function_chain): New functions.
22803         (mark_function_state): New function.
22804         (init_function_once): New function.
22805         * function.h (init_function_once): New function.
22806         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
22807         * ggc.h (label_node): Declare.
22808         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
22809         (lang_mark_false_label_stack): New function.
22810         (mark_temp_slot): Remove declaration.
22811         (mark_function_chain): Likewise.
22812         (mark_eh_state): Adjust prototype.
22813         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
22814         Likewise.
22815         * optabs.c: Include ggc.h.
22816         (mark_optab): New function.
22817         (init_optabs): Add gc roots.
22818         * stmt.c: Include ggc.h.
22819         (mark_cond_nesting, mark_loop_nesting): New functions.
22820         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
22821         (mark_stmt_state): New function.
22822         * toplev.c (compile_file): Call init_function_once.
22823         * tree.c: Include ggc.h.
22824         (type_hash): Move declaration earlier in file.
22825         (TYPE_HASH_SIZE, type_hash_table): Likewise.
22826         (init_obstacks): Add gc roots.
22827         (mark_type_hash): New function.
22828         * varasm.c: Include ggc.h.
22829         (mark_pool_constant): New function.
22830         (mark_varasm_state): New function.
22831
22832 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22833
22834         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
22835
22836 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
22837
22838         * c-decl.c (struct language_function): Renamed from struct c_function.
22839         Delete elt NEXT.
22840         (c_function_chain): Delete.
22841         (push_c_function_context): New arg F.  Don't warn about nested
22842         functions here.  Fill LANGUAGE elt of F.  Delete code to update
22843         c_function_chain.  Don't call push_function_context.
22844         (pop_c_function_context): New arg F.  Restore from there instead of
22845         from c_function_chain.  Don't call pop_function_context.  Clear out
22846         LANGUAGE field of F when done.
22847         * c-lang.c: Include "function.h"
22848         (lang_init): Initialize save_lang_status and restore_lang_status.
22849         * c-parse.in (nested_function, nested_function_notype): Warn about
22850         nested functions.  Call push_function_context/pop_function_context
22851         instead of the _c_ variants.
22852         * c-tree.h (push_c_function_context, pop_c_function_context): Update
22853         prototype.
22854         * Makefile.in (c-lang.o): Update dependencies.
22855
22856         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
22857         regno_pointer_flag, regno_pointer_align.
22858         (gen_reg_rtx): Use xrealloc to enlarge them.
22859         (free_emit_status): New function.
22860         * function.c (mark_machine_status, mark_lang_status): New variables.
22861         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
22862         in some bits from assign_stack_local.  All callers changed to use new
22863         name.
22864         (assign_stack_local): Just call assign_stack_local_1.
22865         (free_after_compilation): New function.
22866         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
22867         (trampoline_address): Likewise.
22868         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
22869         (prepare_function_start): Explicitly clear some more variables.
22870         * function.h (struct function): New elt can_garbage_collect.
22871         (mark_machine_status, mark_lang_status): Declare variables.
22872         (free_after_compilation, free_emit_status, free_varasm_status,
22873         init_varasm_status): Declare functions.
22874         * toplev.c (rest_of_compilation): Call free_after_compilation when
22875         done with the current function.
22876         * varasm.c (free_varasm_status): New function.
22877
22878 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
22879
22880         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
22881         (EXPAND_BUILTIN_VA_ARG): Define.
22882         * sparc.c (sparc_va_start): New.
22883         (sparc_va_arg): New.
22884
22885 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22886
22887         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
22888
22889 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22890
22891         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
22892
22893 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
22894
22895         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
22896         (OBJS): Add $(GGC).
22897         (ggc-callbacks.o): New target.
22898         * ggc-callbacks.c: New file.
22899
22900 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22901
22902         * expr.h: Collapse individual optab and libfunc vars to arrays.
22903         (optab_index, libfunc_index): New enumerations.
22904         (optab_table, libfunc_table): New arrays.
22905         Add accessor macros for both.
22906
22907         * optabs.c (optab_table, libfunc_table): New.
22908         Delete declarations for individual optab and libfunc vars.
22909
22910 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
22911
22912         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
22913
22914 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
22915
22916         * Makefile.in (GGC, GGC_LIB): New.
22917         (HOST_RTL): Include ggc-none.o.
22918         (ggc-simple.o): New target.
22919         (ggc-none.o): Likewise.
22920         * tree.h (tree_common): Add gc_mark.
22921         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
22922         (struct rtvec_def): Add gc_mark.
22923         * emit-rtl.c (global_rtl): Update static initializers to contain
22924         enough initializers.
22925         * ggc.h, ggc-none.c, ggc-simple.c: New files.
22926         * toplev.c (gc_time): New variable.
22927         (all_time): New variable.
22928         (compile_file): Print gc time.
22929         (print_time): Calculate percentage of the whole.
22930
22931 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22932
22933         Change obstack memory management and varasm constant pool handling so
22934         that nested functions are treated like any other functions.
22935         * function.c (init_machine_status): New variable.
22936         (push_function_context_to): Set contains_functions for the outer
22937         function.  Don't call save_varasm_status.
22938         (pop_function_context_from): Don't call restore_varasm_status.  Don't
22939         set current_function_contains_functions.
22940         (prepare_function_start): Call init_varasm_status rather than
22941         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
22942         is non-null.
22943         * function.h (struct function) Add field varasm.  Delete fields
22944         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
22945         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
22946         (init_machine_status): Declare.
22947         (save_varasm_status, restore_varasm_status): Delete declarations.
22948         (save_tree_status, restore_tree_status): Delete last argument.
22949         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
22950         code.  All callers changed.
22951         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
22952         save_constants_in_decl_trees, restore_constants, save_constants,
22953         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
22954         functions.
22955         (inlining): New variable.
22956         (reg_map, label_map, insn_map, orig_asm_operands_vector,
22957         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
22958         variables.
22959         (save_for_inline_nocopy): Don't save constants.
22960         Don't set inl_emit field in current_function.
22961         (expand_inline_function): Use emit field, not inl_emit, of the inlined
22962         function.  Set new variable inlining before
22963         calling copy_rtx_and_substitute.
22964         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
22965         constant pool references if inlining is nonzero.
22966         Delete ADDRESS and (most of the) CONST cases.
22967         (output_inline_function): Save and restore current_function/
22968         current_function_decl.  Delete restore_constants code.  Don't call
22969         init_const_rtx_hash_table.
22970         * output.h (init_const_rtx_hash_table): Don't declare.
22971         * rtl.h (struct function): Declare.
22972         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
22973         * toplev.c (rest_of_compilation): Don't treat nested functions or
22974         functions containing them specially.  Delete all code to deal with
22975         save_for_inline_copying.
22976         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
22977         inline_obstacks): Delete variables.
22978         (save_tree_status): Lose arg CONTEXT.  All callers changed.
22979         Simply allocate a new function_maybepermanent_obstack for the new
22980         function, delete all the special cases.
22981         Don't save inline_obstacks.
22982         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
22983         Delete special handling for function_maybepermanent_obstack; simply
22984         free it if empty.
22985         Don't restore inline_obstacks.
22986         (permanent_allocation):  Delete code that frees inline_obstacks.
22987         (print_inline_obstack_statistics): Delete function.
22988         (dump_tree_statistics): Don't call it.
22989         * varasm.c (struct varasm_status): New.
22990         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
22991         last_pool, pool_offset, const_double_chain): Delete global
22992         variables, replace with accessor macros.
22993         (immed_double_const): Don't walk const_double_chain outside a
22994         function, but don't treat nested functions specially anymore.
22995         (immed_real_const_1): Likewise.
22996         (clear_const_double_mem): Don't treat nested functions specially.
22997         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
22998         (save_varasm_status, restore_varasm_status): Delete functions.
22999         (init_varasm_status): New function.
23000         (force_const_mem): Don't treat nested functions specially.
23001         (find_pool_constant): Accept new arg F, search for constants in
23002         that function's pool rather than the current one.  All callers
23003         changed.
23004         (get_pool_constant_for_function, get_pool_mode_for_function): New
23005         functions.
23006
23007         * i386.c (init_386_machine_status): New function, mostly from
23008         clear_386_stack_locals.
23009         (struct machine_functions): Rename element names to avoid name
23010         clashes.
23011         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
23012         macros, replacing global variables.
23013         (clear_386_stack_locals, save_386_machine_status,
23014         restore_386_machine_status): Delete functions.
23015         (override_options): Initialize init_machine_status.
23016         * i386.h (INIT_EXPANDERS): Delete macro.
23017         (save_386_machine_status, restore_386_machine_status,
23018         clear_386_stack_locals): Delete declarations.
23019
23020 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23021
23022         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
23023         (doloop_begin):  Simplify pattern and use emit_jump_insn.
23024         (doloop_end): Simplify pattern, switch operand order,
23025         and use emit_jump_insn.
23026
23027 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
23028
23029         * function.h (struct function): Add new element LANGUAGE.
23030         (save_lang_status): Declare new variable.
23031         (restore_lang_status): Likewise.
23032         * function.c (save_lang_status): Define.
23033         (restore_lang_status): Likewise.
23034         (push_function_context_to): Call language-specific save function.
23035         (pop_function_context_from): Call language-specific restore function.
23036
23037 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
23038
23039         * i386.md (movsf_1): Check REG_P before use of REGNO.
23040         (movdf_1): Likewise.
23041         (movxf_1): Likewise.
23042         (extendsfdf2): Likewise.
23043         (extendsfxf2): Likewise.
23044         (extenddfxf2): Likewise.
23045
23046 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23047
23048         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
23049         constants into memory.
23050         (c4x_shiftable_constant): New function.
23051         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
23052         (c4x_shiftable_constant): Declare.
23053         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
23054         ashlqi3_noclobber): Add new patterns and associated splitters.
23055
23056 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
23057
23058         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
23059         * dwarf2out.c (dwarf2out_frame_init): Likewise.
23060         * final.c (shorten_branches): Likewise.
23061         * global.c (global_alloc): Likewise.
23062         * haifa-sched.c (build_control_flow): Likewise.
23063         * stmt.c (check_for_full_enumeration_handling): Likewise.
23064         (estimate_case_costs): Likewise.
23065
23066 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
23067
23068         * rtl.h (RTL_CHECKC2): Fix typo in last change.
23069
23070 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
23071
23072         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
23073         (recompute_reg_usage): Likewise.
23074         * rtlanal.c (find_regno_fusage): Likewise.
23075
23076         * rtl.c (rtl_check_failed_code1): New function.
23077         (rtl_check_failed_code2): New.
23078         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
23079         (RTL_CHECKC1, RTL_CHECKC2): New.
23080         (XC*): New accessor macros.
23081         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
23082         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
23083         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
23084         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
23085         (TRAP_*, RANGE_INFO_*): Likewise.
23086
23087 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23088
23089         * Makefile.in (tlink.o): Don't depend on toplev.h.
23090
23091         * collect2.c (c_file, o_file, export_file, import_file, ldout,
23092         output_file, nm_file_name, ldd_file_name, strip_file_name,
23093         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
23094         add_prefix, prefix_from_env, prefix_from_string, do_wait,
23095         fork_execute, maybe_unlink, add_to_list,
23096         extract_init_priority, write_list, dump_list,
23097         dump_prefix_list, write_list_with_asm, write_c_file,
23098         write_c_file_stat, write_c_file_glob, scan_prog_file,
23099         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
23100         ignore_library, extract_string, notice, dump_file, target_machine,
23101         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
23102         read_file, print_load_command): Constify a char*.
23103         (fdopen, error, fatal, fatal_perror): Don't prototype.
23104         (my_strerror): Remove.  All callers use xstrerror instead.
23105         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
23106         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
23107         to xcalloc/strcpy/strcat/...  to one call to concat.
23108         (main, scan_prog_file, scan_libraries): Use an intermediate
23109         `const char **' to build an argv array.
23110         (mapfile, libselect, libcompare, locatelib): Add prototypes.
23111
23112         * collect2.h (collect_execute, collect_wait, dump_file,
23113         file_exists): Constify a char*.
23114         (ldout, c_file_name, temporary_obstack, permanent_obstack,
23115         temporary_firstobj, vflag, debug): Add extern declarations.
23116         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
23117
23118         * tlink.c: Don't include toplev.h.
23119         (vflag, debug, ldout, c_file_name, temporary_obstack,
23120         permanent_obstack, temporary_firstobj): Don't declare.
23121         (tlink_execute, frob_extension, symbol_hash_lookup,
23122         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
23123         recompile_files, read_repo_files, demangle_new_symbols,
23124         scan_linker_output): Constify a char*.
23125         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
23126         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
23127
23128 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
23129
23130         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
23131         (relative) rather than jsr (absolute) subroutine call insns.
23132         * config/m68k/m68k-coff.h: Ditto.
23133
23134 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
23135
23136         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
23137         now rework these too.
23138         (arm_reorg): If an insn can't reach the end of the current pool,
23139         ensure that we emit that pool before the insn.
23140
23141 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
23142
23143         * tlink.c (scan_linker_output): Skip the initial underscore in
23144         a mangled name if appropriate.
23145
23146 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23147
23148         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
23149         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
23150         error_with_ivar, gen_declarator, create_builtin_decl,
23151         my_build_string, generate_descriptor_table, generate_ivars_list,
23152         generate_dispatch_table, check_protocols, TAG_GETCLASS,
23153         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
23154         dump_base_name, lang_decode_option, build_encode_expr,
23155         start_class, finish_class, encode_pointer, really_start_method,
23156         gen_declaration, dump_interface, handle_class_ref, handle_impent):
23157         Constify.
23158         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
23159         Add static prototypes.
23160         (build_objc_string_decl, build_selector_reference_decl,
23161         encode_bitfield, build_class_reference_decl): Remove unused
23162         parameter, all callers changed.
23163         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
23164         (objc_printable_name): Likewise.  Change second parameter to type int.
23165         (init_objc): Use memcpy, not bcopy, to avoid casts.
23166
23167 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
23168
23169         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
23170         reg notes on a deleted insn.
23171         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
23172
23173 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
23174
23175         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
23176
23177 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23178
23179         * stmt.c (expand_asm_operands): Fix index into inout_mode when
23180         reading it.
23181
23182 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
23183
23184         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
23185         * tm.texi (MD_ASM_CLOBBERS): Document it.
23186
23187 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
23188
23189         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
23190         * except.c (expand_rethrow): Remove unused variable.
23191         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
23192         * flow.c (replace_insns): Likewise.
23193         (create_edge_list, verify_edge_list): Likewise.
23194         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
23195
23196         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
23197         is special code to run.
23198         (main): Don't define operands to emit_operand.
23199         * genrecog.c (main): Don't emit an empty peephole2_insn function.
23200
23201         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
23202
23203         * alpha/alpha.h (normal_memory_operand): Declare.
23204         (reg_no_subreg_operand): Declare.
23205         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
23206
23207 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
23208
23209         * c-parse.in (compstmt_primary_start): New, broken out of first
23210         part of compstmt handling in primary.
23211         (primary): Use it.  Add an error clause.
23212         (compstmt_nostart): Renamed from compstmt; remove all
23213         initial invocations of compstmt_start.
23214         (compstmt): New.
23215
23216 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
23217
23218         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
23219         needed.
23220
23221 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
23222
23223         * combine.c (simplify_shift_const): Remove extra semicolon.
23224         * dwarf2out.c (remove_AT): Likewise.
23225         * expmed.c (expand_mult): Likewise.
23226         * gcov.c (create_program_flow_graph): Likewise.
23227         * reorg.c (mostly_true_jump): Likewise.
23228
23229 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
23230
23231         * fold-const.c (fold_range_test): Do not try to fold the range
23232         test if the rhs or lhs has side effects.
23233
23234         * combine.c (simplify_rtx): Recognize another case of a synthesized
23235         sign extension.
23236
23237         * varasm.c (mark_constant_pool): When marking indirect references,
23238         only look at SYMBOL_REFs.
23239
23240         * except.c (expand_fixup_region_end): Do not peek at
23241         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
23242
23243 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
23244
23245         * flags.h: New variables align_loops, align_loops_log,
23246         align_jumps, align_jumps_log, align_labels, align_labels_log,
23247         align_functions, align_functions_log.
23248         * toplev.c: Define them.
23249         (f_options): Handle -falign-* when they have no argument.
23250         (main): Add logic to set variables for -falign-functions,
23251         -falign-jumps, -falign-labels, -falign-loops.
23252         Make it -fsched-verbose=<n> and -finline-limit=<n>.
23253         (display_help): Change help to match options.
23254         * final.c (LABEL_ALIGN): Default to align_labels_log.
23255         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
23256         (LOOP_ALIGN): Default to align_loops_log.
23257         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
23258         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
23259         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
23260         * varasm.c (assemble_start_function): Handle align_functions.
23261
23262         * config/sparc/sparc.h: Don't declare sparc_align_*.
23263         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
23264         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
23265         sparc.c.
23266         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
23267         it's a promise.
23268         * config/sparc/sparc.c: Delete sparc_align_loops,
23269         sparc_align_jumps, sparc_align_funcs and the corresponding string
23270         variables.
23271         (sparc_override_options): Default align_functions on ultrasparc.
23272         Delete -malign-* handling.
23273
23274         * config/mips/mips.c (override_options):  On 64-bit targets,
23275         try to align code to 64-bit boundaries.
23276         (print_operand): New substitution, %~,
23277         which aligns labels to align_labels_log.
23278         * config/mips/mips.md (div_trap_normal): Use %~.
23279         (div_trap_mips16): Likewise.
23280         (abssi): Likewise.
23281         (absdi2): Likewise.
23282         (ffssi2): Likewise.
23283         (ffsdi2): Likewise.
23284         (ashldi3_internal): Likewise.
23285         (ashrdi3_internal): Likewise.
23286         (lshrdi3_internal): Likewise.
23287         (casesi_internal): Likewise.
23288
23289 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
23290
23291         Merge new ia32 backend from the branch!
23292
23293         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
23294         See ChangeLog.P2 on new_ia32_branch for details.
23295
23296         * rtl.h (stack_regs_mentioned_p): Delete prototype.
23297         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
23298         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
23299         * i386/gas.h (ASM_FILE_START): Define.
23300         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
23301         for name change of ix86_valid_decl_attribute_p.
23302         (i386_pe_valid_type_attribute_p): Similarly.
23303
23304 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
23305
23306         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
23307         to step through CC modes.
23308
23309 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23310
23311         * regmove.c (fixup_match_1): Don't move INSN in front of P if
23312         it would end up in the shadow of a live flags regsiter.
23313
23314 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23315
23316         * reload1.c: Fix many indentation problems.
23317         * reload.c: Likewise.
23318
23319 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
23320
23321         * alias.c (non_local_reference_p): Constify fmt.
23322
23323 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
23324
23325         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
23326
23327 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
23328
23329         * cse.c (delete_trivially_dead_insns): Do not delete stores to
23330         the internal_arg_pointer.
23331
23332 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
23333
23334         Merge peephole2 from new_ia32_branch:
23335         * Makefile.in (STAGESTUFF): Add *.peephole2.
23336         (mostlyclean): Likewise.
23337         (recog.o): Depend on resource.h.
23338
23339         * final.c (peephole): Conditionalize decl on HAVE_peephole.
23340         (final_scan_insn): Likewise for the invocation of peephole.
23341         * genconfig.c (main): Look for peephole and peephole2 patterns.
23342         Emit HAVE_peephole* accordingly.
23343         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
23344         * flags.h (flag_peephole2): Declare.
23345         * toplev.c: New pass peephole2.  New flag -fpeephole2.
23346
23347         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
23348         * gencodes.c (main): Likewise.
23349         * genextract.c (main): Likewise.
23350         * genoutput.c (main): Likewise.
23351         * genemit.c (max_operand_1): Look for the max scratch operand.
23352         (gen_rtx_scratch): New.
23353         (gen_exp): Use it, and pass on new arg subroutine_type.
23354         (gen_expand): Take max scratch into account.
23355         (gen_split): Emit peephole2 functions.
23356         (output_peephole2_scratch): New.
23357         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
23358         * genrecog.c (routine_type): Add PEEPHOLE2.
23359         (IS_SPLIT): New.
23360         (make_insn_sequence): Match outer parallel for peep2.  Discard
23361         top level scratches and dups.
23362         (add_to_sequence): New args insn_type and top.  Update all callers.
23363         Handle toplevel peep2 matching insns.
23364         (write_subroutine): Handle peep2.
23365         (write_tree_1): Likewise.
23366         (write_tree): Likewise.
23367         (main): Likewise.
23368         (change_state): New arg afterward.  Update all callers.
23369         Handle matching separate insns.
23370         * recog.c (recog_next_insn): New.
23371         (peephole2_optimize): New.
23372         * rtl.def (DEFINE_PEEPHOLE2): New.
23373         * resource.c (find_free_register): New argument last_insn.  Use it
23374         to find a register available through the entire span.
23375         * resource.h (find_free_register): Update prototype.
23376
23377 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
23378
23379         * i386.c (output_strlen_unroll): Don't write xops[7]
23380         label if it wasn't set.
23381
23382 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
23383
23384         * cpplib.c (struct directive): Const-ify name pointer and
23385         function pointer prototype.
23386         (validate_else, do_define, do_line, do_include, do_undef,
23387         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
23388         do_elif, do_endif, do_sccs, do_assert, do_unassert,
23389         do_warning): Const-ify second arg.
23390         (directive_table): Mark const.  Reorder entries by frequency
23391         of usage, record statistics.
23392
23393 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
23394
23395         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
23396         bounds- check RTL accesses if --enable-checking.
23397         (RTVEC_ELT): Bounds check if --enable-checking.
23398         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
23399         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
23400         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
23401         GET_NUM_ELEM.
23402         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
23403         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
23404
23405         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
23406         (NOTE_SOURCE_FILE): Use X0STR.
23407         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
23408         MEM_ALIAS_SET): Use X0INT.
23409         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
23410         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
23411         Use X0EXP.
23412         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
23413         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
23414         (rtl_check_failed_bounds, rtl_check_failed_type1,
23415         rtl_check_failed_type2, rtvec_check_failed_bounds): New
23416         functions.
23417         (fancy_abort): Fix comment.
23418
23419         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
23420         (cse_insn): Decrement LABEL_NUSES for jump target before
23421         deleting jump insn.
23422         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
23423         * final.c (alter_subreg): Compute regno before changing x to
23424         REG; set REGNO(x) after changing it.
23425         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
23426         notes containing CONST_INTs.
23427         (delete_eh_regions): Use NOTE_EH_HANDLER.
23428         * function.c (put_reg_into_stack): Make reg a MEM before
23429         initializing it.
23430         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
23431         delete insn.
23432         (gen_mem_addressof): Make reg a MEM before initializing it.
23433         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
23434         X0WINT.
23435         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
23436         deleting an insn, not after.
23437         (block_alloc): Only look at PATTERN(insn) if we have to, and
23438         only if it's format class 'i'.
23439         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
23440         CONST_INT before using its INTVAL.
23441         * print-rtl.c (print_rtx): Use X0STR.
23442         * regmove.c (fixup_match_1): Don't look at PATTERN of
23443         non-class-'i' insn chain elements.
23444         * reload.c (loc_mentioned_in_p): Take address of
23445         in->fld[1].rtx directly.
23446         * reload1.c (reload): Change reg to a MEM before initializing
23447         it.
23448         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
23449         have no names.
23450         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
23451
23452 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
23453
23454         * config/mips/mips.c (machine_dependent_reorg): Force a
23455         barrier to output the local constant pool if a barrier hasn't
23456         been found at a natural point in the instruction stream.
23457
23458 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23459
23460         * c-parse.in (language_string): Constify.
23461
23462         * dwarf2out.c (language_string): Remove declaration.
23463
23464         * dwarfout.c (language_string): Likewise.
23465
23466         * toplev.c (language_string, init_parse, finish_parse): Likewise.
23467
23468         * tree.h (language_string, init_parse, finish_parse): Declare.
23469
23470         * i386/sun386.h (language_string): Remove declaration.
23471
23472         * mips.h (language_string): Likewise.
23473
23474         * nextstep.h (language_string): Likewise.
23475
23476         * nextstep21.h (language_string): Likewise.
23477
23478         * rs6000.c (language_string): Likewise.
23479
23480 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23481
23482         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
23483         (getpwd.o): Remove target.
23484
23485         * getpwd.c: Delete file.  Its in libiberty now.
23486
23487         * dbxout.c (getpwd): Don't prototype.
23488         * dwarf2out.c (getpwd): Likewise
23489         * dwarfout.c (getpwd): Likewise
23490         * final.c (getpwd): Likewise.
23491         * protoize.c (getpwd): Likewise.
23492
23493 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23494
23495         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
23496
23497 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
23498
23499         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
23500         mark_set_resources.
23501
23502 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
23503
23504         * fixinc/Makefile.in (subdir): New.
23505         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
23506         (Makefile): New.
23507
23508 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
23509
23510         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
23511         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
23512         be shared.
23513
23514         * invoke.texi: Fix typo.
23515
23516         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
23517         changed.  Handle autoincrement addressing modes.
23518
23519         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
23520         just like we would the virtual incoming args register when
23521         integrating.
23522
23523 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
23524
23525         * rs6000.h (ASM_FILE_START): Specify complete filename, including
23526         path, in .file directive.
23527
23528 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
23529
23530         * gcc.texi (External Bugs): Remove obsolete note about Perl on
23531         SunOS.
23532
23533 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
23534
23535         * stdbool.h: Make the typedef name _Bool, with bool a #defined
23536         alias.
23537
23538 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23539
23540         * tree.c (tree_code_name): Constify a char*.
23541
23542         * tree.h (tree_code_name, decl_printable_name): Likewise.
23543
23544         * function.h (struct function): Likewise.
23545
23546         * toplev.c (decl_name, decl_printable_name): Likewise.
23547
23548         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
23549
23550         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
23551         (init_objc): Remove function pointer cast.
23552
23553 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
23554
23555         * pa.md (interspace_jump): New pattern.
23556         (builtin_longjmp): New expander.
23557
23558 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
23559
23560         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
23561         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
23562         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
23563
23564 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
23565
23566         * jump.c (delete_prior_computation): Also check calls
23567         to constant functions.  Don't bother checking for a
23568         REG_UNUSED note before adding it.
23569         (delete_computation): Handle multi-word hard registers
23570         when synthesizing missing REG_DEAD notes for a register
23571         which is both set and used by an insn.
23572
23573 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23574
23575         * loop.c (this_loop_info): New variable.
23576         (loop_has_call, loop_has_volatile, loop_has_tablejump,
23577         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
23578         All uses updated.
23579         (prescan_loop, strength_reduce): New argument loop_info.  All callers
23580         updated.
23581         (scan_loop): New variable loop_info, initialise to address of
23582         this_loop_info.
23583         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
23584         Delete variable loop_has_multiple_exit targets and replace with
23585         field in this_loop_info.
23586         (find_and_verify_loops): Rename this_loop to this_loop_num.
23587         (strength_reduce): Delete loop_iteration_info.  Replace variable
23588         loop_info with function argument of same name.
23589         (insert_bct): Rework test for loop being completely unrolled.
23590
23591         * loop.h (struct loop_info): New fields num, loops_enclosed,
23592         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
23593         has_indirect_jump, and cont.  Redefine use of unroll_number.
23594         (loop_unroll_number): Delete.
23595
23596         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
23597         field of loop_info.
23598         (loop_iterations): Delete variable vtop and instead use
23599         loop_info->vtop computed in prescan_loop.
23600
23601 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
23602
23603         * fix-header.c (main): Do not pass a null pointer to strcmp.
23604
23605 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
23606
23607         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
23608         filenames.
23609         * configure: Rebuilt.
23610
23611 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
23612
23613         * jump.c (jump_optimize_1): Do not delete assignments to
23614         internal_arg_pointer.
23615         * cse.c (delete_trivially_dead_insns): Always consider a set of
23616         the internal_arg_pointer live.
23617
23618 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
23619
23620         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
23621         (update_life_info) [REG_WAS_0]: Search the original insns rather
23622         than the new insns for the note.  Fix typos finding note_dest.
23623         If no dest found, discard the note rather than abort.
23624         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
23625         (replace_insns): Remove the old insn list after update_life_info
23626         not before.
23627
23628 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
23629
23630         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
23631         sched_analyze_insn.
23632         (sched_analyze_1): Let add_dependence care for not adding dups.
23633         (sched_analyze_2): Likewise.
23634         (add_branch_dependences): Likewise.
23635
23636 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23637
23638         * i386/winnt.c (export_list): New type.
23639         (exports_head): Rename to
23640         (export_head):  this.
23641         (i386_pe_record_exported_symbol): Add is_data flag.
23642         (i386_pe_asm_file_end): Emit directive for exported variables.
23643         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
23644         prototype.
23645         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
23646         (ASM_DECLARE_OBJECT_NAME): Likewise.
23647         (ASM_DECLARE_FUNCTION_NAME): Likewise.
23648         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
23649
23650 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
23651
23652         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
23653
23654         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
23655         operand.
23656
23657 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
23658
23659         * config/openbsd.h: Define SET_ASM_OP.
23660         * tm.texi: cross-reference SET_ASM_OP in the index.
23661
23662 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
23663
23664         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
23665         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
23666         and class_narrowest_mode at compile time.  Kill init_rtl.
23667         Mark rtx_length, mode_class, mode_size, mode_unit_size,
23668         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
23669         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
23670         EXTRA_CC_NAMES.
23671         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
23672         format.
23673         * rtl.h: Declare rtx_length and rtx_format as const.
23674         * machmode.def: Define CC().  Use CC() to define CCmode.  If
23675         EXTRA_CC_MODES is defined, expand it here.
23676         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
23677         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
23678         const.  Kill all references to EXTRA_CC_MODES.
23679
23680         * toplev.c: Don't prototype or call init_rtl.
23681         * optabs.c: Don't call init_mov_optab.
23682         * genemit.c: Don't generate init_mov_optab.  Don't call
23683         init_rtl.
23684         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
23685         here.
23686         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
23687         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
23688         genrecog.c: Don't call init_rtl.
23689
23690         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
23691         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
23692         definition of EXTRA_CC_MODES.
23693
23694         * md.texi: Kill ref to EXTRA_CC_NAMES.
23695         * tm.texi: Document new way to define EXTRA_CC_MODES.
23696
23697         * genrecog.c: Do not look up the name of a define_split.
23698         (Unrelated bugfix.)
23699
23700 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
23701
23702         * config/v850/v850.md: Fix typo introduced by previous delta.
23703
23704 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23705
23706         * gcc.c (fatal): Make definition static to match prototype.
23707
23708 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23709
23710         * combine.c (get_last_value): Don't look for earlier sets if the last
23711         known set is somewhere in between the insns being combined.
23712
23713 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
23714
23715         * configure.in: Don't use shell ! to negate exit codes
23716         * configure: Regenerate
23717
23718 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
23719
23720         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
23721         the fact that ALIGN is measured in bits, not bytes.
23722
23723 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
23724
23725         * errors.c: New file; defines functions error, warning, and
23726         fatal, variables have_error and progname.
23727         * errors.h: New file; prototypes and decls for stuff in errors.c.
23728
23729         * Makefile: Add rules to build errors.o and
23730         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
23731         genopinit, genrecog, genextract, genpeep, genattr, and
23732         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
23733         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
23734         genpeep.o, genattr.o, and genoutput.o.
23735
23736         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
23737         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
23738         define or prototype fatal.  Set progname at beginning of main.
23739         * genoutput.c:  Likewise, and don't define or prototype error
23740         either.
23741
23742         * c-typeck.c (c_expand_start_case): Return immediately if exp
23743         is an ERROR_MARK.
23744         * fold-const.c (operand_equal_p): Return immediately if arg1
23745         or arg0 are ERROR_MARKs.
23746         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
23747         fields of type ERROR_MARK when calculating if the record can
23748         go in a register.
23749
23750 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
23751         with much help from Jeffrey A Law and Richard Henderson
23752
23753         * i386.md: In the 6 insns which call output_fix_trunc,
23754         earlyclobber operands[0].
23755
23756 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
23757
23758         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
23759         creating new registers.
23760
23761 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
23762
23763         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
23764         i386_reg_alloc_order, i386_regparm_string,
23765         i386_align_loops_string, i386_align_jumps_string,
23766         i386_align_funcs_string, i386_preferred_stack_boundary_string,
23767         and i386_branch_cost_string as type "const char *".
23768         * i386.c: Define all above strings as type "const char *".
23769
23770 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
23771
23772         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
23773         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
23774
23775 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
23776
23777         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
23778         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
23779
23780 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
23781
23782         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
23783         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
23784         (dwarf2out_line, dwarf2out_finish): Likewise.
23785         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
23786
23787 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23788
23789         * tree.c (lang_unsave_expr_now) : Correct return type.
23790         * tree.h (lang_unsave_expr_now) : Same.
23791
23792 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
23793
23794         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
23795         instead of duplicating code.
23796
23797 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23798
23799         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
23800
23801 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
23802
23803         * tree.h: fancy_abort always takes three args.
23804         * resource.c: Move include of system.h before toplev.h.
23805
23806 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
23807
23808         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
23809         as SYMBOL_REFs.
23810
23811 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
23812
23813         * system.h: Don't redefine abort or trim_filename.
23814         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
23815         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
23816         whether or not __FUNCTION__ is available.
23817         * tree.h: Duplicate rtl.h's definition of abort, for files
23818         that don't include rtl.h.  Delete all code to perform type
23819         checking with a compiler other than GCC.
23820         * varray.h: Delete all code to perform type checking with a
23821         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
23822         its arguments exactly once, using a statement expression.
23823         Adjust the VARRAY_<type> accessor macros to match.
23824         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
23825         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
23826         caller's location.  Define fatal_insn and fatal_insn_not_found
23827         as macros that use _fatal_insn and _fatal_insn_not_found.
23828         (fancy_abort, trim_filename): Kill prototypes.
23829
23830         * rtl.c (trim_filename): Move here from toplev.c.
23831         (fancy_abort): New function.
23832         (DIR_SEPARATOR): Provide default definition.
23833         * tree.c (tree_check_failed, tree_class_check_failed): Go
23834         through fancy_abort.
23835         (tree_check, tree_class_check, cst_or_constructor_check,
23836         expr_check): Delete.
23837         * varray.c (varray_check_failed): New function.
23838         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
23839         _fatal_insn and _fatal_insn_not_found.  Go through
23840         fancy_abort.
23841         (trim_filename, fancy_abort): Delete.
23842
23843         * builtins.c (expand_builtin_args_info): Report ICE with abort.
23844         * except.c (start_catch_handler): Report ICE with error/abort
23845         combo.
23846         * final.c (output_operand_lossage): Likewise.
23847         * flow.c (verify_flow_info): Likewise.
23848
23849         * gcc.c: Prototype fatal.
23850         * gengenrtl.c: Undef abort after including rtl.h not system.h.
23851         * genattr.c, genattrtab.c, genemit.c, genextract.c,
23852         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
23853         Don't define fancy_abort.
23854
23855 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
23856
23857         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
23858         canonization.
23859
23860 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
23861
23862         * m88k.h (VERSION_INFO2): Kill.
23863         (VERSION_STRING): Kill.
23864         (TM_RCS_ID): Kill.
23865         (VERSION_INFO1): Tidy.
23866         (TARGET_VERSION): Update.
23867         * m88k/dgux.h (VERSION_INFO2): Kill.
23868         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
23869         * m88k/luna.h (VERSION_INFO1): Tidy.
23870         * m88k/sysv4.h (VERSION_INFO1): Likewise.
23871         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
23872         (output_file_start): Adjust for death of VERSION_STRING.
23873
23874 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
23875
23876         * cpplib.c (detect_if_not_defined): New function.
23877         (do_if): Use it to detect potential once-only headers.
23878
23879 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
23880
23881         * c-common.c (combine_strings): Always set TREE_CONSTANT.
23882
23883 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23884
23885         * combine.c (nonzero_bits) : Allow single-ly set registers to be
23886         anywere in the function only if they are pseudos and set before
23887         being used (not live at the start of the function).
23888         (num_sign_bit_copies) : Same.
23889         (get_last_value_validate) : Same.
23890         (get_last_value) : Same.
23891
23892 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
23893
23894         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
23895         where N and M are constant and N is an integer multiple of M.
23896
23897 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
23898
23899         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
23900         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
23901         sbitmap_union_of_preds): Add prototypes.
23902         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
23903         the intersection of successors with the new flow graph structures.
23904         (sbitmap_intersection_of_preds): New function to compute the
23905         intersection of predecessors with the new flow graph structures.
23906         (sbitmap_union_of_succs): New function to compute the union of
23907         successors with the new flow graph structures.
23908         (sbitmap_union_of_preds): New function to compute the union of
23909         predecessors with the new flow graph structures.
23910         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
23911         (expr_reaches_here_p): Use edge and basic_block structures instead
23912         of s_preds and s_succs.
23913         (compute_cprop_avinout): Use new sbitmap routines.
23914         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
23915         of s_preds and s_succs.
23916         * flow.c (compute_flow_dominators): Compute dominators using
23917         edges and basic blocks instead of s_preds and s_succs.
23918
23919 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
23920
23921         * lists.c (unused_insn_list, unused_expr_list): New file for
23922         maintaining various types of lists. New statics for maintaining a
23923         cache of available INSN_LIST and EXPR_LIST nodes.
23924         (free_list): Static function for freeing a list of INSN/EXPR nodes.
23925         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
23926         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
23927         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
23928         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
23929         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
23930         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
23931         (free_INSN_LIST_node): Free an individual INSN_LIST node.
23932         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
23933         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
23934         (remove_dependence, free_pending_lists): Use new global routines.
23935         (flush_pending_lists, sched_analyze_insn): Use new global routines.
23936         (sched_analyze, compute_block_backward_dependences): Use new routines.
23937         (sched_analyze_1, sched_analyze_2): Use new routines.
23938         (schedule_insns): Use new global routines.
23939         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
23940         prototypes.
23941         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
23942         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
23943         prototypes.
23944         * toplev.c (rest_of_compilation): Initialize node cache.
23945         * Makefile.in (OBJS): Add lists.o to list of object files.
23946         (lists.o): Add dependancies.
23947
23948 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
23949
23950         * config/v850/v850.md: Fix compile time warning messages.
23951         * config/v850/v850.c: Fix compile time warning messages.
23952         * config/v850/v850.h: Fix compile time warning messages.
23953
23954 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23955
23956         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
23957         Remove unused prototype for `init_lengths'.
23958
23959 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23960
23961         * calls.c (emit_call_1): Mark parameter `stack_size' with
23962         ATTRIBUTE_UNUSED.
23963         (expand_call): Initialize variable `insn'.
23964         (emit_library_call): Likewise for variable `high_to_save'.
23965         (emit_library_call_value): Likewise.
23966         (store_one_arg): Likewise for variables `lower_bound' and
23967         `upper_bound'.
23968
23969         * combine.c (try_combine): Likewise for variables `i2_code_number'
23970         and `other_code_number'.
23971         (find_split_point): Likewise for variables `pos', `unsignedp' and
23972         `inner'.
23973         (simplify_if_then_else): Likewise for variables `op' and `c1'.
23974         (simplify_and_const_int): Remove unused variable `width'.
23975         (merge_outer_ops): Likewise.
23976
23977         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
23978         HOST_WIDE_INT' when comparing against one.
23979         (simplify_relational_operation): Likewise.
23980         (cse_insn): Initialize variables `src_eqv_volatile',
23981         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
23982
23983         * final.c (init_final): Constify parameter `filename'.
23984         (final_start_function): Mark parameter `optimize' with
23985         ATTRIBUTE_UNUSED.
23986         (profile_function): Likewise for parameters `first' and `optimize'.
23987         (output_source_line): Likewise for parameter `file'.
23988
23989         * integrate.c (subst_constants): Cast a value to `size_t' when
23990         comparing against one.
23991         (mark_stores): Initialize variable `mode'.  Cast a value to
23992         `size_t' when comparing against one.
23993
23994         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
23995
23996         * loop.c (move_movables): Initialize variable `first'.
23997         (strength_reduce): Likewise for variable `increment'.
23998         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
23999         value to `size_t' when comparing against one.
24000         (load_mems): Initialize variable `end_label'.
24001
24002         * output.h (init_final): Constify parameter.
24003
24004         * reload.c (decompose): Initialize variable `base'.
24005
24006         * reload1.c (reload): Likewise for variable `is_scalar'.
24007         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
24008         (choose_reload_regs): Initialize variable `mode'.
24009         (emit_reload_insns): Likewise for variable `store_insn'.
24010         (reload_cse_noop_set_p): Mark parameter `insn' with
24011         ATTRIBUTE_UNUSED.
24012         (reload_combine): Initialize variable `set'.
24013
24014         * unroll.c (unroll_loop): Likewise for variable `local_label'.
24015         (copy_loop_body): Cast a value to `size_t' when comparing against
24016         one.
24017
24018         * varasm.c (assemble_variable): Initialize variable `size_tree'.
24019         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
24020         (remove_from_pending_weak_list): Mark parameter `name' with
24021         ATTRIBUTE_UNUSED.
24022
24023 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24024
24025         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
24026         gcse dump file.
24027
24028 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
24029
24030         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
24031         (ASM_DECLARE_FUNCTION_NAME): Define.
24032         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
24033         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
24034         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
24035         not already defined.
24036
24037 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24038
24039         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
24040         of n_popped when call/call_value are not defined.
24041
24042 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
24043
24044         * tm.texi: GNU CC -> GCC conversion.
24045         (CC1_SPEC): Indicate it is used for all language front ends.
24046
24047 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
24048
24049         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
24050         NOTE_INSN_EH_REGION_END correctly.
24051
24052 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
24053                           Jeff Law <law@cygnus.com>
24054
24055         * loop.c (strength_reduce): Automatically unroll loops if the
24056         unrolled loop size is smaller than the rolled loop size.
24057
24058         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
24059         and delete comment that code should be rewritten.
24060
24061 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
24062
24063         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
24064         as reachable.
24065
24066         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
24067
24068 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24069
24070         * fixinc/mkfixinc.sh: Don't fix uwin headers.
24071         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
24072         (LINK_SPEC): Add -u _main when building executables.
24073         (ASM_DECLARE_FUNCTION): Update from Cygwin.
24074         (ASM_FILE_END): Use the default for ix86-pe.
24075         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
24076
24077 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
24078
24079         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
24080         and ASM_CLOSE_PAREN are empty strings.
24081
24082 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
24083                           Geoffrey Keating <geoffk@cygnus.com>
24084
24085         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
24086         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
24087         (unprotoize.o): Ditto.
24088         (test-protoize-simple): Don't define STD_PROTO_DIR.
24089         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
24090         changes to make 'test-protoize-simple' pass.
24091         (STD_PROTO_DIR): Remove define.
24092         (STANDARD_EXEC_PREFIX): Supply default define.
24093         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
24094         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
24095         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
24096         (GET_ENV_PATH_LIST): New macro.
24097         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
24098         (do_processing): Initialize default_syscalls_dir using new
24099         macros.  Use it to initialize syscalls_absolute_filename.
24100
24101 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
24102
24103         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
24104         B into a register before emit_conditional_move.
24105
24106 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
24107
24108         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
24109         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
24110         multiplicand out of (+ (* a b) (* c d)).
24111
24112 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
24113                           Richard Henderson  <rth@cygnus.com>
24114
24115         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
24116         (new_insn_dead_notes): Likewise.
24117         (update_n_sets): Likewise.
24118         (update_flow_info): Move to flow.c, renamed to update_life_info;
24119         extend to handle multiple source insns.
24120         * flow.c: Include resource.h
24121         (unlink_insn_chain): New.
24122         (split_hard_reg_notes): New.
24123         (maybe_add_dead_note): New.
24124         (maybe_add_dead_note_use): New.
24125         (find_insn_with_note): New.
24126         (new_insn_dead_notes): New.
24127         (update_n_sets): New.
24128         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
24129         (maybe_remove_dead_notes): New.
24130         (update_life_info): New.
24131         (prepend_reg_notes): New.
24132         (replace_insns): New.
24133         * output.h (update_life_info): Declare.
24134         * recog.c (split_block_insns): Use update_life_info.
24135         * resource.c (find_free_register): Use reg_alloc_order, don't use
24136         fixed regs, make sure the mode is supported, don't use new regs.
24137         (reg_dead_p): New.
24138         * rtl.h (replace_insns): Declare.
24139
24140 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
24141
24142         * expr.c (expand_expr): Cope with COND_EXPRs with one
24143         non-returning branch.
24144
24145 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
24146
24147         * expr.c (store_expr): Always pass down the target, even when not
24148         doing CSE.
24149
24150 1999-08-24  Nick Clifton  <nickc@cygnus.com>
24151
24152         * configure.in: Define target_cpu_default for v850 targets.
24153         * configure: Regenerate
24154
24155         * config/v850/v850.h (TARGET_CPU_generic): Define.
24156         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
24157         addresses are 4 byte aligned.
24158
24159         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
24160         addresses.
24161
24162 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24163
24164         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
24165         (main): Add prototypes.
24166
24167         * genattrtab.c (substitute_address, write_const_num_delay_slots,
24168         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
24169         (write_attr_get): Emit prototypes along with function definition.
24170         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
24171         (write_complex_function): Emit static prototype along with
24172         function definition.
24173
24174         * genemit.c (gen_split): Emit prototypes along with function
24175         definition.
24176
24177         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
24178         Likewise for predicates and `insn_operand_predicate'.
24179         (process_template): Emit static prototype along with function
24180         definition.
24181
24182         * genrecog.c (make_insn_sequence): Constify a char*.  Add
24183         prototypes for get_split_*().
24184         (write_subroutine): Emit prototypes along with function
24185         definition.
24186
24187 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24188
24189         * gcse.c (find_avail_set): Follow chains of register-register copies.
24190         Use oprs_not_set_p to guarantee that the returned value can be
24191         substituted.
24192         (cprop_insn): Don't verify the return value of find_avail_set with
24193         oprs_not_set_p.
24194
24195         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
24196         (cprop_cc0_jump): New function.
24197         (cprop_insn): Break out new function cprop_jump and use it.
24198         Also use cprop_cc0_jump for machines with CC0.
24199         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
24200
24201         * tree.h (current_function_calls_setjmp,
24202         current_function_calls_longjmp): Delete declarations.
24203         * dsp16xx.c: Include "function.h".
24204         * elxsi.c: Likewise.
24205         * gmicro.c: Likewise.
24206         * h8300.c: Likewise.
24207         * i370.c: Likewise.
24208         * m32r.c: Likewise.
24209         * mn10200.c: Likewise.
24210         * mn10300.c: Likewise.
24211         * ns32k.c: Likewise.
24212         * spur.c: Likewise.
24213         * v850.c: Likewise.
24214
24215         * rtl.h (rtx_equal_function_value_matters): Declare.
24216         * toplev.c (rtx_equal_function_value_matters): Don't declare.
24217         * cse.c: Likewise.
24218         * function.c: Likewise.
24219         * emit-rtl.c: Likewise.
24220
24221 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
24222
24223         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
24224         call.
24225
24226 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
24227
24228         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
24229         exactly.
24230
24231 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
24232
24233         * cpp.texi: Add a node documenting macro varargs (copied
24234         from extend.texi).
24235
24236 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
24237
24238         * cppspec.c: Put a null pointer at the end of the new argv.
24239
24240 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
24241
24242         * configure.in: Remove code to select/de-select the haifa
24243         scheduler.  Every scheduled port gets haifa now.
24244         * configure: Rebuilt.
24245         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
24246         * sched.c Deleted.
24247         * Makefile.in: Corresponding changes.
24248
24249 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24250
24251         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
24252         All callers changed.
24253         (prepare_float_lib_cmp): Likewise.
24254         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
24255         * expr.h (emit_float_lib_cmp): Delete declaration.
24256         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
24257         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
24258         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
24259         specially.
24260         (cmptf): Now conditional on TARGET_HARD_QUAD.
24261
24262 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
24263
24264         * resource.c (mark_target_live_regs): Use
24265         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
24266
24267 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24268
24269         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
24270
24271         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
24272
24273         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
24274
24275 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24276
24277         * rtl.h (rtx_format): Constify a char*.
24278
24279         * rtl.c (rtx_format): Likewise.
24280         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
24281         (init_rtl): Use accessor macro, not `rtx_format'.
24282
24283         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
24284         char*.
24285
24286         * caller-save.c (mark_referenced_regs): Likewise.
24287
24288         * combine.c (subst, make_compound_operation, known_cond,
24289         gen_rtx_combine, update_table_tick, get_last_value_validate,
24290         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
24291
24292         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
24293         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
24294         count_reg_usage): Likewise.
24295
24296         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
24297         Likewise.
24298
24299         * final.c (leaf_renumber_regs_insn): Likewise.
24300
24301         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
24302         dump_edge_info, count_reg_references): Likewise.
24303
24304         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
24305         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
24306         Likewise.
24307
24308         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
24309         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
24310         add_label_notes): Likewise.
24311
24312         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
24313         clear_struct_flag, count_sub_rtxs, count_alternatives,
24314         compares_alternatives_p, contained_in_p, walk_attr_value,
24315         write_expr_attr_cache): Likewise.
24316
24317         * genconfig.c (walk_insn_part): Likewise.
24318
24319         * genemit.c (max_operand_1, gen_exp): Likewise.
24320
24321         * genextract.c (walk_rtx): Likewise.
24322
24323         * genflags.c (num_operands): Likewise.
24324
24325         * genoutput.c (scan_operands): Likewise.
24326
24327         * genpeep.c (match_rtx): Likewise.
24328
24329         * genrecog.c (add_to_sequence): Likewise.
24330
24331         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
24332         Likewise.
24333
24334         * integrate.c (save_constants, copy_for_inline,
24335         copy_rtx_and_substitute, subst_constants, restore_constants):
24336         Likewise.
24337
24338         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
24339         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
24340
24341         * local-alloc.c (contains_replace_regs, memref_referenced_p):
24342         Likewise.
24343
24344         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
24345         add_label_notes, replace_call_address, count_nonfixed_reads,
24346         invariant_p, find_single_use_in_loop, find_mem_givs,
24347         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
24348         Likewise.
24349
24350         * print-rtl.c (reg_names, print_rtx): Likewise.
24351
24352         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
24353
24354         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
24355         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
24356         print_blocks): Likewise.
24357
24358         * regclass.c (fix_register, record_address_regs,
24359         reg_scan_mark_refs): Likewise.
24360
24361         * regmove.c (stable_but_for_p): Likewise.
24362
24363         * reload.c (loc_mentioned_in_p, operands_match_p,
24364         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
24365         copy_replacements, refers_to_regno_for_reload_p,
24366         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
24367         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
24368         Likewise.
24369
24370         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
24371         delete_address_reloads_1, count_occurrences,
24372         reload_cse_mem_conflict_p, reload_combine_note_use,
24373         add_auto_inc_notes): Likewise.
24374
24375         * resource.c (mark_referenced_resources, mark_set_resources):
24376         Likewise.
24377
24378         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
24379         reg_mentioned_p, regs_set_between_p, modified_between_p,
24380         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
24381         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
24382         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
24383         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
24384
24385         * sched.c (sched_analyze_2, attach_deaths): Likewise.
24386
24387         * stupid.c (stupid_mark_refs): Likewise.
24388
24389         * unroll.c (remap_split_bivs): Likewise.
24390
24391         * varasm.c (mark_constants): Likewise.
24392
24393         * a29k/a29k.c (uses_local_reg_p): Likewise.
24394
24395         * alpha/alpha.c (summarize_insn): Likewise.
24396
24397         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
24398         eliminate_lr2ip): Likewise.
24399
24400         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
24401
24402         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
24403         reg_mentioned_in_mem): Likewise.
24404
24405         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
24406         symbolic_reference_mentioned_p): Likewise.
24407
24408         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
24409
24410         * sh/sh.c (regs_used, mark_use): Likewise.
24411
24412         * vax/vax.c (vax_rtx_cost): Likewise.
24413
24414 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24415
24416         * machmode.h (mode_name): Constify a char*.
24417
24418         * rtl.c (mode_name): Likewise.
24419
24420         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
24421
24422         * optabs.c (init_libfuncs): Constify a char*.
24423
24424         * print-tree.c (mode_name): Remove redundant declaration.
24425         (print_node): Use accessor macro, not `mode_name'.
24426
24427         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
24428         not `mode_name'.
24429         (new_spill_reg): Constify a char*.
24430
24431         * tree.c (mode_name): Remove redundant declaration.
24432
24433 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24434
24435         * rtl.c (rtx_name): Constify a char*.
24436
24437         * rtl.h (rtx_name, fix_sched_param): Likewise.
24438
24439         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
24440         (mypr): Use accessor macro, not `rtx_name'.
24441
24442         * genemit.c (print_code): Constify a char*.
24443
24444         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
24445
24446         * genpeep.c (print_code): Constify a char*.
24447
24448         * genrecog.c (print_code): Likewise.
24449
24450         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
24451         end_bb): Add static prototype.
24452         (draw_edge): Constify a char*.
24453         (end_bb): Remove unused parameter.
24454
24455         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
24456         print_block_visualization): Constify a char*.
24457
24458 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
24459
24460         * c-common.c (c_get_alias_set): Update comment.
24461
24462 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
24463
24464         * linux.h (LIB_SPEC): Added.
24465
24466 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24467
24468         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
24469
24470 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
24471
24472         * tree.c (expr_check): Fix typo in last change.
24473
24474 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
24475
24476         * rtl.def (NOTE): Change format to "iuu0n".
24477         (ADDR_DIFF_VEC): Change format to "eEee0".
24478         (ADDRESSOF): Change format to "eit".
24479
24480         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
24481         (RTVEC_ELT): Change to match.
24482         (XVECEXP): Use XVEC and RTVEC_ELT.
24483         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
24484         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
24485         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
24486         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
24487         TRAP_CONDITION, TRAP_CODE): Use XEXP.
24488         (INTVAL): Use XWINT.
24489         (ADDRESSOF_DECL): Use XTREE.
24490         (SET_ADDRESSOF_DECL): Delete.
24491         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
24492         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
24493         ifdefed out since 2.6 at least.
24494         (gen_rtvec_vv): Delete prototype.
24495
24496         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
24497         not rtunion.
24498         (copy_most_rtx): Handle 't' format letter.
24499         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
24500         (gen_rtvec_vv): Delete function.  All callers changed to use
24501         gen_rtvec_v instead.
24502         * print-rtl.c (print_rtx): Move special casing of NOTEs to
24503         the '0' format letter.
24504
24505         * function.c (gen_mem_addressof): Don't use
24506         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
24507         instead.
24508         * integrate.c (copy_rtx_and_substitute): Likewise.
24509         Copy 't' slots with XTREE.
24510         (subst_constants): Treat 't' slots like '[swi]' slots.
24511         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
24512         * jump.c (rtx_equal_for_thread_p): Likewise.
24513         * rtlanal.c (rtx_equal_p): Likewise.
24514         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
24515         only four arguments.
24516         * gengenrtl.c (type_from_format): Provide correct types for
24517         'b' and 't' slots.
24518
24519
24520         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
24521         If a recent gcc is in use (always in stage2 and beyond), use
24522         statement expressions, so we don't make a function call unless
24523         the check fails.  Evaluate arguments exactly once.
24524         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
24525         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
24526         Delete.
24527         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
24528         they evaluate their arguments exactly once, irrespective of
24529         the compiler in use.
24530
24531         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
24532         is used by the currently-enabled check macros.  This is:
24533         (tree_check_failed, tree_class_check_failed): For gcc.
24534         (tree_check, tree_class_check, cst_or_constructor_check,
24535         expr_check): For other compilers.
24536
24537         * gencheck.c: Do not define any *_CHECK1 macros.
24538
24539 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
24540                           Mark Mitchell <mark@codesourcery.com>
24541
24542         * c-common.c (c_get_alias_set): Fix support for poitners and
24543         references.
24544
24545 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
24546
24547         * alias.c: Include tree.h.
24548         (nonlocal_reference_p, mark_constant_function): New functions.
24549         * flow.c (life_analysis): Call mark_constant_function.
24550         * rtl.h (mark_constant_function): Declare it.
24551
24552 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
24553
24554         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
24555         unrecognisable switches.
24556
24557 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24558
24559         * loop.c (recombine_givs): Set ix field after sorting.
24560         (recombine_givs): Remove bogus index / giv lockstep looping.
24561
24562 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24563
24564         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
24565         on CODE.
24566         (emit_store_flag_force): Use do_compare_rtx_and_jump.
24567         (do_cmp_and_jump): Formatting fixes.
24568         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
24569         do_compare_rtx_and_jump instead of compare_from_rtx.
24570         (do_compare_rtx_and_jump): New function; mostly copied from
24571         compare_from_rtx.
24572         (do_jump_for_compare): Delete.
24573         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
24574         MIN_EXPR.
24575         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
24576         of compare/do_jump_for_compare pairs.
24577         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
24578         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
24579         compare_from_rtx/do_jump_for_compare pairs.
24580         (do_jump_by_parts_equality): Likewise.
24581         (do_jump_by_parts_equality_rtx): Likewise.
24582         * expr.h (do_compare_rtx_and_jump): Declare.
24583         * optabs.c (prepare_cmp_insn): New function, contains most of the code
24584         that used to be in emit_cmp_insn.
24585         (cmp_available_p): New function.
24586         (prepare_operand): New function.
24587         (emit_cmp_and_jump_insn_1): New function, contains some code that used
24588         to be in emit_cmp_insn.
24589         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
24590         parameters to be pointers; don't emit final compare but modify some of
24591         the values pointed to by the args so the caller can perform the
24592         correct comparison.
24593         (expand_binop): Call emit_store_flag_force with signed forms of
24594         comparison code.
24595         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
24596         emit_jump_insn pair.
24597         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
24598         emit_cmp_and_jump_insn_1.  Call emit_queue.
24599         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
24600         arg.
24601         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
24602         jump sets cc0 before deleting it.
24603         * integrate.c (expand_inline_function): Likewise.
24604         * unroll.c (unroll_loop): Similar changes in several places.
24605         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
24606         before deleting it.
24607
24608 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24609
24610         * Makefile.in (insn-recog.o): Update dependencies.
24611         * genrecog.c (main): Make generated file include "function.h".
24612
24613 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
24614
24615         * cse.c (cse_insn): Call never_reached_warning when a jump is
24616         changed to be unconditional.
24617         * flags.h: Declare warn_notreached.
24618         * flow.c (delete_block): Call never_reached_warning when
24619         a block is deleted.
24620         * jump.c (delete_barrier_successors): Call never_reached_warning
24621         when we delete everything after a BARRIER.
24622         (never_reached_warning): New function.
24623         * rtl.h: Declare never_reached_warning.
24624         * toplev.c (warn_notreached): New variable.
24625         (lang_independent_options): Set warn_notreached
24626         when -Wunreachable-code.
24627         (compile_file): We need line numbers for -Wunreachable-code.
24628
24629 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
24630
24631         * haifa-sched.c (insn_unit): Fix typo on out of range test.
24632         * sched.c (insn_unit): Likewise.
24633
24634 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
24635
24636         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
24637
24638 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24639
24640         * flow.c (create_edge_list): Use xmalloc, not malloc.
24641
24642 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
24643
24644         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
24645         C-style comments.  Do not lose the character before double slash.
24646
24647 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24648
24649         * basic-block.h (struct edge_list): Stucture to maintain a vector
24650         of edges.
24651         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
24652          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
24653         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
24654         New function prototypes.
24655         * flow.c (create_edge_list): Function to create an edge list.
24656         (free_edge_list): Discards memory used by an edge list.
24657         (print_edge_list): Debug output showing an edge list.
24658         (verify_edge_list): Internal consistency check for an edge list.
24659         (find_edge_index): Function to find an edge index for a pred and succ.
24660
24661 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
24662
24663         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
24664         hashtable.
24665
24666 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
24667
24668         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
24669
24670 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
24671
24672         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
24673
24674 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
24675
24676         * toplev.c (rest_of_compilation): Allow machine dependent
24677         reorganisation pass to place information into the RTL dump
24678         file if it so wishes.
24679
24680 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
24681
24682         * explow.c (hard_function_value): Use VOIDmode instead of
24683         MAX_MACHINE_MODE.
24684         * stmt.c (expand_return): Likewise.
24685         * stor-layout.c (get_best_mode): Likewise.
24686
24687         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
24688         emit call instead of emit_insn call.
24689
24690 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24691
24692         * configure.in: Handle --disable/enable-win32-registry.
24693         * install.texi: Document --disable/enable-win32-registry.
24694         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
24695         (WIN32_REGISTRY_KEY): New macro.
24696         * prefix.c: Use to enable/disable win32-specific code.
24697         (lookup_key): Use versioned key.
24698         * configure: Regenerate.
24699         * config.in: Likewise.
24700
24701 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
24702
24703         * cpplib.c (read_line_number): New fn, split out of...
24704         (do_line): Here.
24705
24706 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24707
24708         tree.c (lang_unsave_expr_now) : New.
24709         (unsave_expr_now): Call lang_unsave_expr_now.
24710         tree.h (lang_unsave_expr_now) : New.
24711
24712 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
24713
24714         * toplev.c (flag_new_exceptions): On by default.
24715
24716 1999-08-13  Michael Meissner  <meissner@cygnus.com>
24717
24718         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
24719
24720 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
24721
24722         * dwarfout.c (fundamental_type_code): Return FT_boolean for
24723         INTEGER_TYPE with precision==1, it's __java_boolean.
24724
24725 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24726
24727         * global.c (prune_preferences): Move some invariants out of the
24728         inner loop.
24729
24730 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
24731
24732         * configure.in (alpha*-dec-osf*): Add osf5.
24733
24734 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
24735
24736         * configure.in: Rework handling of ARM GNU/Linux slightly.
24737         (arm*-*-linux-gnuoldld): New target.
24738         * configure: Regenerate.
24739         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
24740         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
24741         * config/arm/linux-oldld.h: New file.
24742         * config/arm/linux-elf26.h: Don't include linux-elf.h.
24743         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
24744         Don't define.
24745         * config/arm/linux-elf.h (ASM_SPEC): Define.
24746         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
24747         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
24748         for 26-bit APCS and old linker.
24749         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
24750         `arm_elf'.
24751         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
24752         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
24753         don't define `arm' or `arm_elf'.
24754         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
24755         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
24756
24757 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
24758
24759         * rtl.texi: Fix typo.
24760
24761 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
24762
24763         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
24764
24765 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
24766
24767         * extend.texi (C++ Signatures): Remove node.
24768         * invoke.texi: Remove discussion of -fhandle-signatures,
24769         signature, sigof, __signature__, and __sigof__.
24770
24771 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
24772
24773         * Makefile.in (JAVAGC): Removed.
24774
24775 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24776
24777         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
24778
24779 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
24780
24781         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
24782
24783 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
24784
24785         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
24786         a register that is already known to be a pointer.
24787
24788 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
24789
24790         * fixinc/inclhack.tpl: Only install assert.h conditionally.
24791         * fixinc/inclhack.sh: Regenerated.
24792         * fixinc/fixincl.sh: Regenerated.
24793
24794 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
24795
24796         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
24797         Fix documentation of -ansi flag to describe its C++ behavior.
24798         Remove bogus reference to GCC 2.9.
24799
24800 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
24801
24802         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
24803         note if it is non-NULL.
24804
24805 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24806
24807         * except.h (eh_nesting_info): Add new structure defintion.
24808         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
24809         (reachable_handlers, update_rethrow_references): Add function
24810         prototypes.
24811         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
24812         a rethrow symbol instead of an integer exception region number.
24813         * flow.c (Make_edges): Use new exception nesting routines to determine
24814         which handlers are reachable from a CALL or asynchronous insn.
24815         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
24816         goto receivers.
24817         (delete_eh_regions): Update rethrow labels, and don't delete
24818         regions which are the target of a rethrow.
24819         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
24820         avoid overloading the SYMBOL_REF_USED flag.
24821         (rethrow_symbol_map): Use new rethrow_ref field.
24822         (rethrow_used): Use new rethrow_ref field.
24823         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
24824         of an integer.  Fix formatting.
24825         (output_exception_table_entry): Use new rethrow_ref field.
24826         (can_throw): Check for EH_REGION_NOTE before deciding
24827         whether a CALL can throw or not.
24828         (scan_region): Call rethrow_used() instead of accessing data structure.
24829         (update_rethrow_references): New function to make sure only regions
24830         which are still targets of a rethrow are flagged as such.
24831         (process_nestinfo): New static function to initialize a handler
24832         list for a specific region.
24833         (init_eh_nesting_info): New function to allocate and initialize
24834         the list of all EH handlers reachable from all regions.
24835         (reachable_handlers): New function to retrieve the list of handlers
24836         reachable from a specific region and insn.
24837         (free_eh_nesting_info): New function to dispose of a list of
24838         reachable handlers.
24839
24840 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24841
24842         * flow.c (split_edge): Set JUMP_LABEL field.
24843         (commit_one_edge_insertion): Set head correctly for insert_before.
24844         When inserting insns, update insn block numbers if allocated.
24845
24846 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24847
24848         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
24849         retry_incomplete_types): Add static prototype.
24850         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
24851         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
24852         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
24853         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
24854         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
24855         Constify a char*.
24856
24857         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
24858         dwarf2out_start_source_file, dwarf2out_line): Likewise.
24859
24860 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24861
24862         * output.h (assemble_name): Constify a char*.
24863
24864         * varasm.c (UNIQUE_SECTION, assemble_start_function,
24865         assemble_variable, assemble_name): Likewise.
24866
24867         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
24868
24869         * arm/pe.c (arm_pe_unique_section): Likewise.
24870
24871         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
24872
24873         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
24874
24875         * i386/interix.c (i386_pe_unique_section): Likewise.
24876
24877         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
24878
24879         * i386/winnt.c (i386_pe_unique_section): Likewise.
24880
24881         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
24882
24883         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
24884
24885         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
24886
24887         * pa/pa.c (output_call): Likewise.
24888
24889         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
24890
24891         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
24892
24893         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
24894         Likewise.
24895
24896         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
24897         Likewise.
24898
24899         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
24900
24901         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
24902         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
24903
24904         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
24905
24906 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24907
24908         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
24909
24910 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24911
24912         * tree.h (lang_identify): Constify a char*.
24913         (print_error_function): Add extern prototype.  Constify a char*.
24914
24915         * c-lang.c (lang_identify): Constify a char*.
24916
24917         * objc/objc-act.c (lang_identify): Constify a char*.
24918
24919 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24920
24921         * genpeep.c (main): Make generated file include "function.h".
24922         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
24923
24924 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24925
24926         * Makefile.in: Update dependencies.
24927         * alias.c: Include "function.h"
24928         * c-decl.c: Likewise.
24929         * caller-save.c: Likewise.
24930         * calls.c: Likewise.
24931         * combine.c: Likewise.
24932         * cse.c: Likewise.
24933         * explow.c: Likewise.
24934         * final.c: Likewise.
24935         * global.c: Likewise.
24936         * graph.c: Likewise.
24937         * local-alloc.c: Likewise.
24938         * loop.c: Likewise.
24939         * optabs.c: Likewise.
24940         * profile.c: Likewise.
24941         * recog.c: Likewise.
24942         * regclass.c: Likewise.
24943         * regmove.c: Likewise.
24944         * reload.c: Likewise.
24945         * reorg.c: Likewise.
24946         * resource.c: Likewise.
24947         * sched.c: Likewise.
24948         * stupid.c: Likewise.
24949         * config/1750a/1750a.c: Likewise.
24950         * config/a29k/a29k.c: Likewise.
24951         * config/arc/arc.c: Likewise.
24952         * config/arm/arm.c: Likewise.
24953         * config/arm/thumb.c: Likewise.
24954         * config/c4x/c4x.c: Likewise.
24955         * config/clipper/clipper.c: Likewise.
24956         * config/convex/convex.c: Likewise.
24957         * config/fx80/fx80.c: Likewise.
24958         * config/i860/i860.c: Likewise.
24959         * config/m68k/m68k.c: Likewise.
24960         * config/m88k/m88k.c: Likewise.
24961         * config/mips/mips.c: Likewise.
24962         * config/pdp11/pdp11.c: Likewise.
24963         * config/pyr/pyr.c: Likewise.
24964         * config/romp/romp.c: Likewise.
24965         * config/sh/sh.c: Likewise.
24966         * config/tahoe/tahoe.c: Likewise.
24967         * config/vax/vax.c: Likewise.
24968         * config/we32k/we32k.c: Likewise.
24969         * config/sparc/sparc.c: Include "function.h".
24970         (mem_min_alignment): Test current_function rather than
24971         regno_pointer_align.
24972         * config/pa/pa.c: Likewise.
24973         (compute_frame_size): Delete declaration of
24974         current_function_outgoing_args_size.
24975         * config/arc/arc.h (current_function_varargs): Delete declaration.
24976         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
24977         declaration.
24978         * config/i370/i370.h (current_function_outgoing_args_size): Delete
24979         declaration.
24980         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
24981         current_function_uses_pic_offset_table.
24982         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
24983         of current_function_returns_pointer.
24984         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24985         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24986         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24987         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24988         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24989         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24990         * config/m88k/m88k.c: Include "function.h"
24991         (call_used_regs, current_function_pretend_args_size,
24992         current_function_outgoing_args_size, frame_pointer_needed): Delete
24993         declarations.
24994         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
24995         declaration.
24996         * config/mips/mips.h (current_function_calls_alloca): Delete
24997         declaration.
24998         * config/mn10200/mn10200.h (current_function_needs_context,
24999         rtx_equal_function_value_matters): Delete declarations.
25000         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
25001         flag_pic): Delete declarations.
25002         * config/pa/pa.h (current_function_pretend_args_size,
25003         current_function_decl): Delete declarations.
25004         * config/pa/som.h (current_function_varargs): Delete declaration.
25005         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
25006         declaration.
25007         * config/pyr/pyr.h (current_function_pretend_args_size,
25008         current_function_args_size, current_function_calls_alloca): Delete
25009         declarations.
25010         * config/sh/sh.h (current_function_varargs): Delete declaration.
25011         * config/sparc/sparc.h (current_function_outgoing_args_size,
25012         current_function_calls_alloca, current_function_decl): Delete
25013         declarations.
25014         * config/spur/spur.h (current_function_pretend_args_size,
25015         current_function_calls_alloca): Delete declarations.
25016         * config/v850/v850.c (current_function_outgoing_args_size): Delete
25017         declaration.
25018         * config/vax/vms.h (current_function_name): Delete declaration.
25019         * gcse.c: Include "function.h".
25020         (current_function_name, current_function_calls_setjmp): Delete
25021         declarations.
25022         * haifa-sched.c: Include "function.h".
25023         (forced_labels): Delete declaration.
25024         * jump.c: Likewise.
25025         * reg-stack.c: Likewise.
25026         * reload1.c: Likewise.
25027         * genemit.c (main): Make generated file include function.h.
25028         * genoutput.c (output_prologue): Likewise.
25029
25030         * builtins.c (saveregs_value, apply_args_value): Delete variables.
25031         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
25032         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
25033         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
25034         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
25035         macros for some of them.
25036         (emit_filename, emit_lineno): Delete declarations.
25037         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
25038         regno_pointer_* variables through current_function.
25039         (gen_inline_header_rtx): Delete function.
25040         (save_emit_status): Delete function.
25041         (set_new_last_label_num): New function.
25042         (clear_emit_caches): New function.
25043         (restore_emit_status): Just clear last_labelnum and call
25044         clear_emit_caches.
25045         (get_last_insn_anywhere): Variable sequence_stack is now accessed
25046         through macro seq_stack.
25047         (add_insn_after): Likewise.
25048         (add_insn_before): Likewise.
25049         (remove_insn): Likewise.
25050         (pop_topmost_sequence): Likewise.
25051         (in_sequence_p): Likewise.
25052         (start_sequence_for_rtl_expr): Likewise.
25053         (start_sequence): Likewise, and likewise for
25054         sequence_rtl_expr/seq_rtl_expr.
25055         (push_topmost_sequence): Likewise.
25056         (end_sequence): Likewise.
25057         (init_virtual_regs): Now takes a "struct emit_status *" argument.
25058         All callers changed.  Store into that pointer instead of globals.
25059         (init_emit): Allocate emit elt of current_function.
25060         Changes for sequence_rtl_expr/sequence_stack renaming.
25061         Call clear_emit_caches instead of doing it in-line.
25062         Access regno_pointer_* variables through current_function.
25063         (init_emit_once) Don't clear sequence_stack.
25064
25065         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
25066         Delete variables.
25067         (arg_pointer_save_area): Delete declaration.
25068         (finish_expr_for_function): Renamed from init_queue; no longer static.
25069         (init_expr): Don't call init_queue.
25070         (save_expr_status, restore_expr_status): Delete functions.
25071         (expand_expr): Changes to reflect new layout of struct function.
25072         Don't access current_function_check_memory_usage when current_function
25073         is 0.
25074         * expr.h (forced_labels, save_expr_regs, saveregs_value,
25075         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
25076         current_function_outgoing_args_size, current_function_arg_offset_rtx,
25077         current_function_uses_const_pool, function_call_count,
25078         current_function_uses_pic_offset_table, nonlocal_labels,
25079         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
25080         current_function_check_memory_usage, nonlocal_goto_handler_slots,
25081         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
25082         declarations.
25083         (finish_expr_for_function): Declare.
25084         * flags.h (current_function_has_nonlocal_label,
25085         current_function_has_nonlocal_goto, current_function_is_thunk,
25086         current_function_has_computed_jump): Delete declarations.
25087         * flow.c (forced_labels): Delete declaration.
25088         * function.c (current_function_pops_args,
25089         current_function_returns_struct, current_function_returns_pcc_struct,
25090         current_function_needs_context, current_function_calls_setjmp,
25091         current_function_calls_longjmp, current_function_has_nonlocal_label,
25092         current_function_has_nonlocal_goto, current_function_is_thunk,
25093         current_function_has_computed_jump, current_function_calls_alloca,
25094         current_function_contains_functions, current_function_returns_pointer,
25095         current_function_epilogue_delay_list, current_function_args_size,
25096         current_function_pretend_args_size, current_function_arg_offset_rtx,
25097         current_function_outgoing_args_size, current_function_varargs,
25098         current_function_stdarg, current_function_args_info, cleanup_label,
25099         current_function_name, current_function_uses_const_pool,
25100         current_function_instrument_entry_exit, current_function_return_rtx,
25101         current_function_uses_pic_offset_table, nonlocal_labels,
25102         current_function_internal_arg_pointer, current_function_cannot_inline,
25103         current_function_check_memory_usage, function_call_count,
25104         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
25105         nonlocal_goto_stack_level, return_label, save_expr_regs,
25106         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
25107         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
25108         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
25109         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
25110         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
25111         Delete variables.
25112         (push_function_context_to): Don't save them.  Don't call
25113         save_storage_status, save_emit_status or save_expr_status.
25114         (pop_function_context_from): Don't restore them.  Don't call
25115         restore_storage_status or restore_expr_status.
25116         (get_func_frame_size): New function.
25117         (get_frame_size): Use it.
25118         (assign_outer_stack_local): Reflect some member name changes in struct
25119         function.
25120         (put_reg_into_stack): Likewise.
25121         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
25122         seq_rtl_expr.
25123         (fixup_var_refs): Likewise.
25124         (fix_lexical_addr): Likewise.
25125         (trampoline_address): Likewise.
25126         (prepare_function_start): Clear field inlinable of current_function.
25127         (init_function_for_compilation): New function.
25128         (expand_dummy_function_end): New function.
25129         (expand_function_end): Call finish_expr_for_function.
25130         * function.h (struct emit_status): New; fields moved here from struct
25131         function and from global variables.  Add accessor macros for some of
25132         the fields.
25133         (struct expr_status): Likewise.
25134         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
25135         (struct function): Add fields expr and emit, inlinable, inl_emit,
25136         original_arg_vector, original_decl_initial, inl_last_parm_insn,
25137         inl_max_label_num.  Add many comments.
25138         Add accessor macros for all elts of struct function that no longer
25139         have a global variable.
25140         (cleanup_label, return_label, frame_offset, tail_recursion_label,
25141         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
25142         stack_slot_list): Delete declarations.
25143         (get_func_frame_size): Declare.
25144         (save_expr_status, restore_expr_status, save_emit_status,
25145         save_storage_status, restore_storage_status): Delete declarations.
25146         (init_virtual_regs): Declare.
25147         * output.h (current_function_pops_args,
25148         current_function_returns_struct, current_function_returns_pcc_struct,
25149         current_function_needs_context, current_function_calls_setjmp,
25150         current_function_calls_longjmp, current_function_calls_alloca,
25151         current_function_has_nonlocal_label, current_function_varargs,
25152         current_function_has_computed_jump, current_function_returns_pointer,
25153         current_function_contains_functions, current_function_args_size,
25154         current_function_pretend_args_size, current_function_stdarg,
25155         current_function_outgoing_args_size, current_function_args_info,
25156         current_function_name, current_function_return_rtx,
25157         current_function_epilogue_delay_list,
25158         current_function_uses_const_pool, current_function_cannot_inline):
25159         Delete declarations.
25160         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
25161         regno_reg_rtx): Delete declaration.
25162         (REGNO_POINTER_FLAG): Delete macro.
25163         * stmt.c (expand_goto): Changes to reflect that some fields in struct
25164         function were renamed.
25165         * stor-layout.c (save_storage_status, restore_storage_status): Delete
25166         functions.
25167         * toplev.c: Include "function.h".
25168         (current_function_decl): Delete declaration.
25169         (compile_file): Call init_dummy_function_start and
25170         expand_dummy_function_end around some initializations that need to
25171         emit rtl.
25172         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
25173         Call init_function_for_compilation.
25174         * unroll.c: Include "function.h"
25175         (unroll_loop): Access regno_pointer_* variables through
25176         current_function.
25177
25178         * tree.h (struct tree_decl): Add elt f to saved_insns member.
25179         (DECL_SAVED_INSNS): use it.
25180         (expand_dummy_function_end): Declare.
25181         (init_function_for_compilation): Declare.
25182         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
25183         that it's no longer an INLINE_HEADER.
25184         (expand_call): Likewise.
25185         * integrate.c (finish_inline): Delete function.
25186         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
25187         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
25188         args.  Don't generate an INLINE_HEADER rtx, just return the arg
25189         vector.  All callers changed.
25190         (save_for_inline_copying):  Create a duplicate struct emit_status to
25191         hold the emit state for compiling the current function.  Use this and
25192         the other new fields in struct function that are for integration
25193         instead of an INLINE_HEADER.
25194         Use memcpy instead of bcopy.
25195         Store the current struct function in DECL_SAVED_INSNS of fndecl.
25196         (save_for_inline_nocopy): Similar changes, except no new emit_status
25197         is needed here.
25198         (expand_inline_function): Get information from function structure,
25199         not from an inline header rtx.
25200         (output_inline_function): Lose code to extract the necessary
25201         information from an inline header; simply put back the function
25202         structure into current_function.  Clear its inlinable elt.
25203         * rtl.def (INLINE_HEADER): Delete.
25204         * rtl.h: Delete all accessors for an INLINE_HEADER.
25205         (gen_inline_header_rtx): Delete declaration.
25206         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
25207         Delete declarations.
25208         (REGNO_POINTER_ALIGN): Delete.
25209         (clear_emit_caches): Declare.
25210         (set_new_last_label_num): Declare.
25211
25212 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
25213
25214         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
25215
25216         * except.c (expand_eh_region_start_for_decl): Always start a new block.
25217         * stmt.c (is_eh_region): Make sure current_function is present, too.
25218
25219 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
25220
25221         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
25222         for 64bit PA targets.
25223
25224         * pa.h (SELECT_SECTION): Define.
25225         * som.h (SELECT_SECTION): Delete.
25226
25227 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25228
25229         * alias.c (init_alias_analysis): Wrap call to
25230         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
25231
25232 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
25233
25234         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
25235         <sys/asm.h> contains an asm comment with an apostrophe
25236         * fixinc/inclhack.sh:  regen
25237         * fixinc/fixincl.x:  regen
25238
25239 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
25240
25241         * function.c (init_function_start): Clear prologue & epilogue.
25242         (prologue_epilogue_contains): New function.
25243         * alias.c (init_alias_analysis): Use it.
25244         * rtl.h (prologue_epilogue_contains): Declare it.
25245
25246 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
25247
25248         * jump.c (onlyjump_p): New function.
25249         * rtl.h: Declare it.
25250         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
25251         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
25252
25253 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
25254
25255         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
25256         to invert loops.  Simplify block scanning.
25257
25258 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
25259
25260         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
25261         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
25262
25263 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
25264
25265         * config/sparc/liteelf.h: New file to support sparclite-elf target
25266         * config/sparc/t-sp86x: New file to support sparc86x targets
25267         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
25268         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
25269         * configure.in: Support above target triplets
25270         * configure: Regenerated
25271
25272 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
25273
25274         * fixinc/server.c (server_setup): Do not prefix function used as
25275         parameter with `&'.
25276
25277 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
25278
25279         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
25280         Remove fp reg alternatives.
25281
25282 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
25283
25284         * Makefiin (TAROUTOPTS): Kill.
25285         (install-headers-tar): Use "xpf" for tar headerfile extraction
25286         * i370/x-oe (TAROUTOPTS): Delete.
25287         * m68k/x-apollo68 (TAROUTOPTS): Delete.
25288         * m68k/x-hp320 (TAROUTOPTS): Delete.
25289         * m68k/x-hp320g (TAROUTOPTS): Delete.
25290         * gcc.texi: Update bug reporting text.
25291
25292 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
25293
25294         * reg-stack.c (change_stack) Fixed problem with negative array index.
25295
25296 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
25297
25298         * extend.texi, install.texi: Fix spelling mistakes.
25299
25300         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
25301         (s-attrtab); No longer try to use pre-made insn-attrtab file.
25302         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
25303         PREMADE_ATTRTAB_MD.
25304         * mips/t-ecoff: Likewise.
25305         * mips/t-elf: Likewise.
25306         * mips/t-mips: Likewise.
25307         * mips/t-osfrose: Likewise.
25308         * mips/t-r3900: Likewise.
25309         * mips/t-svr3: Likewise.
25310         * mips/t-svr4: Likewise.
25311         * mips/t-ultrix: Likewise.
25312
25313         * gcc.texi: Document recommend means to provide software floating
25314         point libraries in libgcc.a
25315
25316 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
25317
25318         * c-lex.c (yylex): We can have a number with no digits.
25319
25320 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
25321
25322         * jump.c (delete_prior_computation): New function, broken
25323         out of delete_computation.  Check for side effects with
25324         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
25325         multi-word hard registers.
25326         (delete_computation): Use it.  Check for side effects with
25327         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
25328         missing REG_DEAD note for a register which is both set and
25329         used by an insn.
25330
25331 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
25332
25333         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
25334         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
25335         (ASM_FILE_START): Import _mcount with the right type.
25336         (ASM_DECLARE_FUNCTION_NAME): Define.
25337         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
25338         * pa.c (output_function_prologue): Always emit the function's label
25339         here.
25340         * pa.h (TEXT_SPACE_P): Define.
25341         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
25342         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
25343         * som.h (TEXT_SPACE_P): Delete.
25344         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
25345         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
25346
25347 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
25348
25349         * expr.c (emit_group_load): Allow src to be a CONCAT.
25350
25351 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25352
25353         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
25354         (___mulsi3): Use '!' comment character.
25355
25356 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25357
25358         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
25359
25360 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
25361
25362         * gcc.c: Update URLs and mail addresses.
25363         * gcc.texi: Likewise.
25364
25365 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
25366
25367         * rs6000.c (current_file_function_operand): Return zero for
25368         weak functions.
25369         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
25370         weak symbols.
25371         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
25372         for weak symbols.
25373
25374 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
25375
25376         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
25377         allocate space in the stack frame for the PIC register.
25378
25379 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
25380
25381         * m68k.md (xordi3, anddi3): These patterns are not available on
25382         the coldfire.
25383
25384 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
25385
25386         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
25387         (PUT_REAL): Likewise.
25388
25389 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25390
25391         * final.c (shorten_branches): Don't add an alignment for loops
25392         that have no label inside.
25393
25394 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25395
25396         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
25397         prototypes in macro HAVE_cmpstrsi.
25398
25399         * cpplib.c (cpp_get_token): Remove unused label `op3'.
25400
25401         * emit-rtl.c (operand_subword): Remove unused variable
25402         `bits_per_word'.
25403
25404         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
25405
25406         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
25407
25408 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
25409
25410         * cpphash.c (macroexpand): Delete leading whitespace when arg
25411         is concatenated before.
25412         (unsafe_chars): Correct test for whether + and - can extend a
25413         token.
25414
25415         * cppinit.c (cpp_start_read): Do dependencies for
25416         -include/-imacros files also.
25417
25418         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
25419         tokenizing non-directive lines.
25420         (cpp_expand_to_buffer): Temporarily disable no-output mode.
25421         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
25422         the input file.
25423
25424 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
25425
25426         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
25427
25428         * c-lex.c: Sync with C++ frontend.
25429         (linemode): New variable.
25430         (parse_float): imag, conversion_errno, and type are output only.
25431         (yylex): Adjust.  Move initial '.' case into main switch.
25432         Use linemode.
25433         (handle_generic_pragma): Just deal with tokens.
25434         (readescape): Use ISXDIGIT and ISGRAPH.
25435         * c-parse.in: Add END_OF_LINE token.
25436
25437         * c-lex.c (lang_init): Generalize.
25438         (nextchar): Remove.  Replace uses with UNGETC.
25439         (skip_white_space): Handle linemode here.  Optimize for cpplib.
25440         (skip_white_space_on_line): Remove.
25441         (extend_token_buffer_to): New fn.
25442         (extend_token_buffer): Use it.
25443         (read_line_number, check_newline): Just deal with tokens.
25444         (token_getch, token_put_back): New fns.
25445         (yylex): Use them.  More cpplib optimizations.  Simplify.
25446
25447 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
25448                           Jason Merrill  <jason@yorick.cygnus.com>
25449
25450         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
25451         (consume_string): Make this smart about USE_CPPLIB.
25452         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
25453         (yylex): Rewrite to be intelligent about USE_CPPLIB.
25454         Also, clean up cases where we redundantly set token_buffer[0].
25455         (read_line_number): New fn.
25456         (ignore_escape_flag): New variable.
25457
25458 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
25459
25460         * a29k/t-a29kbare: Fix some comments.
25461         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
25462         (FPBIT, DPBIT): Define.
25463         * a29k/t-vx29k: Likewise.
25464         * arc/t-arc: Likewise.
25465         * arm/t-arm-elf: Likewise.
25466         * arm/t-bare: Likewise.
25467         * arm/t-pe: Likewise.
25468         * arm/t-pe-thumb: Likewise.
25469         * arm/t-semi: Likewise.
25470         * arm/t-thumb: Likewise.
25471         * arm/t-thumb-elf: Likewise.
25472         * arm/t-thumb-linux: Likewise.
25473         * h8300/t-h8300: Likewise.
25474         * i960/t-i960: Likewise.
25475         * i960/t-vxworks960: Likewise.
25476         * m32r/t-m32r: Likewise.
25477         * mips/t-ecoff: Likewise.
25478         * mips/t-elf: Likewise.
25479         * mips/t-r3900: Likewise.
25480         * pa/t-pro: Likewise.
25481         * rs6000/t-aix43: Likewise.
25482         * rs6000/t-beos: Likewise.
25483         * rs6000/t-newas: Likewise.
25484         * rs6000/t-ppccomm: Likewise.
25485         * rs6000/t-rs6000: Likewise.
25486         * rs6000/t-winnt: Likewise.
25487         * rs6000/t-xnewas: Likewise.
25488         * rs6000/t-xrs6000: Likewise.
25489         * sh/t-sh: Likewise.
25490         * sparc/t-elf: Likewise.
25491         * sparc/t-sparcbare: Likewise.
25492         * sparc/t-sparclite: Likewise.
25493         * sparc/t-splet: Likewise.
25494         * v850/t-v850: Likewise.
25495         * mn10200/t-mn10200: Fix comments.
25496         * mn10300/t-mn10300: Likewise.
25497
25498         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
25499         dummy operand.  Allocate a new pseudo for the dummy operand.
25500         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
25501
25502         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
25503
25504 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
25505
25506         * configure: Rebuilt.
25507         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
25508
25509 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
25510
25511         * recog.c (preproces_constraints): Zero recog_op_alt before
25512         processing the constraints.
25513
25514         * arm.c (typedef minipool_node): Renamed from pool_node.
25515         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
25516         (add_minipool_constant): New function.
25517         (dump_minipool): New function.
25518         (find_barrier): Remove special case for getting the insn size of
25519         an insn that references the constant pool.
25520         (minipool_fixup): New structure.
25521         (push_minipool_barrier): New function.
25522         (push_minipool_fix): New function.
25523         (note_invalid_constants): New function.
25524         (add_pool_constant, dump_table, fixit, broken_move): Delete.
25525         (arm_reorg): Rewrite code to fix up the constant pool into a
25526         series of mini-pools embedded in the insn stream.
25527         (arm_output_epilogue): New function, made mainly from the body
25528         of output_func_epilogue.
25529         (output_func_epilogue): Move insn generation part of epilogue code
25530         to arm_output_epilogue.
25531         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
25532         * arm.md (pool_range): New attribute.
25533         (zero_extendqidi2): Add attribute pool_range.
25534         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
25535         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
25536         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
25537         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
25538         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
25539         (epilogue): New expand.
25540         (epilogue_insn): New insn.  Call arm_output_epilogue.
25541
25542         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
25543         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
25544
25545 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
25546
25547         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
25548
25549 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
25550
25551         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
25552
25553 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
25554
25555         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
25556
25557 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
25558
25559         * global.c: Fix comment.
25560
25561 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
25562
25563         * gcc.c (access_check): New static function.
25564         (find_a_file): Use it when searching a directory list.
25565         * collect2.c (find_a_file): Don't accept directories found when
25566         searching a directory list.
25567
25568 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
25569
25570         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
25571         function parameters with `&'.
25572         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
25573
25574 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
25575
25576         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
25577         or tidy_fallthru_edge if the last insn in the block is not
25578         an unconditional jump or a simple conditional jump.
25579
25580 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25581
25582         * Makefile.in (c-decl.o): Depends on defaults.h.
25583
25584 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
25585
25586         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
25587         PA1.1 and above.
25588         (CLASS_MAX_NREGS): Likewise.
25589
25590 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
25591
25592         * cse.c (cse_insn): Fix dumb thinko in last change.
25593
25594 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25595
25596         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
25597         "const char *".
25598
25599 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
25600
25601         * dwarf2out.c (add_location_or_const_value_attribute): Correct
25602         test for sizes of passed and declared parameter types.
25603
25604 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25605
25606         * fixincludes: Fix the return type of bsearch, char* -> void*.
25607
25608         * fixinc/inclhack.def: Likewise.
25609
25610 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
25611
25612         * invoke.texi (-fdump-translation-unit): New option.
25613
25614 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
25615
25616         * expr.h (PROMOTE_PROTOTYPES): Move ...
25617         * defaults.h: ... to here.
25618         * c-decl.c: Include defaults.h instead of expr.h.
25619         * c-typeck.c: Include defaults.h.
25620
25621 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
25622
25623         * toplev.h (errorcount): Declare.
25624         (warningcount): Likewise.
25625         (sorrycount): Likewise.
25626         * c-lex.c (errorcount): Don't declare.
25627         * dwarf2out.c (errorcount): Don't declare.
25628
25629 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
25630
25631         * config/libgloss.h: Add a note discouraging use with ELF.
25632         * configure.in: Don't use libgloss.h for ELF targets.
25633         Always use_collect2 on a.out targets.
25634
25635 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
25636
25637         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
25638         (force_to_mode, case ASHIFTRT): Add shiftrt label.
25639
25640 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25641
25642         * loop.c (strength_reduce): When doing biv->giv conversion, update
25643         reg note of NEXT->insn.
25644
25645 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25646
25647         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
25648
25649 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25650
25651         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
25652         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
25653         Ensure expr.h is included.
25654         * c-typecheck.c (convert_arguments): Ditto.
25655
25656         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
25657
25658         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
25659         * config/convex/convex.h: Ditto.
25660         * config/dsp16xx/dsp16xx.h: Ditto.
25661         * config/fx80/fx80.h: Ditto.
25662         * config/gmicro/gmicro.h: Ditto.
25663         * config/i370/i370.h: Ditto.
25664         * config/i386/i386.h: Ditto.
25665         * config/m32r/m32r.h: Ditto.
25666         * config/m68k/m68k.h: Ditto.
25667         * config/m88k/m88k.h: Ditto.
25668         * config/mips/mips.h: Ditto.
25669         * config/pa/pa.h: Ditto.
25670         * config/pyr/pyr.h: Ditto.
25671         * config/tahoe/tahoe.h: Ditto.
25672         * config/we32k/we32k.h: Ditto.
25673
25674         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
25675         based on arch size.
25676
25677         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
25678
25679         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
25680         from comment.
25681
25682         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
25683
25684 1999-08-02  Richard Henderson  <rth@cygnus.com>
25685
25686         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
25687         for the register spill block.
25688         (m32r_va_arg): New.
25689         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
25690         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
25691
25692         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
25693         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
25694         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
25695
25696 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25697
25698         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
25699         MAX_WCHAR_TYPE defined in sparc.h.
25700         * config/sparc/linuxaout.h: Likewise.
25701         * config/sparc/linux64.h: Likewise.
25702         Also default to -mvis if CPU is UltraSPARC.
25703
25704 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25705
25706         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
25707         (RTX_OK_FOR_OLO10): Likewise.
25708         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
25709         %lo(), allow it in addresses...
25710         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
25711         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
25712         does not make sense.
25713         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
25714         (sparc_output_scratch_registers): New function.
25715         (output_function_prologue, sparc_flat_output_function_prologue): Use
25716         it.
25717         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
25718         defined.
25719         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
25720         * configure.in: Add check for .register pseudo-op support in as and
25721         check for offsetable %lo().
25722         * acconfig.h: Add templates for the above checks.
25723         * configure: Regenerate.
25724
25725 1999-08-02  Richard Henderson  <rth@cygnus.com>
25726
25727         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
25728         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
25729         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
25730
25731 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25732
25733         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
25734         reg_biv_class.
25735
25736 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25737
25738         * config/float-sparc.h: New file.
25739         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
25740         sparc-*-linux-gnu and sparc64-*-linux*.
25741
25742 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25743
25744         * rs6000.c (rs6000_va_list): Type is an array.
25745         (rs6000_va_start): Don't doubly adjust for varargs.
25746         (rs6000_va_arg): Evaluate long long GPR adjustment.
25747
25748 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
25749
25750         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
25751         -maix64 and -maix32.
25752         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
25753         LINK_SPEC): Change appropriately.
25754         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
25755         (u_short_cint_operand): Likewise.
25756         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
25757         for 64-bit hosts.
25758         * rs6000/t-aix43 (MULTILIB): Change to -m64.
25759
25760         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
25761
25762 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
25763
25764         * rs6000/rs6000.c (num_insns_constant_wide): Correct
25765         for type promotion.
25766         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
25767         (non_add_cint_operand): Likewise.
25768         (logical_operand): Likewise.
25769         (non_logical_cint_operand): Likewise.
25770         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
25771         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
25772         (rs6000_select_rtx_section): Suppress warning.
25773         (small_data_operand): Suppress warning.
25774         (rs6000_got_register): Suppress warning.
25775         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
25776         type, so `J' is generally the wrong constraint for a SImode value;
25777         use `L' instead.
25778         (andsi3_internal2): Likewise.
25779         (andsi3_internal3): Likewise.
25780         (iorsi3_internal1): Likewise.
25781         (xorsi3_internal1): Likewise.
25782         (movsi): Likewise.
25783         (movsf_softfloat): Likewise.
25784         (scc insns): Likewise.
25785         (movsi+2): Preserve sign bits of SImode constant.
25786         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
25787         (movdf+1): Sign-extend properly.
25788         (movdi_32+1): Sign-extend properly.
25789         (scc insns): Sign-extend properly.
25790
25791         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
25792         K, L, and T.
25793
25794 1999-08-02  Richard Henderson  <rth@cygnus.com>
25795
25796         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
25797         -mcpu parsing code.
25798         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
25799         * alpha.md (all fp insns): Likewise.
25800
25801 1999-08-02  Nick Clifton  <nickc@cygnus.com>
25802
25803         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
25804         already defined.
25805
25806 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
25807
25808         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
25809         pic_load_label generator directly.
25810         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
25811         No longer a named pattern.
25812
25813 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
25814
25815         * explow.c (force_reg): Call force_operand if X does not
25816         satisfy general_operand.
25817
25818 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
25819
25820         * fix-header.c (main): When testing for CONTINUED, use string
25821         equality, not pointer equality.
25822
25823 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
25824
25825         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
25826
25827 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
25828
25829         * cse.c (cse_insn): Fix loop which deletes insns after a jump
25830         that has become an unconditional jump.
25831
25832         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
25833         (output_function_epilogue): Similarly.
25834
25835 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25836
25837         * tree.h (init_dummy_function_start): Declare.
25838
25839 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25840
25841         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
25842         last_expr_type, last_expr_value, block_start_count, block_stack,
25843         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
25844         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
25845         dynamically in stmt elt of struct function for each function.
25846         (struct nesting): Rename function_call_count elt to n_function_calls,
25847         target_temp_slot_level to block_target_temp_slot_level.  All users
25848         changed.
25849         (struct stmt_status): New structure definition.
25850         Add many accessor macros for stmt_status elements which previously
25851         were global variables.
25852         (init_stmt_for_function): Allocate stmt elt for current_function.
25853         Reflect that block_start_count was renamed to
25854         current_block_start_count.
25855         (save_stmt_status, restore_stmt_status): Delete functions.
25856         (preserve_subexpressions_p): Don't access loop_stack when outside
25857         a function.
25858         (expand_start_bindings): Reflect that block_start_count was renamed to
25859         current_block_start_count.
25860         (expand_fixup): Likewise.
25861         (expand_decl): Don't access block_stack when outside a function.
25862         (expand_decl_cleanup): Likewise.
25863         (expand_dcc_cleanup): Likewise.
25864         (expand_dhc_cleanup): Likewise.
25865         (expand_anon_union_decl): Likewise.
25866         (set_file_and_line_for_stmt): New function.
25867         (in_control_zone_p): New function.
25868
25869         * function.h (struct function): Add new elt stmt.
25870         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
25871         case_stack, nesting_stack, nesting_depth, block_start_count,
25872         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
25873         emit_lineno, goto_fixup_chain.
25874         (save_eh_status, restore_eh_status, save_stmt_status,
25875         restore_stmt_status): Delete declarations.
25876         * function.c (push_function_context_to): Don't call save_stmt_status.
25877         (pop_function_context_to): Don't call restore_stmt_status.
25878         * tree.h (in_control_zone_p): Declare.
25879         * rtl.h (set_file_and_line_for_stmt): Declare.
25880
25881         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
25882         call set_file_and_line_for_stmt.
25883
25884 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
25885
25886         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
25887         Also update copyright.
25888
25889 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25890
25891         * c-pragma.c: Don't include "except.h".
25892         * emit-rtl.c: Likewise.
25893         * stor-layout.c: Likewise.
25894         * tree.c: Likewise.
25895         * varasm.c: Likewise.
25896
25897         * flow.c: Include "function.h".
25898         * tree.h (init_dummy_function_start): Declare new function.
25899
25900         * except.h (struct eh_status): New structure.
25901         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
25902         been included.
25903         (eh_return_stub_label, ehstack, catchstack, ehqueue,
25904         catch_clauses, false_label_stack, caught_return_label_stack,
25905         protect_list, current_function_ehc): Add accessor macros for the
25906         corresponding fields in current_function->eh; delete declarations
25907         for all items that used to be declared here.
25908         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
25909         catch_clauses, false_label_stack, caught_return_label_stack,
25910         protect_list, current_function_ehc): Delete variables.
25911         (init_eh_for_function): Allocate current_function->eh.
25912         (save_eh_status, restore_eh_status): Delete functions.
25913
25914         * function.h (struct function): Add fields next_global and eh.
25915         Delete all exception handling related fields.
25916         * function.c (current_function): New variable.
25917         (all_functions): New variable.
25918         (push_function_context_to): Don't allocate a struct function,
25919         use current_function instead.  Call init_dummy_function_start when
25920         outside a function.  Clear current_function before returning.
25921         (pop_function_context_from): Restore current_function.
25922         Don't free the restored struct function.
25923         (prepare_function_start): New function.
25924         (init_dummy_function_start): New function.
25925         (init_function_start): Break out some code into prepare_function_start
25926         and call it here.
25927
25928         * stmt.c (save_stmt_status): Don't call save_eh_status.
25929         (restore_stmt_status): Don't call restore_eh_status.
25930
25931         * Makefile.in: Update dependencies.
25932
25933 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
25934
25935         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
25936         of depending on a magic constant value.  Update comments.
25937         (hppa_expand_prologue): Similarly.
25938
25939         * pa.md (reload_indi, reload_outdi): Allow any register for the
25940         original reload register.
25941
25942 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
25943
25944         * cccp.c (print_help): Change marcos to macros.
25945
25946 1999-07-30  Richard Henderson  <rth@cygnus.com>
25947
25948         * c-typeck.c (initializer_constant_valid_p): Move ...
25949         * c-common.c (initializer_constant_valid_p): ... here.  Use
25950         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
25951         of label addresses.
25952         * c-common.h (initializer_constant_valid_p): Declare.
25953         * c-tree.h (initializer_constant_valid_p): Remove.
25954
25955 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
25956
25957         * config/i386/sol2-c1.asm: Align the stack.
25958         * config/i386/sol2-gc1.asm: Likewise.
25959
25960 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
25961
25962         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
25963         -Asparclite for sparc86x.
25964         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
25965         sparc86x.
25966         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
25967
25968 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
25969
25970         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
25971         the user if using the non-default arch size in BI_ARCH configuration.
25972         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
25973
25974         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
25975         Fix patterns so that they actually match.
25976         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
25977         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
25978         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
25979         TARGET_HARD_MUL32.
25980         (mulsidi3): Reflect this in the expand.
25981         (smulsi3_highpart): Only on TARGET_ARCH32.
25982         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
25983         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
25984         (umulsidi3): Reflect this in the expand.
25985         (umulsi3_highpart): Only on TARGET_ARCH32.
25986         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
25987         don't require g0 to be zero.
25988         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
25989         ({,u}divsi3): New expands.
25990         ({,u}divsi3_sp64): New patterns.
25991         (after lshrdi3_v8plus): Four new patterns to help combiner
25992         optimizing nested mixed mode shifts.
25993
25994         * config/sparc/sparc.c (sparc_override_options): Use deprecated
25995         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
25996         speed things up. Don't use them by default on plain v9 in 64bit
25997         mode, according to what SPAMv9 sais.
25998
25999         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
26000         top 32 bits of %[og][0-7] in signal handlers.
26001         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
26002
26003 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
26004
26005         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
26006         (ashlsi3): Corresponding changes.
26007
26008         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
26009
26010 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
26011
26012         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
26013
26014 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26015
26016         * arm.h (Hint): Delete macro.
26017         Substitute HOST_WIDE_INT for Hint in some prototypes.
26018         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
26019
26020 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
26021
26022         * builtins.c (expand_builtin_setjmp): Use force_operand to
26023         make sure that the buffer address is in a suitable form to be
26024         passed to force_reg.
26025
26026 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
26027
26028         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
26029         them here.
26030
26031 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
26032
26033         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
26034         proper mode in the condition string.
26035         (icacheflush, dcacheflush): Remove modes from match_operands.
26036
26037         * pa.c (emit_move_sequence): Always convert scratch_reg to the
26038         proper mode before using it.
26039
26040         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
26041         pair.
26042
26043         * pa.c (store_reg): Do not call add_high_const generator directly.
26044         (load_reg, set_reg_plus_d): Likewise.
26045         * pa.md (add_high_const): No longer a named pattern.
26046
26047         * pa.c (legitimize_address): Consistently use Pmode rather than
26048         SImode.  Do not call gen_pic2_highpart directly anymore.
26049         * pa.md (pic2_highpart): No longer a named pattern.
26050         (pic2_lo_sum): Similarly.  Reformat to make more readable.
26051
26052         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
26053         needed.
26054
26055         * README: Update.
26056
26057 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26058
26059         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
26060
26061 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
26062
26063         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
26064         and tag the spill mems.
26065         (hppa_va_start): New.
26066         (hppa_va_arg): New.
26067         * pa.h (EXPAND_BUILTIN_VA_START): New.
26068         (EXPAND_BUILTIN_VA_ARG): New.
26069
26070 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
26071
26072         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
26073         and tag the spill mems.
26074         (mn10300_va_start): New.
26075         (mn10300_va_arg): New.
26076         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
26077         (EXPAND_BUILTIN_VA_ARG): New.
26078
26079 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
26080
26081         * mn10200.c (mn10200_va_arg): New.
26082         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
26083
26084 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
26085
26086         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
26087         rather than play with TREE_INT_CST_LOW.
26088
26089 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
26090
26091         * config/arm/telf.h: Include dbxelf.h.
26092         (CPP_PREDEFINES): Only define if not already defined.
26093         (ASM_IDENTIFY_GCC): Likewise.
26094         (SUBTARGET_EXTRA_SECTIONS): Likewise.
26095         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
26096         * config/arm/thumb.h (LINK_SPEC): Only define if not already
26097         defined.
26098         (DBX_DEBUGGING_INFO): Don't define.
26099         * config/arm/linux-telf.h: New file.
26100         * config/arm/linux-tgas.h: New file.
26101         * config/arm/t-thumb-linux: New file.
26102         * config/arm/uclinux-elf.h: New file.
26103         * config/arm/uclinux-telf.h: New file.
26104         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
26105         thumb-*-uclinux): New targets.
26106         * configure: Regenerate.
26107
26108 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
26109
26110         * pa.md (post_store, pre_load): New expanders.
26111         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
26112         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
26113         need to directly generate RTL for them.
26114         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
26115         changes.
26116
26117 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
26118
26119         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
26120         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
26121         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
26122         (secndary_reload_class): Make TARGET_ELF conditional compile.
26123         (print_operand_address): Similar.
26124         (output_toc): Print all values as hex.
26125         (get_issue_rate): Rearrange and add RS64A and PPC630.
26126         * rs6000.h (processor_type): Add RS64A and PPC630.
26127         (PROCESSOR_POWERPC64): New.
26128         (PROMOTE_MODE): Use word_mode.
26129         (RTX_COSTS): Add RS64A and PPC630.
26130         * rs6000.md (scheduling information): Add lmul and ldiv
26131         representing 64-bit integer multiply and divide.  Add rs64a and
26132         PPC630 information.
26133         (ashldi3): Add support for "rldic" instruction.
26134         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
26135
26136 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
26137
26138         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
26139         instead of V8 for sparclite86x in cpu_table.
26140
26141 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26142
26143         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
26144         output_file_directive.
26145
26146 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
26147
26148         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
26149         tree for op1, not the rtl.
26150
26151 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
26152
26153         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
26154         to m88k_va_start, leaving only the register spill.
26155         (m88k_build_va_list): New.
26156         (m88k_va_start): New.
26157         (m88k_va_arg): New.
26158         * m88k.h (BUILD_VA_LIST_TYPE): New.
26159         (EXPAND_BUILTIN_VA_START): New.
26160         (EXPAND_BUILTIN_VA_ARG): New.
26161
26162 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
26163
26164         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
26165         Rename from expand_builtin_saveregs.
26166         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
26167
26168 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
26169
26170         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
26171         for the register spill block.
26172         (i960_build_va_list): New.
26173         (i960_va_start): New.
26174         (i960_va_arg): New.
26175         * i960.h (BUILD_VA_LIST_TYPE): New.
26176         (EXPAND_BUILTIN_VA_START): New.
26177         (EXPAND_BUILTIN_VA_ARG): New.
26178         * i960.md (store_multiple): Use change_address on individul mems.
26179
26180 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
26181
26182         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
26183         an ARRAY_TYPE.
26184         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
26185         (expand_builtin_va_end): Evaluate arg for side effects.
26186         * c-common.c (c_common_nodes_and_builtins): Construct a
26187         va_list_arg_type_node to handle array decomposition to pointer.
26188
26189 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
26190
26191         * except.c (st_dynamic_cleanup): Use force_operand on the
26192         buffer's address.
26193
26194 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
26195
26196         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
26197         * c4x.c (c4x_va_arg): New.
26198
26199 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
26200
26201         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
26202         has manual_pop set.
26203
26204 1999-07-26  Nathan Sidwell  <nathan@acm.org>
26205
26206         * eh-common.h (__eh_matcher): Prototype correctly.
26207
26208 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
26209
26210         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
26211         (TARGET_SINGLE_PIC_BASE): Likewise.
26212         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
26213         definitions.
26214         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
26215         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
26216         (TARGET_OPTIONS): Add -mpic-register=N.
26217         (OUTPUT_INT_ADDR_CONST): New macro.
26218         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
26219         LEGITIMATE_PIC_OPERAND_P): Likewise.
26220         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
26221         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
26222         output_addr_const directly.
26223         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
26224         ARM port.
26225         (thumb_pic_register, thumb_pic_register_string): Declare.
26226
26227         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
26228         from arm.c.
26229         (label_mentioned_p): New function: Imported from arm.c.
26230         (legitimize_pic_address): New function: Imported from arm.c.
26231         (is_pic):New function: Imported from arm.c.
26232         (thumb_finalize_pic):New function: Imported from arm.c.
26233         (add_constant): Cope with PIC constants.
26234         (fixit): Cope with PIC constants.
26235         (output_return): Do not treat the PIC register as live if
26236         TARGET_SINGLE_PIC_BASE is true.
26237         (thumb_function_prologue): Do not treat the PIC register as live if
26238         TARGET_SINGLE_PIC_BASE is true.
26239         (thumb_expand_prologue): Do not treat the PIC register as live if
26240         TARGET_SINGLE_PIC_BASE is true.
26241         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
26242         TARGET_SINGLE_PIC_BASE is true.
26243         (thumb_print_operand): Accept '|'.
26244         (thumb_override_options): Process PIC options.
26245
26246         * config/arm/thumb.md (movsi): Support PIC.
26247         (call_insn): Change "i" constraint to "X".
26248         (call_value_insn): Likewise.
26249         (consttable_4, consttable_8, consttable_end): Set and clear
26250         "making_const_table" as appropriate.
26251         (pic_load_addr, pic_add_dot_plus_four): New insns.
26252
26253         * invoke.texi (Thumb Options): Fix spelling.  Document new
26254         options -msingle-pic-base and -mpic-register=.
26255
26256 1999-07-26  Andrew Haley  <aph@cygnus.com>
26257
26258         * config/m32r/initfini.c (__init): Use a full word immediate for
26259         __fini: this allows it to be placed in any memory region.
26260
26261         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
26262         -mmodel=medium.  This is OK for all memory models.
26263
26264 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
26265
26266         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
26267         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
26268
26269 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
26270
26271         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
26272         defined.
26273
26274         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
26275
26276 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
26277
26278         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
26279         (BUILD_VA_LIST_TYPE): New.
26280         (EXPAND_BUILTIN_VA_START): New.
26281         (EXPAND_BUILTIN_VA_ARG): New.
26282         * i860.c (output_delayed_branch): Disable.
26283         (output_delay_insn): Likewise.
26284         (i860_saveregs): New.
26285         (i860_build_va_list): New.
26286         (i860_va_start): New.
26287         (i860_va_arg): New.
26288         * i860.md: Disable all peepholes using output_delayed_branch.
26289         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
26290
26291 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
26292
26293         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
26294         (BUILD_VA_LIST_TYPE): New.
26295         (EXPAND_BUILTIN_VA_START): New.
26296         (EXPAND_BUILTIN_VA_ARG): New.
26297         * clipper.c (clipper_builtin_saveregs): Only dump registers.
26298         Return the address of the save area.
26299         (clipper_build_va_list): New.
26300         (clipper_va_start): New.
26301         (clipper_va_arg): New.
26302
26303 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
26304
26305         * arc.h (EXPAND_BUILTIN_VA_START): New.
26306         (EXPAND_BUILTIN_VA_ARG): New.
26307         * arc.c (arc_setup_incoming_varargs): Set alias set of
26308         varargs save area.
26309         (arc_va_start): New.
26310         (arc_va_arg): New.
26311
26312 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
26313
26314         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
26315         (BUILD_VA_LIST_TYPE): New.
26316         (EXPAND_BUILTIN_VA_START): New.
26317         (EXPAND_BUILTIN_VA_ARG): New.
26318         * alpha.c (alpha_builtin_saveregs): Delete.
26319         (alpha_build_va_list): New.
26320         (alpha_va_start): New.
26321         (alpha_va_arg): New.
26322
26323 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
26324
26325         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
26326         column zero.
26327         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
26328         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
26329
26330         * gcc.texi: More changes related to list conversion.
26331         * invoke.texi: Likewise.
26332
26333 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
26334
26335         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
26336         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
26337         (expand_builtin_next_arg): Accept ARGLIST not EXP.
26338         (stabilize_va_list): New function.
26339         (std_expand_builtin_va_start): New function.
26340         (expand_builtin_va_start): New function.
26341         (get_varargs_alias_set): New function.
26342         (std_expand_builtin_va_arg): New function.
26343         (expand_builtin_va_arg): New function.
26344         (expand_builtin_va_end): New function.
26345         (expand_builtin_va_copy): New function.
26346         (expand_builtin): Call them.
26347         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
26348         __builtin_{varargs_start,stdarg_start,end,copy}.
26349         (build_va_arg): New function.
26350         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
26351         (build_va_arg): Declare.
26352         * c-decl.c (ptr_type_node, va_list_type_node): New.
26353         * c-parse.gperf (__builtin_va_arg): New.
26354         * c-parse.in (VA_ARG): New token.
26355         (unary_expr): Recognize it.
26356         * expr.c (expand_expr): Expand VA_ARG_EXPR.
26357         * expr.h (std_expand_builtin_va_start): Declare.
26358         (std_expand_builtin_va_arg): Declare.
26359         (expand_builtin_va_arg): Declare.
26360         (get_varargs_alias_set): Declare.
26361         * tree.def (VA_ARG_EXPR): New.
26362         * tree.h (BUILT_IN_VARARGS_START): New.
26363         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
26364         (ptr_type_node, va_list_type_node): Declare.
26365         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
26366         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
26367         * m88k.h, m88k.c: Likewise.
26368         * mn10300.h, mn10300.c: Likewise.
26369         * pa.h, pa.c: Likewise.
26370         * rs6000.h, rs6000.c: Likewise.
26371         * sh.h, sh.c: Likewise.
26372         * sparc.h, sparc.c: Likewise.
26373
26374         * emit-rtl.c (operand_subword): Copy alias set.
26375         (change_address): Likewise.
26376
26377 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
26378
26379         * pa.c (compute_frame_size): Scan all the used callee saved registers,
26380         not just the first one.
26381
26382 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
26383
26384         * config/arm/arm.h (TARGET_SWITCHES): Add
26385         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
26386         (TARGET_OPTIONS): Add -mpic-register=.
26387         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
26388         (arm_pic_register_string): Declare.
26389         (NEED_PLT_GOT): Delete, replace with ...
26390         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
26391         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
26392         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
26393         * config/arm/arm.c (arm_override_options): Add new option
26394         -mpic-register=N.
26395         (arm_pic_register_string): New variable.
26396         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
26397         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
26398         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
26399         (output_return_instruction): Likewise.
26400         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
26401         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
26402         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
26403
26404         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
26405         mention of -msched-prolog.  Document new options -msingle-pic-base
26406         and -mpic-register=.
26407
26408 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
26409
26410         * haifa-sched.c (reemit_notes): Tidy.
26411         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
26412         haifa's routine.
26413
26414 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
26415
26416         * explow.c (trunc_int_for_mode): New function.
26417         (plus_constant_wide): Use it.
26418         * combine.c (simplify_and_const_int): Likewise.
26419         (merge_outer_ops): Likewise.
26420         (simplify_shift_const): Likewise.
26421         * cse.c (simplify_unary_operation): Likewise.
26422         (simplify_binary_operation): Likewise.
26423         * emit-rtl.c (operand_subword): Likewise.
26424         * rtl.h: Declare it.
26425
26426 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26427
26428         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
26429         (use NUM_REGS instead of NUM_INTS).
26430
26431 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26432
26433         * builtins.c: New file.
26434         * expr.c (saveregs_value, apply_args_value):  Delete definition,
26435         moved into builtins.c.
26436         (string_constant): No longer static.
26437         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
26438         apply_args_size, apply_result_size, result_vector,
26439         expand_builtin_apply_args, expand_builtin_apply,
26440         expand_builtin_return): Delete functions, moved into builtins.c.
26441         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
26442         * expr.h (saveregs_value, apply_args_value): Declare variables.
26443         (expand_builtin, string_constant): Declare functions.
26444         * Makefile.in: Update to build builtin.o.
26445
26446 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
26447
26448         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
26449         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
26450         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
26451         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
26452         false.
26453         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
26454         Define to zero.
26455
26456 1999-07-21  Michael Meissner  <meissner@cygnus.com>
26457
26458         * print-rtl.c (print_rtx): Print the names of the virtual
26459         registers.
26460
26461 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
26462
26463         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
26464         introduced in previous delta.
26465
26466 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26467
26468         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
26469         to avoid name clash.
26470
26471 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26472
26473         * c-lex.c (yylex) : Correct the test for overflow when lexing
26474         integer literals.
26475
26476 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
26477
26478         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
26479         (adjust_priority): Always call ADJUST_PRIORITY.
26480         (schedule_insn): Only put insns into the ready at cost 0.
26481         (schedule_block): Remove redundant initial sort.  Give clock_var
26482         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
26483         is not 0.
26484         * tm.texi (MD_SCHED_REORDER): Update docs.
26485
26486         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
26487         * sparc.c (ultra_reorder_called_this_block): Delete.
26488         (ultrasparc_sched_init): Don't set it.
26489         (ultrasparc_sched_reorder): Don't check it.
26490
26491 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
26492
26493         * rs6000.h (struct rs6000_args): Add sysv_gregno.
26494         * rs6000.c (init_cumulative_args): Init sysv_gregno.
26495         (function_arg_boundary): Align DFmode.
26496         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
26497         to get fp reg and stack overflow correct.
26498         (function_arg): Likewise.
26499         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
26500         (setup_incoming_varargs): Restructure for ABI_V4; use
26501         function_arg_advance to skip final named argument.
26502         (expand_builtin_saveregs): Properly unskip the last integer arg
26503         when doing varargs.  Adjust overflow location calculation.
26504
26505         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
26506         explicitly unsigned.
26507         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
26508         (__VA_GP_REGSAVE): Similarly.
26509         (__va_longlong_p): Delete.
26510         (__va_arg_type_violation): New declaration.
26511         (va_arg): Restructure.  Flag promotion errors.  Align double.
26512         TFmode passed by reference.
26513
26514         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
26515         in the HOST_BITS_PER_WIDE_INT > 32 case.
26516
26517 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
26518
26519         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
26520
26521 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
26522
26523         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
26524         * toplev.c (documented_lang_options): Add -fpreprocessed.
26525         * cpplib.h (struct cpp_buffer): Add preprocessed.
26526         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
26527         (cpp_start_read): Don't expand macros or emit an initial #line
26528         directive if -fpreprocessed.
26529
26530 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
26531
26532         * cpplib.h (struct cpp_buffer): Added manual_pop for
26533         better C++ tokenization.
26534         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
26535         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
26536         * c-common.c (cpp_token): Make non-static.
26537
26538 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26539
26540         * c-common.h: New file.
26541         * c-common.c (permanent_obstack): Delete unused declaration.
26542         (c_global_trees): New array.
26543         (c_common_nodes_and_builtins): New function; split off common code
26544         from init_decl_processing in both c-decl.c and cp/decl.c.
26545         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
26546         c_global_trees and accessor macros defined in c-common.h.
26547         Include c-common.h.
26548         * c-decl.c: Delete definitions for tree nodes that were replaced by
26549         c_global_trees.
26550         (init_decl_processing): Build void_list_node.
26551         Call c_common_nodes_and_builtins; delete code to generate the common
26552         builtins here.
26553         * objc/objc-act.c (build_module_descriptor): Rename variable
26554         void_list_node to avoid clash with c-common.h.
26555
26556         * Makefile.in: Update dependencies.
26557         * objc/Make-lang.in: Likewise.
26558
26559 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
26560
26561         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
26562         (UNIQUE_SECTION_P): Likewise.
26563         (UNIQUE_SECTION): Likewise.
26564
26565 1999-07-19  Linas Vepstas  <linas@linas.org>
26566
26567         * config/i370/README: New file.
26568         * config/i370/linux.h: New file.
26569         * config/i370/mvs.h: New file.
26570         * config/i370/oe.h: New file.
26571         * config/i370/t-linux: New file.
26572         * config/i370/t-mvs: New file.
26573         * config/i370/t-oe: New file.
26574         * config/i370/x-oe: New file.
26575         * config/i370/xm-linux.h: New file.
26576         * config/i370/xm-mvs.h: New file.
26577         * config/i370/xm-oe.h: New file.
26578
26579         * i370.c (label_node_t): Add first_ref_page, label_addr,
26580         label_first_ref, label_last_ref members.
26581         (mvs_need_base_reload): Renamed from mvs_label_emitted.
26582         (MAX_MVS_LABEL_SIZE): Define.
26583         (MAX_LONG_LABEL_SIZE): Define.
26584         (alias_node_t, alias_anchor, alias_number): New.
26585         (mvs_function_table): Reorder for EBCDIC.
26586         (ascebc, ebcasc): Unconditionally define.
26587         (i370_branch_dest, i370_branch_length): New functions.
26588         (i370_short_branch, i370_label_scan): New functions.
26589         (mvs_get_label): Renamed from mvs_add_label.  Search for
26590         an existing label before creating a new one.
26591         (mvs_add_label): New function.
26592         (mvs_get_label_page): New function.
26593         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
26594         over the entire list.
26595         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
26596         (mvs_check_page) [TARGET_ELF_ABI]: New function.
26597         (mvs_add_alias, mvs_need_alias): New functions.
26598         (mvs_get_alias, mvs_check_alias): New functions.
26599         (handle_pragma): New function.
26600         (mvs_function_check): New function.
26601         (unsigned_jump_follows_p): Search harder.
26602         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
26603         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
26604         * i370.h (TARGET_VERSION): Delete.
26605         (CPP_SPEC, CPP_PREDEFINES): Delete.
26606         (mvs_label_emitted): Delete.
26607         (TARGET_EBCDIC): Delete.
26608         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
26609         (HANDLE_PRAGMA): Define.
26610         (HARD_REGNO_NREGS): Handle complex modes.
26611         (HARD_REGNO_MODE_OK): Likewise.
26612         (CLASS_MAX_NREGS): Likewise.
26613         (RET_REG): Likewise.
26614         (EXTRA_CONSTRAINT): Define.
26615         (RETURN_IN_MEMORY): True for DImode.
26616         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
26617         (FUNCTION_PROFILER): Delete.
26618         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
26619         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
26620         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
26621         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
26622         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
26623         (ASM_FILE_START): Add "RMODE ANY".
26624         (ASM_OUTPUT_EXTERNAL): Check for aliases.
26625         (ASM_GLOBALIZE_LABEL): Likewise.
26626         (ASM_OUTPUT_LABELREF): Likewise.
26627         (ASM_OUTPUT_COMMON): Likewise.
26628         (PRINT_OPERAND): Handle 'K', 'W', default.
26629         (PRINT_OPERAND_ADDRESS): New.
26630         (Lots of defines): Add support for TARGET_ELF_ABI.
26631         * i370.md (attr length): New.  Define for all patterns.
26632         (*): Lots of tweeks to assembly output and constraints.
26633
26634 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
26635
26636         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
26637         Disable patterns performing SImode comparisons with SImode values
26638         if TARGET_POWERPC64 and instruction does not sign-extend or does
26639         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
26640         differ for signed quantities.
26641         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
26642         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
26643         (decrement_and_branch_on_count): Add 64-bit variant.
26644
26645 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26646
26647         * final.c (output_asm_insn): When searching for the matching string
26648         for a given dialect, don't run past the end of the list of
26649         alternatives if there are fewer alternatives in the template than
26650         dialects.
26651
26652 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
26653
26654         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
26655         Removed paragraph about compression of files and size limitation,
26656         duplicated in the FAQ.  Use gcc-patches for posting patches.
26657         * gcc.c (main): Updated URL with bug reporting instructions to
26658         gcc.gnu.org.  Removed e-mail address.
26659         * system.h (abort): Likewise.
26660
26661 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26662
26663         * Makefile.in (stmp-multilib-sub): Make the files extracted
26664         from $(LIBGCC1) writable.
26665
26666 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
26667
26668         * config/arm/aout.h: Reformat for improved readability.
26669
26670         * config/arm/arm.h: Reformat for improved readability.
26671         Replace uses of fprintf with asm_fprintf where appropriate.
26672         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
26673         function declaration assembler actions.
26674         (NUM_INTS): New macro: Convert from bytes to words.
26675         (NUM_REGS): New macro: Compute number of registers required to
26676         hold a quanitity of tyep MODE.
26677         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
26678         types.
26679         (NUM_ARG_REGS): New macro: The number of argument registers
26680         available.
26681         (ARG_REGISTER): New macro: Compute the register number of the Nth
26682         argument register.
26683         (LAST_ARG_REGNUM): New macro: The number of the last argument
26684         register.
26685         (SP_REGNUM): New macro: Register number of the stack pointer.
26686         (FP_REGNUM): New macro: Register number of the frame pointer.
26687         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
26688         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
26689         CUMULATIVE_ARGS so that it counts registers not bytes.
26690
26691         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
26692         TARGET_INTERWORK.
26693         Replace uses of fprintf with asm_fprintf where appropriate.
26694         (output_ascii_pseudo_op): Replace with version from thumb.c
26695
26696         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
26697
26698         * config/arm/elf.h (CPP_PREDEFINES): Replace with
26699         SUBTARGET_CPP_SPEC.
26700         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
26701         (ASM_FILE_START): Emit ASM_APP_OFF.
26702
26703 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
26704
26705         * pa.c (compute_frame_size): Round frame according to
26706         STACK_BOUNDARY rather than a hardwired value.
26707
26708         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
26709
26710         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
26711         of "1".
26712         * configure: Rebuilt.
26713
26714         * configure.in (hppa*-*-linux*): New configuration.
26715         * configure: Rebuilt.
26716         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
26717         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
26718         * pa/pa-linux.h: New file.
26719         * pa/t-linux: New file.
26720         * pa/xm-linux.h: New file.
26721
26722         * pa.c (hppa_legitimize_address): Change references from SImode to
26723         either Pmode or word_mode as appropriate.
26724         (emit_move_sequence, store_reg, load_reg): Likewise.
26725         (set_reg_plus_d, hppa_expand_prologue): Likewise.
26726         (output_mul_insn): Likewise.
26727         * pa.h (PROMOTE_MODE): Likewise.
26728         (INITIALZE_TRAMPOLINE): Likewise.
26729         (Pmode): Define to word_mode.
26730
26731         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
26732         value of 4.  Allocate 8 bytes for each FP register save.
26733         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
26734         value of 4.
26735         (hppa_expand_prologue): Likewise.
26736         * pa.h (PROMOTE_MODE): Likewise.
26737         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
26738         (FUNCTION_ARG_BOUNDARY): Likewise.
26739
26740         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
26741
26742         * pa.c (out_of_line_prologue_epilogue): Delete.
26743         (override_options): Remove -mspace related code.
26744         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
26745         (compute_frame_size): Only allocate space for register that
26746         actually need to be saved.
26747         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
26748         (TARGET_SWITCHES): Remove -mspace, -mno-space
26749         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
26750         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
26751         * pa/ee.asm, pa/ee_fp.asm: Delete.
26752
26753         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
26754
26755         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
26756         directive in column zero.
26757
26758 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
26759
26760         * m68k.c (output_function_prologue): Fix computation of save mask
26761         when generating PIC code.
26762
26763 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
26764
26765         * tree.c (build_type_attribute_variant): Move current_obstack restore
26766         after build_qualified_type call.
26767
26768 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
26769
26770         * configure.in: Use t-iris6, even with GNU LD.
26771         * config/mips/iris6gld.h: Fix typo in linker spec.
26772         * config/mips/t-iris6gld: Remove.
26773
26774 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
26775
26776         * rs6000.md (insv, extzv): Remove SImode dependence in named
26777         patterns.  Explicitly generate DImode RTL if PowerPC64 and
26778         operand is DImode.
26779         (insvdi): Reverse start and size in instruction template.
26780
26781 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
26782
26783         * invoke.texi: Typo fixes.
26784
26785 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
26786
26787         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
26788         handle at this time instead of silently generating incorrect code.
26789         (gen_imagpart): Likewise.
26790
26791         * reload.c (find_reloads): Emit a USE for a pseudo register without
26792         a hard register if we could not create an optional reload for the
26793         pseudo.
26794
26795 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26796
26797         * c-typeck.c (output_init_element, process_init_element):
26798         When advancing constructor_unfilled_fields for a RECORD_TYPE,
26799         check for nameless bit fields.
26800
26801 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
26802
26803         * regclass.c (scan_one_insn): Notice subregs that change the
26804         size of their operand.
26805         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
26806
26807 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
26808
26809         * configure.in (alpha*-*-*): Include alpha/t-ieee.
26810         * configure: Rebuilt.
26811         * alpha/t-ieee: New file.
26812
26813 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
26814
26815         * rs6000.c (find_addr_reg): Do not select r0 as an address
26816         register.
26817
26818 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
26819
26820         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
26821
26822 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
26823
26824         * rs6000.md (movsf): Do not force easy FP constants into memory.
26825
26826         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
26827         immed_double_const to ensure they are properly truncated then
26828         sign extended.
26829
26830 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
26831
26832         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
26833         always unless NO_DEBUG is used.  Compile this code
26834         unconditionally.
26835         (replace_symbols_in_block): Compile it unconditionally.
26836
26837 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
26838
26839         * configure.in (i?86-*-elf*): New target.
26840         * configure: Rebuilt.
26841         * i386/i386elf.h, i386/t-i386elf: New files.
26842
26843 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
26844
26845         * toplev.c (main): Don't complain about saying -gdwarf.
26846         (rest_of_compilation): Remove redundant code.
26847
26848 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
26849
26850         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
26851
26852 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
26853
26854         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
26855         "Li960R:", to avoid name clash.
26856
26857 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26858
26859         * loop.c (check_dbra_loop): When reversing a loop, delete all
26860         REG_EQUAL notes referencing the reversed biv except those which are
26861         for a giv based on it.
26862
26863 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
26864
26865         * version.c: Drop "gcc-" prefix from version #.
26866
26867 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
26868
26869         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
26870         the label if we're being verbose.
26871
26872 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
26873
26874         * m68k.c (output_function_prologue): Add pic register to mask
26875         if live and flag_pic.
26876         (output_function_epilogue): Likewise.
26877
26878 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
26879
26880         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
26881         directives in column zero.
26882
26883         * pa/elf.h (ASM_FILE_START): Define.
26884         * pa/som.h (ASM_FILE_START): Include .level directives.
26885         * pa/hpux10.h (ASM_FILE_START): Delete.
26886         * pa/hpux11.h (ASM_FILE_START): Delete.
26887
26888         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
26889
26890 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26891
26892         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
26893         when reload_out equals reload_in.
26894
26895 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
26896
26897         * invoke.texi (Spec Files): New node: Describe the contents of
26898         spec files.
26899
26900 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
26901
26902         * invoke.texi (DEC Alpha Options): Put @end table at
26903         beginning of line, to avoid confusing texi2html.
26904
26905 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
26906
26907         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
26908         introduced in previous delta.
26909
26910 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26911
26912         * reload1.c (gen_reload): When synthesizing a 3 operand add
26913         sequence, improve test for when to reload OP1 into the reload
26914         register instead of OP0.
26915
26916 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
26917
26918         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
26919
26920 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
26921
26922         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
26923         string literal.
26924
26925 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
26926
26927         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
26928         (va_dcl): Use __builtin_va_alist_t.
26929
26930 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
26931
26932         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
26933         on the permanent_obstack.
26934         * dwarfout.c (output_type): Likewise.
26935
26936 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26937
26938         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
26939         Merged from c-typeck.c and cp/typeck.c.
26940         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
26941         Merged into c-common.
26942
26943 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
26944
26945         * c-lex.c (errorcount): Declare it.
26946         (finish_parse): Update errorcount when using CPPLIB.
26947
26948 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
26949
26950         * fixinc/inclhack.def(end_else_label): Double the backslash so
26951         sed gets a chance to see it.
26952         * fixinc/inclhack.sh: regen
26953         * fixinc/fixincl.x: regen
26954
26955 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
26956
26957         Add framework to support armv5 architecture when it becomes
26958         available:
26959
26960         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
26961         (arm_arch5): New variable.
26962         (all_architectures): Add armv5 line.
26963         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
26964         -march=armv5 is specified on the command line.
26965         (arm_arch5): Export this variable.
26966         * invoke.texi: Document new string accepted by -march= switch for
26967         ARM ports.
26968
26969         * config/arm/arm.h: Replace use of constant 12 as a register
26970         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
26971         * config/arm/arm.c: Replace use of constant 12 as a register
26972         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
26973
26974         * config/arm/elf.h: Tidy up.
26975         * config/arm/coff.h: Tidy up.
26976
26977 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
26978
26979         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
26980         * gcc/config/mips/t-iris6gld: New file.
26981         * gcc/config/mips/iris6gld.h: Likewise.
26982
26983 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26984
26985         * c-decl.c (widest_integer_literal_type_node,
26986         widest_unsigned_literal_type) : New.
26987         (init_decl_processing): Handle/use the two new types.
26988         * c-common.c (type_for_size,type_for_mode) : Same.
26989         * c-lex.c (yylex) : Same.
26990         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
26991         Same.
26992         * c-tree.h (widest_integer_literal_type_node,
26993         widest_unsigned_literal_type) : New.
26994
26995 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
26996
26997         * dwarfout.c (field_byte_offset): Correctly compute the object's
26998         byte offset for the first bit of a field which crosses an alignment
26999         boundary on a !BYTES_BIG_ENDIAN target.
27000
27001 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
27002
27003         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
27004         ntohs.
27005
27006 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
27007                           Jeff Law <law@cygnus.com>
27008
27009         * ginclude/varargs.h (va_dcl): Use word_mode for type of
27010         __builtin_va_list.
27011
27012         * except.c: Include intl.h.
27013         (expand_eh_return): Set current_function_cannot_inline.
27014         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
27015         * function.h (struct function): Add eh_return_stub_label.
27016         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
27017         * Makefile.in (except.o): Depend on intl.h.
27018
27019 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
27020
27021         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
27022         same as offsettable in cases 1 and 2.
27023
27024 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
27025
27026         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
27027         (extlh, extwh): Likewise.
27028
27029 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27030
27031         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
27032
27033 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
27034
27035         * configure.in: Add arm-pe and thumb-pe targets.
27036         * configure: Regenerate.
27037
27038         * thumb.c (arm_naked_function_p): New function: Determines if
27039         a function is naked (has no gcc generated prologue/epilogue).
27040         (is_called_in_ARM_mode): Return true if the func has the
27041         interfacearm attribute.
27042         (output_return): Do not generate a return for naked functions.
27043         (thumb_function_prologue): Do not generate a prologue for
27044         naked functions.
27045         (thumb_expand_prologue): Do not generate a prologue for naked
27046         functions.
27047         (thumb_expand_epilogue): Do not generate an epilogue for naked
27048         functions.
27049         (arm_valid_machine_decl_attribute): New function, copied from
27050         arm.c:  Permit naked and interfacearm attributes.
27051
27052         * config/arm/pe.c: New file: Support code for arm-pe target.
27053         * config/arm/pe.h: New file: Header file for arm-pe target.
27054         * config/arm/tpe.h: New file: Header file for thumb-pe target.
27055         * config/arm/t-thumb-pe: New file: Makefile fragment for
27056         thumb-pe target.
27057
27058 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
27059
27060         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
27061         -fPIC or -fpic is specified.
27062
27063 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
27064
27065         * expr.c (emit_block_move): Use copy_to_mode_reg for
27066         !TARGET_MEM_FUNCTIONS case too.
27067
27068         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
27069         appropriate.
27070         * configure: Rebuilt.
27071         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
27072         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
27073         definitions made redundant by dbxelf.h inclusion.  Delete
27074         lots of definitions related to assembly output that are
27075         specific to the SOM object format.
27076         * pa.c (output_function_prologue): Do not emit the function's
27077         name for OBJ_ELF.
27078         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
27079         * pa-pro.h: Deleted.
27080         * som.h: New file with SOM specific definitions.
27081         * elf.h: New file with ELF specific definitions.
27082
27083         * elfos.h (const_section): Output a tab before assembler directives.
27084         (ctors_section, dtors_section): Likewise.
27085         (ASM_OUTPUT_SECTION_NAME): Likewise.
27086
27087         * pa/pa1.h: Delete unused file.
27088
27089 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
27090
27091         * configure.in (hppa*-hp-hpux11*): New configuration.
27092         * configure: Rebuilt.
27093         * pa/pa-hpux11.h: New file.
27094         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
27095         command line.
27096
27097         * mips.md (leasi, leadi): New patterns.
27098
27099         * expr.c (emit_block_move): Properly handle case where one of the
27100         block move arguments has a queued increment or decrement.
27101         (clear_storage): Similarly.  Fix formatting goof.
27102
27103 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
27104
27105         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
27106         semicolon from the BSD VA_LIST replacement expression.
27107
27108         * fixinc/inclhack.sh: regen
27109         * fixinc/fixincl.x: regen
27110
27111         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
27112         now use the fixincl program.
27113
27114 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
27115
27116         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
27117         case.  Also make the PIC register call_used.
27118
27119         * m68k.h (FINALIZE_PIC): Delete.
27120         * m68k.c (finalize_pic): Delete.
27121
27122 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
27123
27124         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
27125         to memory.
27126
27127 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
27128
27129         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
27130
27131 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
27132
27133         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
27134
27135 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
27136
27137         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
27138
27139 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
27140
27141         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
27142
27143 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
27144
27145         * rs6000.c (output_toc): Always use hex values for floating-point
27146         constants.  Store single-precision values in upper-half of TOC
27147         entry in 64-bit mode.
27148         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
27149         to final constraints.
27150         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
27151         (fctiwz): Improve accuracy of RTL for pattern.
27152
27153 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27154
27155         * expr.c (expand_expr): Allow RTL_EXPR's through the
27156         MAX_INTEGER_COMPUTATION_MODE checks.
27157
27158 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
27159
27160         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
27161         such that MASK_SUPPORT_ARCH is not negative.
27162
27163 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
27164
27165         * loop.c (verify_dominator): Properly handle ADDR_VEC and
27166         ADDR_DIFF_VEC insns that appear inside loops.
27167
27168 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
27169                           Jeff Law <law@cygnus.com>
27170
27171         * rs6000.md (movdf_hardfloat32): Revert previous patch.
27172         Handle LO_SUM the same as offsettable in cases 1 and 2.
27173         * rs6000.c (find_addr_reg): Revert previous patch.
27174
27175 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
27176
27177         * system.h (strstr): New external function declaration.
27178         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
27179         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
27180         * config.in, configure: Rebuilt.
27181
27182 1999-06-24  Tom Tromey  <tromey@cygnus.com>
27183
27184         * gcc.c (main): Read user-specified specs files after computing
27185         additional startfile_prefixes.
27186
27187 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
27188
27189         Revert these two patches:
27190
27191         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27192         * loop.c (strength_reduce): When doing biv->giv conversion, update
27193         reg note of NEXT->insn.
27194
27195         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27196         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
27197         reg_biv_class.
27198         (recombine_givs): Set ix field after sorting.
27199
27200 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27201
27202         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
27203         for the parts of an UNSPEC / UNSPEC_VOLATILE.
27204
27205 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
27206
27207         *fixinc/inclhack.def:  Add fix development commentary
27208         (read_ret_type): reactivate and add selection clause
27209         (zzz_*): tweak output file name to match what is used in hackshell.tpl
27210         *fixinc/{fixincl.x|inclhack.sh}: regen
27211
27212 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
27213
27214         * expr.c (expand_expr): STRIP_NOPS before checking against
27215         MAX_INTEGER_COMPUTATION_MODE
27216         (check_max_integer_computation_mode): Likewise.
27217
27218 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
27219
27220         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
27221
27222 1999-06-22  Jim Wilson  <wilson@cygnus.com>
27223
27224         * expr.c (store_expr): When target is a promoted subreg, return a
27225         promoted subreg as a result.
27226
27227 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
27228
27229         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
27230         coding standards.
27231         (dwarf2out_define): Mark unused parameters appropriately.
27232         (gen_unspecified_parameters_die): Ditto.
27233         (gen_subprogram_die): Fix signed/unsigned warnings.
27234         (gen_variable_die): Ditto.
27235
27236 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
27237
27238         * fixinc/inclhack.def(end_else_label): combined else_label
27239         and endif_label and fixed the sed expression.
27240         *fixinc/{fixincl.x|inclhack.sh}: regen
27241
27242 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
27243
27244         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
27245         'x' when handling non-offsettable addresses
27246
27247 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
27248
27249         * final.c (shorten_branches): Don't try to split an insn that has
27250         been deleted.
27251
27252 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
27253
27254         * config/mips/mips.c (symbolic_expression_p): New function.
27255         (mips_select_rtx_section): Put symbolic expressions in the
27256         data section, not the read-only data section.
27257
27258 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
27259
27260         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
27261
27262 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
27263
27264         * collect2.c (main): Log frame table count.
27265         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
27266         (scan_prog_file) [COFF]: Handle frame tables.
27267
27268         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
27269         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
27270         * alpha/elf.h: Undef them again.
27271         * alpha/vms.h: Remove their definitions.
27272
27273 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27274
27275         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
27276         remove the clobber of r0 and change the REG_UNUSED note to
27277         REG_INC.
27278
27279 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
27280
27281         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
27282         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
27283         fits in HOST_WIDE_INT and one uses union to access a long constant
27284         as double.
27285
27286 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
27287
27288         * sparc.c (sparc_override_options): Don't allow profiling for
27289         code models other than medlow.
27290         (sparc_function_profiler): New function from old FUNCTION_PROFILER
27291         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
27292         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
27293         (sparc_block_profiler): Likewise.
27294         (sparc_function_block_profiler_exit): Likewise.
27295         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
27296         (FUNCTION_BLOCK_PROFILER): Likewise.
27297         (BLOCK_PROFILER): Likewise.
27298         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
27299         (MCOUNT_FUNCTION): New.
27300         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
27301         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
27302         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
27303         (MCOUNT_FUNCTION): New.
27304         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
27305         (BLOCK_PROFILER): Delete.
27306         (MCOUNT_FUNCTION): New.
27307
27308 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
27309
27310         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
27311
27312 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
27313
27314         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
27315         Add the macros.
27316
27317         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
27318         Ditto.
27319
27320         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
27321         Ditto.
27322
27323         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
27324         Ditto.
27325
27326 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
27327
27328         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
27329         types.
27330
27331 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
27332
27333         * i386/djgpp.h (LIB_SPEC): New.
27334         (STARTFILE_SPEC): New.
27335
27336         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
27337
27338 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
27339
27340         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
27341         compiler flags.
27342
27343         * system.h (WSTOPSIG): New macro.
27344
27345 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
27346
27347         * c-pragma.c (push_alignment): Don't ignore alignments greater than
27348         4 bytes.
27349         (insert_pack_attributes): Take into account member natural
27350         alignment.
27351
27352         * i386/winnt.c (exports_head): New static variable.
27353         (i386_pe_record_exported_symbol): New function.
27354         (i386_pe_asm_file_end): Use.
27355         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
27356         symbols to be emitted at end of assembly.
27357         (ASM_DECLARE_OBJECT_NAME): Likewise.
27358         (ASM_DECLARE_FUNCTION_NAME): Likewise.
27359
27360         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
27361         -iwithprefix.
27362
27363 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
27364
27365         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
27366         in last change.
27367
27368 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
27369
27370         * haifa-sched.c (sched_analyze_1): Use free_list instead of
27371         zapping reg_last_uses directly.
27372         (sched_analyze_2, sched_analyze_insn): Likewise.
27373         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
27374
27375 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
27376
27377         * rs6000.md (movdf_hardfloat32): Use worst case insn length
27378         attributes for cases 1 and 2.
27379
27380 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
27381
27382         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
27383         instead of set.
27384
27385 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
27386
27387         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
27388
27389 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
27390
27391         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
27392         PIC_OFFSET_TABLE_REGNUM for general alloaction.
27393         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
27394         must be stacked if it is used for PIC accesses.
27395         * arm.c (use_return_insn): Handle PIC register specially.
27396         (output_return_instruction): Likewise.
27397         (output_func_{prologue,epilogue}): Likewise.
27398         (output_expand_prologue): Likewise.
27399
27400         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
27401         (*strsi_predec): Renamed from *strqi_predec.
27402         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
27403         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
27404
27405         * arm.c (arm_override_options): Remove warning about PIC code
27406         not being supported.
27407
27408 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
27409
27410         * rs6000.c (find_addr_reg): New function.
27411         * rs6000.h (find_addr_reg): Declare.
27412         (offsettable_addr_operand): Delete.
27413         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
27414         from and stores to GPRs.
27415
27416 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
27417
27418         * alpha.c (alpha_expand_block_move): Use get_insns rather than
27419         gen_sequence as argument to emit_no_conflict_block.
27420
27421 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27422
27423         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
27424         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
27425         *fixinc/fixincl.x: regen
27426         *fixinc/inclhack.sh: regen
27427
27428 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
27429
27430         * added support for -mpcrel (PC relative addressing for m68k)
27431         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
27432         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
27433         * m68k.c (print_operand_address): Handle 32-bit PIC case.
27434         (comments for general_src_operand): Add some explanation
27435         about EXTRA_CONSTRAINTS.
27436         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
27437         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
27438         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
27439         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
27440         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
27441         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
27442         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
27443         if not already set.
27444         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
27445         * m68k.h (TARGET_PCREL): New target flag.
27446         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
27447         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
27448         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
27449         contains a SYMBOL_REF.  Relax this constraint during reload, since
27450         we want to use the predicates, not reload's built-in concept of a
27451         valid memory address, to control what insns need reloading.
27452         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
27453         operands (essentially 'g', 'm', and 's' under normal circumstances).
27454         * m68k.c (print_operand): Cause printing of pc-relative addresses
27455         to include pc register.
27456         (print_operand_address): Ditto.
27457         (general_src_operand): Accept operands that are not only
27458         general_operands, but are also valid when used as a pc-relative
27459         source.
27460         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
27461         (memory_src_operand): Similar, for memory_operands.
27462         (pcrel_address): New predicate to accept the special case of a
27463         pc-relative address.
27464         * m68k.md (many patterns): Rewrite common SImode, HImode, and
27465         QImode insns to accept *_src_operand instead of *_operand where
27466         pc-relative operands can fit.  For example, a pc-relative operand
27467         can be used as a memory source operand for addsi3, but not as a
27468         memory destination.
27469         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
27470
27471 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
27472
27473         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
27474         .thumb_set pseudo op to mark aliases of thumb functions.
27475
27476 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
27477
27478         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
27479         preference to ASM_OUTPUT_DEF, if it is defined.
27480
27481         * tm.texi: Document new, optional target macro
27482         ASM_OUTPUT_DEF_FROM_DECLS.
27483
27484 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27485
27486         * fixincludes: ISCNTL patch
27487         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
27488         (dgux_int_varargs): new for DG/UX
27489         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
27490
27491 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
27492
27493         * invoke.texi (ia32 options): Fix typo.
27494
27495 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27496
27497         * loop.c (strength_reduce): When doing biv->giv conversion, update
27498         reg note of NEXT->insn.
27499
27500 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
27501
27502         * loop.c (move_movables): Note issues with replacing REGs with
27503         SUBREGs.
27504         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
27505
27506 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
27507
27508         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
27509
27510         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
27511         the reference to `mcount' was not correct for the ELF on FreeBSD.
27512
27513 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27514
27515         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
27516         reg_biv_class.
27517
27518         (recombine_givs): Set ix field after sorting.
27519
27520 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
27521
27522         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
27523         to safe to extract a subword out of a REG.
27524
27525 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27526
27527         * sh.md (mulsi3): Don't add a no-op move at the end.
27528
27529 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27530
27531         * cse.c (cse_insn): Don't put hard register source into tables for
27532         the last insn of a libcall.
27533
27534 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27535
27536         * loop.c (strength_reduce): Insert sets of derived givs at every
27537         biv increment, even if it's the only one.
27538
27539 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
27540
27541         * dwarfout.c (add_incomplete_type): New fn.
27542         (output_type): Call it.
27543         (retry_incomplete_types): New fn.
27544         (dwarfout_finish): Call it.
27545
27546         From Eric Raskin <ehr@listworks.com>:
27547         (output_type): Output types for bases.
27548
27549 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
27550
27551         * mips.c (mips_output_conditional_branch): Add `break'
27552         between `default' label and `close braces'.
27553
27554 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
27555
27556         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
27557         specifications and make it realistic.
27558         (LIB_SPEC): Likewise.
27559
27560 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
27561
27562         * config/mips/mips.c (mips_secondary_reload_class): Check for
27563         (PLUS (SP) (REG)) and return appropriate register class.
27564         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
27565         Handle (PLUS (SP) (REG)).
27566         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
27567         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
27568         of emit_insn for tablejump.
27569
27570 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
27571
27572         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
27573         asm_fprintf format string by itself.
27574         (output_function_profiler): Likewise.
27575
27576 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
27577
27578         * combine.c (simplify_logical, case AND): Only call
27579         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
27580         or the constant is positive.
27581
27582 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
27583
27584         * configure.in: Fix typo in rs6000-ibm-aix4 case.
27585         * configure: Regenerate.
27586
27587 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
27588
27589         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
27590         require a sub-version #.
27591         * configure: Rebuilt.
27592
27593 1999-06-14  Robert Lipe  (robertlipe@usa.net)
27594
27595         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
27596
27597 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
27598
27599         * c-typeck.c (process_init_element): Detect excess elements in
27600         char array initializer.
27601
27602 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
27603
27604         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
27605
27606 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
27607
27608         * invoke.texi (Option Summary): Add -fpermissive flag.
27609
27610 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
27611
27612         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
27613         that require PIC code sequences.
27614
27615 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
27616
27617         * configure.in: Add new target: thumb-elf.
27618         * configure: Regenerate.
27619         * config/arm/t-thumb-elf: New file: Makefile fragment for
27620         thumb-elf build.
27621         * config/arm/telf.h: New file: Header file for thumb-elf
27622         build.
27623
27624 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
27625
27626         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
27627         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
27628         initializers is some circumstances.
27629
27630         * fixinc/inclhack.def (endif_label): Add additional selector for
27631         more bogus stuff after #endif statements.
27632         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
27633
27634 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
27635
27636         * i386/cygwin.h (SET_ASM_OP): Define.
27637
27638 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
27639
27640         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
27641
27642 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27643
27644         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
27645         latter.
27646
27647         * sh.md (ic_invalidate_line_i): Remove second alternative.
27648
27649 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27650
27651         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
27652         test for the presence of valid prototypes.  Delete bypass expr.
27653         (ioctl_fix_ctrl): Correct the selection expression.
27654         (no_double_slash): Correct quoting rules
27655         *fixinc/fixincl.x: regen
27656         *fixinc/inclhack.sh: regen
27657
27658 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
27659
27660         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
27661
27662 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
27663
27664         * rs6000.md (movsi_got_internal_mem): Delete.
27665         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
27666         (GOT_TOC_REGNUM): Delete.
27667         (PIC_OFFSET_TABLE_REGNUM): Define.
27668         (FINALIZE_PIC): Disable.
27669         * rs6000.c (rs6000_got_register): New code for fixed pic register.
27670         (rs6000_replace_regno): Delete.
27671         (rs6000_finalize_pic): Likewise.
27672         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
27673
27674 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27675
27676         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
27677         is a note; use <= for the compare; advance P while it is
27678         a NOTE.
27679
27680 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
27681
27682         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
27683         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
27684
27685         * varasm.c (remove_from_pending_weak_list): Verify t->name
27686         is non-NULL before passing it to strcmp.
27687
27688 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27689
27690         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
27691         the typed arguments are not part of a comment
27692         (ioctl_fix_ctrl): Added a purpose comment
27693         *fixinc/fixincl.x: regenerate
27694         *fixinc/inclhack.sh: regenerate
27695
27696 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
27697
27698         * invoke.texi: Add C4x invocation docs.
27699
27700 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
27701
27702         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
27703         Define new macros.
27704         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
27705         TARGET_EXPOSE_LDP.
27706         (c4x_legitimize_reload_address): New function.
27707         * config/c4x/c4x.md: Update docs.
27708
27709 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
27710
27711         * fixincludes: Avoid removing '.'.
27712         * fixinc/fixinc.svr4: Likewise.
27713         * fixinc/fixinc.winnt: Likewise.
27714         * fixinc/inclhack.tpl: Likewise.
27715         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
27716
27717 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27718
27719         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
27720         pattern.
27721         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
27722
27723 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
27724
27725         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
27726         correctly.
27727
27728 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
27729
27730         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
27731         * configure: Regenerate.
27732
27733 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
27734
27735         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
27736         values.
27737
27738 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
27739
27740         * fixinc/inclhack.def (avoid_bool): Also catch
27741         "typedef [unsigned] int bool".
27742         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
27743
27744         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
27745         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
27746         * configure: Rebuilt.
27747
27748 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
27749
27750         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
27751         such that we can override its definitions if necessary.
27752         (CPP_SPEC): New define.  Support processor specific predefines via
27753         %(cpp_cpu).
27754         (CC1_SPEC): New define.  Support processor specific compiler
27755         options via %(cc1_cpu).
27756         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
27757         -static.
27758
27759 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27760
27761         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
27762         between sed's -e flag, and the open-quote following it.
27763         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
27764
27765 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
27766                           Jeffrey A Law  (law@cygnus.com)
27767
27768         * varasm.c (assemble_start_function): Remove the function
27769         from the pending weak decls list when we define a function.
27770         (assemble_variable): Similarly for variables.
27771         (weak_finish): Ignore items on the list with a NULL name.
27772         (remove_from_ending_weak_list); New function to "remove" an item
27773         from the pending weak declarations list.
27774
27775 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
27776
27777         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
27778
27779 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
27780
27781         * c-lex.c (GETC): Redefine to call getch.
27782         (UNGETC): Redefine to call put_back.
27783         (putback_buffer): New structure type.
27784         (putback): New static structure.
27785         (getch): New function.
27786         (put_back): New function.
27787         (yylex): Replace unused bytes from bad multibyte character.
27788
27789 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
27790
27791         * cpplib.c (do_define): Cast `alloca' return value.
27792         (do_include, do_undef, do_pragma): Likewise.
27793         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
27794         values.
27795         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
27796         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
27797
27798 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
27799
27800         * sparc.md (abstf2): This should be an expand.
27801         (split after abstf2_notv9): Fix mode.
27802         (abstf2_hq_v9): New pattern.
27803         (abstf2_v9): Only use when no hard quad.
27804         (absdf2_v9): Fix if target is not the same as source.
27805         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
27806         Add correct output constraints.
27807
27808 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
27809
27810         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
27811         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
27812
27813 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
27814
27815         * mips.h (mips_output_conditional_branch): New function.
27816         (mips_adjust_insn_length): Likewise.
27817         (ASSEMBLER_SCRATCH_REGNUM): New macro.
27818         (ADJUST_INSN_LENGTH): Likewise.
27819         * mips.c (print_operand): Add `F' and `W' for floating-point
27820         comparison opcodes.
27821         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
27822         are now in bytes.
27823         (mips_adjust_insn_length): New function.
27824         (mips_output_conditional_branch): New function.
27825         * mips.md (length): Adjust attribute definition to handle
27826         conditional branches.  Change lengths to bytes, rather than
27827         instructions throughout.  Remove length attribute from
27828         instructions whose length is four bytes, and rely on the default
27829         instead.
27830         (dslot): Fix typo in comment.
27831         Reword conditional branch patterns to use
27832         mips_output_conditional_branch.
27833
27834 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27835
27836         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
27837         (LIB_SPEC): Likewise.
27838         Link with -lprof1_r for -g/-pg.
27839
27840 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
27841
27842         * loop.c (check_dbra_loop): Fix change of Jan 19.
27843
27844 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
27845
27846         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
27847         (STARTFILE_SPEC):  Define, override the svr4.h version.
27848         (ENDFILE_SPEC):  Likewise.
27849
27850 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
27851
27852         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
27853         * fixinc/fixincl.x: Regenerated.
27854         * fixinc/inclhack.sh: Regenerated.
27855
27856 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27857
27858         * sh.c (barrier_align): Don't return early for normal branch/barrier
27859         when optimizing for SH2.
27860
27861 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
27862
27863         * i386/udk.h (LINK_SPEC): Correct linker search path for
27864         system libraries.
27865
27866 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27867
27868         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
27869         (braf_label_ref_operand): Delete.
27870         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
27871         * sh.md (casesi_jump_2): Operand1 is now the inside of a
27872         label_ref, and has no predicate.
27873         The patten has a predicate to guard against invalid substitutions.
27874         (dummy_jump): Delete.
27875         (casesi): Update use of casesi_jump_2.
27876
27877 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27878
27879         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
27880         *fixinc/fixincl.x: regenerate
27881         *fixinc/inclhack.sh: regenerate
27882
27883 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
27884
27885         * dwarf2out.c (add_incomplete_type): New fn.
27886         (gen_struct_or_union_type_die): Call it.
27887         (retry_incomplete_types): New fn.
27888         (dwarf2out_finish): Call it.
27889
27890 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
27891
27892         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
27893         current block starts with a CODE_LABEL and ends with a CALL and
27894         we can not find all the argument setup instructions for the CALL.
27895
27896 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
27897
27898         Revert this change:
27899         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
27900         something is a candidate for optimize_bit_field_compare.
27901
27902 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27903
27904         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
27905
27906 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
27907
27908         * alpha.c (override_options): Thinko in last patch.
27909
27910         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
27911         (LIB_SPEC): Recognize -pthread.
27912
27913 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
27914
27915         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
27916         definition in config/arm/coff.h
27917         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
27918
27919 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
27920
27921         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
27922         fixes that need "file=xxx\n" prepended before invocation
27923         (start_fixer - new): starting the fixer process is complex enough
27924         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
27925         (process): uses the new routine; omit usage of putenv()
27926         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
27927         * fixinc/fixincl.x: regenerate
27928
27929 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
27930
27931         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
27932         and version #s (1.1 -> 2.96) as needed.
27933         * README.g77: Kill way out of date file in the toplevel directory.
27934
27935 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
27936
27937         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
27938         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
27939         * configure: Rebuilt.
27940         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
27941         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
27942         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
27943         (SWITCH_TAKES_ARG): Likewise.
27944         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
27945         * config/t-freebsd: Moved from config/i386/ so it can used for all
27946         FreeBSD targets.
27947
27948 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
27949
27950         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
27951
27952 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
27953
27954         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
27955         * configure: Rebuilt.
27956
27957 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
27958
27959         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
27960         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
27961         * rs6000/rs6000.c (rs6000_file_start): Use putc.
27962         (rs6000_output_load_toc_table): Same.
27963         (output_prolog, output_mi_thunk): Same.
27964         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
27965         (ASM_GLOBALIZE_LABEL): Use putc.
27966
27967 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
27968
27969         * alpha.md (reload_*_help): New patterns and splitters.
27970         (reload_*): Use them.
27971         (mov[qh]i): Likewise.
27972
27973 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
27974
27975         * cccp.c (handle_directive): Handle backslash-newlines in quoted
27976         strings correctly.
27977
27978 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
27979
27980         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
27981
27982 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
27983
27984         * flow.c (mark_regs_live_at_end, insn_dead_p,
27985         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
27986         and HARD_FRAME_POINTER_REGNUM special treatment if reload
27987         hasn't run or the frame pointer is needed.
27988         * haifa-sched.c (attach_deaths): Likewise.
27989         * sched.c (attach_deaths): Likewise.
27990
27991 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
27992
27993         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
27994         calculate_can_reach_end returns nonzero.
27995
27996         * configure.in (native gas tests): Search for an assembler in the
27997         same manner that the installed compiler will.
27998         * configure: Rebuilt.
27999         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
28000
28001         * alias.c (find_base_term): Improve handling of addresses
28002         constructed from binary operations.
28003
28004 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
28005
28006         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
28007
28008 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
28009
28010         * function.h (cleanup_label, frame_offset): Declare.
28011         (tail_recursion_label, tail_recursion_reentry): Likewise.
28012         (arg_pointer_save_area, rtl_expr_chain): Likewise.
28013         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
28014         (tail_recursion_label, tail_recursion_reentry): Likewise.
28015         (arg_pointer_save_area, rtl_expr_chain): Likewise.
28016
28017 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
28018
28019         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
28020         defined.
28021         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
28022         (MAX_OFILE_ALIGNMENT): Define.
28023
28024 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
28025
28026         * fixincl.c: Replace local include scheme with #includes of
28027         gansidecl.h and system.h.
28028         * procopen.c:  Likewise.
28029         * server.c:  Likewise.
28030
28031 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
28032
28033         * i386/t-dgux (EXTRA_PARTS): Add crti.o
28034         (crti.o): Add build rule and dependencies.
28035         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
28036
28037 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
28038
28039         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
28040         (LIB_LINUX_SPEC): Likewise.
28041         (LIB_LINUX_SPEC): Add support for -pthread
28042         (CPP_OS_LINUX_SPEC): Likewise.
28043         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
28044         specified.
28045
28046 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
28047
28048         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
28049         conditional move.
28050         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
28051         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
28052         for IEEE math and CC_FCOMI.
28053         (put_jump_code): No IEEE if CC_FCOMI is set.
28054
28055 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
28056
28057         * fold-const.c (fold_truthop): Make the field reference unsigned
28058         when converting a single bit compare.
28059
28060 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28061
28062         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
28063
28064 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
28065
28066         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
28067         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
28068         version did.
28069
28070         * reload.c (push_reload): Do not call remove_address_replacements
28071         when presented with identical optional reloads.
28072
28073 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
28074
28075         * alpha.h (MASK_FIX, TARGET_FIX): New.
28076         (MASK_*): Reorganize constants.
28077         (CPP_AM_FIX_SPEC): New.
28078         (TARGET_SWITCHES): Add FIX.
28079         (EXTRA_SPECS): Likewise.
28080         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
28081         (SECONDARY_MEMORY_NEEDED): Likewise.
28082         (REGISTER_MOVE_COST): Likewise.
28083         * alpha.c (override_options): Add FIX support.  Always use
28084         ALPHA_TP_PROG for ev6.
28085         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
28086         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
28087         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
28088
28089 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
28090
28091         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
28092         something is a candidate for optimize_bit_field_compare.
28093
28094 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
28095
28096         * gcc.texi (Passes): Document branch-shortening.
28097         * invoke.texi (Debugging Options): Document the fact that `-dp'
28098         outputs length information for instructions.
28099
28100 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
28101
28102         * flow.c: Revert previous delta.
28103
28104 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
28105
28106         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
28107         FRAME_POINTER_REGNUM.
28108         (mark_set_1): Ditto.
28109         (mark_used_regs): Ditto.
28110
28111 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
28112
28113         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
28114         (GOT_PCREL): New macro.  Define to 1 if not already defined.
28115         * arm/elf.h (GOT_PCREL): Define to 0.
28116         * arm.c (arm_finalize_pic): Take into account the setting of
28117         GOT_PCREL.
28118
28119 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
28120
28121         * output.h (STRIP_NAME_ENCODING): Provide default definition.
28122         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
28123
28124         * flow.c (mark_set_1): Do not record BLKmode stores as dead
28125         store elimination candidates.
28126
28127 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
28128
28129         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
28130         TARGET_GAS.
28131
28132 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
28133
28134         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
28135         Add use of x-aix41-gld.
28136
28137 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
28138
28139         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
28140         (ASM_OUTPUT_DESTRUCTOR): Define.
28141
28142 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
28143
28144         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
28145         last CODE_LABEL in a loop if we have previously passed a jump
28146         to the top of the loop.
28147
28148 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
28149
28150         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
28151         applying Philip's patch.
28152
28153 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
28154
28155         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
28156         are not VAR_DECLs.
28157
28158 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
28159
28160         * loop.c (strength_reduce): Grow reg_single_usage as needed.
28161
28162 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
28163
28164         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
28165         Also remove a useless comment.
28166
28167 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
28168
28169         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
28170
28171 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
28172
28173         * collect2.c (main): Only generate import or export file and add
28174         to link arguments if non-empty.  Use xmalloc not alloca.
28175         (write_{export,import}_file): Delete.
28176         (write_aix_file): New function.
28177         (locatelib): Use xmalloc not malloc.
28178         (GCC_OK_SYMBOL): Do not check type if aix64.
28179
28180 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
28181
28182         Based on patch by Scott Bambrough and Pat Beirne:
28183         * config/arm/arm.c (making_const_table): New variable.
28184         * config/arm/arm.h (making_const_table): Declare.
28185         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
28186         appropriate.
28187         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
28188         Keep track of when we are building the constant table.
28189
28190 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
28191
28192         * config/arm/arm.c (arm_override_options): Fix erroneous warning
28193         message.
28194
28195 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
28196
28197         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
28198         defined.
28199
28200 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
28201
28202         * tm.texi (FUNCTION_ARG): Correct description of a stack element
28203         in a PARALLEL.
28204
28205 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
28206
28207         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
28208
28209 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
28210
28211         * rs6000.c (output_mi_thunk): Enable full support again.
28212
28213 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28214
28215         * sh.h (BRANCH_COST): Define.
28216
28217 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
28218
28219         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
28220
28221 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
28222
28223         * function.c (assign_stack_local): Align stack slot propertly.
28224         (assign_outer_stack_local): Likewise.
28225
28226 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
28227
28228         * expr.h (lang_expand_constant): Declare.
28229         * toplev.c (lang_expand_constant): Define it.
28230         * varasm.c (output_constant): Use it.
28231
28232 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28233
28234         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
28235         Change function definitions to K&R style.
28236
28237 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28238
28239         * fixinc/fixincl.c: We must not ignore SIGCLD now.
28240
28241 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
28242
28243         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
28244         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
28245         (several places): omit static initialization
28246         (process): use single fd, since only the read fd is used
28247         * fixinc/gnu-regex.c: define 'const' away, if not supported
28248         * fixinc/procopen.c(several places): omit static initialization
28249         * fixinc/server.c: define 'volitile' away, if not supported
28250
28251 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
28252
28253         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
28254         asm_fprintf and %L to generate the label name.
28255         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
28256         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
28257
28258 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
28259
28260         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
28261         insn for a conditional jump can not be found.
28262
28263 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
28264
28265         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
28266         on variables in specific sections other than .sbss and .sdata.
28267
28268 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
28269
28270         * stmt.c (expand_return): Call start_cleanup_deferral and
28271         end_cleanup_deferral around conditional code.
28272
28273 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28274
28275         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
28276         filename lists.  Utilizes new "krstr" AutoGen function.
28277         * fixinc/fixincl.x: Rebuilt.
28278
28279 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
28280
28281         * i386.c (output_float_compare): Avoid GNU-C extensions.
28282
28283 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
28284
28285         * version.c: Bump to distinguish mainline tree from the
28286         gcc-2.95 branch.
28287
28288 See ChangeLog.1 for earlier changes.