OSDN Git Service

5b691069f5169743628aa0f5003d31b513eab2c1
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2
3         * ssa.c (compute_conservative_reg_partition): Declare with
4         void arguments.
5         * toplev.c (clean_dump_file): Remove previously-deleted function
6         inadvertantly merged back in.
7         * conflict.c (conflict_graph_add): Use a single call to
8         htab_find_slot to look up and insert.
9
10 2000-04-06  Richard Henderson  <rth@cygnus.com>
11
12         * genrecog.c (*): Rename _last_insn to last_insn.
13         (make_insn_sequence): Set the position of the peephole2 C test
14         to be at the last insn.
15
16 2000-04-06  Richard Henderson  <rth@cygnus.com>
17
18         * flow.c (compute_flow_dominators): Free worklist.
19
20 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
21
22         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
23
24 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
25
26         * rtl.h (INSN_P): New macro.
27         (successor_phi_fn): New typedef.
28         (for_each_successor_phi): New prototype.
29         (in_ssa_form): New variable.
30         (PHI_NODE_P): Likewise.
31         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
32         phi nodes in successors.
33         (mark_used_regs): Add PHI case.
34         (set_phi_alternative_reg): New function.
35         (life_analysis): Assert that dead code elimination is not selected
36         when in SSA form.
37         * toplev.c (to_ssa_time): New variable.
38         (from_ssa_time): Likewise.
39         (compile_file): Zero to_ssa_time and from_ssa_time.
40         Print time to convert to and from SSA.
41         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
42         (print_time): Compute percent fraction as integer.
43         * ssa.c (PHI_NODE_P): Moved to rtl.h.
44         (convert_to_ssa): Check if we're already in SSA.  
45         Don't eliminate dead code in life_analysis.
46         Rerun flow and life analysis at bottom.
47         (eliminate_phi): Use canonical regnos when adding nodes.
48         (mark_reg_in_phi): New function.
49         (mark_phi_and_copy_regs): Likewise.
50         (convert_from_ssa): Rerun life analysis at top.  
51         Use coalesced partition.
52         Check for removing a phi node at the end of the block.
53         (compute_coalesced_reg_partition): New function.
54         (coalesce_regs_in_copies): Likewise.
55         (coalesce_reg_in_phi): Likewise.
56         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
57         (for_each_successor_phi): Likewise.
58         (rename_context): New struct.
59         (rename_block): Use a rename_context with rename_insn_1.  When
60         renaming sets of a subreg, emit a copy of the entire reg first.
61         (rename_insn_1): Treat data as a rename_context *.  Save current
62         insn in set_data.
63         (rename_set_data): Add field set_insn.
64         * Makefile.in (HASHTAB_H): Move up in file.
65         (OBSTACK_H): New macro.
66         (collect2.o): Use OBSTACK_H in dependencies.
67         (sdbout.o): Likewise.
68         (emit-rtl.o): Likewise.
69         (simplify-rtx.o): Likewise.
70         (fix-header.o): Likewise.
71         (OBJS): Add conflict.o.
72         (conflict.o): New rule.
73         * basic-block.h: Include partition.h.
74         (conflict_graph): New typedef.
75         (conflict_graph_enum_fn): Likewise.
76         (conflict_graph_new): New prototype.
77         (conflict_graph_delete): Likewise.
78         (conflict_graph_add): Likewise.
79         (conflict_graph_conflict_p): Likewise.
80         (conflict_graph_enum): Likewise.
81         (conflict_graph_merge_regs): Likewise.
82         (conflict_graph_print): Likewise.
83         (conflict_graph_compute): Likewise.
84         * conflict.c: New file.
85
86 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
87
88         * tlink.c (read_repo_files): Don't look for .rpo info for
89         linker flags.
90
91 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
92
93         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
94
95 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
96
97         * config/sh/lib1funcs.asm (___udivsi3_i4):
98         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
99         only depends on FMOVD_WORKS.
100
101 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
102
103         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
104         make double constant 8-byte aligned.
105
106 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
107
108         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
109         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
110         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
111         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
112         Accept storing GENERAL_REGS into offsetable memory.
113         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
114         building a TFmode constant other than 0.0L into GENERAL_REGS.
115
116 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
117
118         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
119         
120 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
121
122         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
123         (macro_cleanup): No need to cast pbuf->macro.
124         (collect_expansion): Use _cpp_get_define_token.  Goto done if
125         it returns VSPACE.  Remove check for trailing space after
126         CPP_COMMENT.
127         (_cpp_create_definition): Don't diddle flags here.  Return
128         directly on error.
129         (unsafe_chars): Handle c1 being EOF.
130         (push_macro_expansion): Use unsafe_chars for both accidental-paste
131         checks.  Don't push the buffer till after we're done with
132         them.
133         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
134         (PEEKN, FORWARD, GETC, PEEKC): Use them.
135         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
136         appropriately.
137         (_cpp_parse_assertion): Don't NUL terminate.
138         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
139         hspace before calling _cpp_parse_assertion.  Remove all sets
140         of only_seen_white. Treat '\f' as hspace.  Don't do anything
141         special with '\n' here.
142         (maybe_macroexpand): Handle T_EMPTY hash entries without
143         pushing a buffer at all.
144         (cpp_get_token): Handle clearing only_seen_white here.  Handle
145         incrementing the line number here.  Clear
146         potential_control_macro as well as only_seen_white, if
147         appropriate.
148         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
149         (_cpp_get_define_token): New function, basically like
150         _cpp_get_directive_token was but doesn't eat horizontal space.
151         Don't do anything with only_seen_white here.
152         (_cpp_get_directive_token): Just call _cpp_get_define_token
153         repeatedly till it returns non-hspace.
154
155         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
156         (conditional_skip, skip_if_group): Return int.
157         (DIRECTIVE_TABLE): Change origin of all conditional directives
158         to "COND".
159         (TRAD_DIRECT_P): New macro.
160         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
161         an error for a bogus directive, unless -lang-asm.  Use
162         TRAD_DIRECT_P. Loop calling handler functions till one returns
163         zero.
164         (get_macro_name): Don't diddle flags here.
165         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
166         Create T_EMPTY nodes for #define macro /* nothing */.
167         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
168         Use hp->name when calling pass_thru_directive.
169         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
170         Return the result of conditional_skip and/or skip_if_group.
171         Don't call _cpp_output_line_command.
172         (consider_directive_while_skipping): Use _cpp_get_directive_token.
173         Issue -Wtraditional warnings as appropriate.  Don't complain
174         about unrecognized directives.  If we are to stop skipping,
175         return the number of the directive that ended the skip.
176         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
177         expansion and line commands while skipping.  Return the result
178         of consider_directive_while_skipping, if nonzero.
179         (do_endif): Just set potential_control_macro here.
180         (validate_else): Use _cpp_get_directive_token.
181         (do_assert, do_unassert): Don't save pointers into the
182         token_buffer across calls to the lexer.  Use
183         _cpp_get_directive_token.  
184
185         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a 
186         pointer, not an offset.  Replace 'data', which was a generic
187         pointer, with 'macro', which points to a struct hashnode.
188         (cpp_reader): Add 'potential_control_macro' pointer.
189         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
190         (CPP_BUF_GET, CPP_FORWARD): Delete.
191         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
192         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
193         ACTIVE_MARK_P): Update.
194         (_cpp_get_define_token): New internal function.
195         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
196
197 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
198
199         * configure.in: And here.
200         * configure: Regenerate.
201         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
202         --enable-libstdcxx-v3 is passed at configure time.
203         * config.h.in: Regenerate.
204
205 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
206
207         * final.c (final): Use xcalloc to allocate line_note_exists.
208         * function.c (free_after_compilation): Free the temp_slots.
209         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
210         (combine_temp_slot): Free temp_slots when they get combined.
211         (purge_addressof): Fix typo in comment.
212         * stmt.c (mark_goto_fixup): Mark the fixup itself.
213         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
214
215         * ggc.h: Include varray.h.
216         (ggc_pending_trees): Declare.
217         (ggc_mark_tree_children): Remove declaration.
218         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
219         * ggc-common.c (ggc_pending_trees): New variable.
220         (ggc_mark_roots): Call ggc_mark_trees.
221         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
222         the ggc_pending_trees.
223         * Makefile.in (GGC_H): New variable.  Use it throughout in place
224         of ggc.h.
225         
226 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
227
228         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
229         GET_MODE_SIZE.
230
231 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
232
233         * sh.c (sh_insn_length_adjustment): New function.
234         * sh-protos.h (sh_insn_length_adjustment): Declare.
235         * sh.h (ADJUST_INSN_LENGTH): Use it.
236
237 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
238
239         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
240         from the insn where REG_RETVAL is added.
241         (emit_no_conflict_block): Ditto.
242
243         * md.texi (Standard Names): Clarify when movX is needed.
244
245         * combine.c (simplify_comparison) [MINUS]: Do not replace
246         all (op (minus A B) 0) with (op A B).
247
248 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
249                           J"orn Rennecke <amylaar@cygnus.co.uk>
250
251         * sh.c (block_lump_real_i4): Add missing clobber of T_REG
252         (block_lump_real): Likewise.
253
254 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
255
256         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
257         remaining non-zero debugging masks.
258
259 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
260
261         * basic-block.h (verify_flow_info): Declare.
262         (flow_loop_outside_edge_p): Declare.
263         * flow.c (verify_flow_info): Remove declaration.
264         (clear_log_links, flow_loop_outside_edge_p): Likewise.
265
266 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
267
268         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
269         not C++ comments.
270
271 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
272
273         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
274         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
275         seqdi_zero_trunc+1): Allow splits only if registers are
276         different.
277
278 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
279
280         * acconfig.h: Add HAVE_GAS_HIDDEN.
281         * config.in: Regenerated.
282         * configure.in: Add test for .hidden pseudo-op in gas.
283         * configure: Regenerated.
284         * crtstuff.c: Include auto-host.h.
285         Emit additional .hidden pseudo-op for __dso_handle if the
286         assembler knows about it.
287
288 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
289
290         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
291         before freeing argnames.
292         * cpplib.c (do_ifndef): Cast return value of xstrdup.
293
294 2000-04-05  Michael Meissner  <meissner@redhat.com>
295
296         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
297         Walton <jonboy@gordian.com> to make memory references with update
298         work wtih -mregnames.
299
300 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
301
302         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
303         (regrename_optimize): Rename variables `def_uses' and
304         `ext_basic_blocks' to avoid conflicts with similarly named
305         typedefs in traditional C.
306
307         * calls.c (initialize_argument_information): Fix typo in previous
308         change.
309
310 2000-04-04  Richard Henderson  <rth@cygnus.com>
311
312         * regrename.c (consider_available): Test fixed_regs not
313         PIC_OFFSET_TABLE_REGNUM.
314
315 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
316
317         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
318         crtend.
319         (CRTSTUFF_T_CFLAGS_S): Delete definition.
320         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
321         (ENDFILE_LINUX_SPEC): Always use crtend.
322         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
323         (powerpc-*-linux-gnu): Likewise.
324         * configure: Regenerate.
325
326         * config/rs6000/eabi.h: Don't include sysv4.h.
327         (MULTILIB_DEFAULTS): Don't define.
328         * config/rs6000/eabiaix.h: Don't include eabi.h.
329         * config/rs6000/eabile.h: Delete.
330         * config/rs6000/eabilesim.h: Delete.
331         * config/rs6000/eabisim.h: Don't include eabi.h.
332         * config/rs6000/linux.h: Don't include sysv4.h.
333         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
334         (MULTILIB_DEFAULTS): Don't redefine.
335         * config/rs6000/rtems.h: Don't include eabi.h.
336         * config/rs6000/sol2.h: Don't include sysv4le.h.
337         * config/rs6000/sysv4le.h: Don't include sysv4.h.
338         * config/rs6000/t-ppc: Delete.
339         * config/rs6000/t-ppcgas: Correct comment.
340         * config/rs6000/t-ppcos: Correct comment.  Don't build 
341         multilibs for -fPIC, rather use -fPIC -mstrict-align 
342         as default.
343         * config/rs6000/t-ppc: Delete.
344         * config/rs6000/vxppc.h: Don't include sysv4.h.
345         * config/rs6000/vxppcle.h: Delete.
346         * configure.in: Use multiple header files for p2pc ELF targets
347         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
348         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
349         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
350         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
351         always available for these platforms.
352
353 2000-04-04  Richard Henderson  <rth@cygnus.com>
354
355         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
356
357 2000-04-04  Stan Cox  <scox@cygnus.com> 
358
359         * Makefile.in: Add rules for regrename.o
360         * regrename.c: New file.
361         * rtl.h (regrename_optimize): Add prototype.
362         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
363         (compile_file, decode_d_option): Add support for -frename-registers.
364         (rest_of_compilation): Call regrename_optimize.
365         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
366         New macros.     
367         
368 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
369
370         * Makefile (gccbug): New target.
371         (doc): Depend on it.
372         * gcc.texi (Bugs): Link subnodes.
373         (gccbug): New node.
374         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
375         Document severities, priorities, and classes in bug form.
376
377 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
378
379         * cpplex.c (trigraph_map, speccase): Combine into single
380         table, chartab.
381         (NORMAL, NONTRI): New macros.
382         (_cpp_read_and_prescan): Change to use unified table.  Use
383         is_hspace to test for whitespace.
384
385         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
386         definition that doesn't provoke the "empty body in an
387         if-statement" warning.
388
389 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
390
391         * builtins.c (expand_builtin_strlen): Force the source to
392         be a memory address.
393
394 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
395
396         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
397
398 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
399
400         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
401          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
402         (ECF_IS_CONST): Rename to ECF_CONST.
403         (special_function_p): Make static, change interface.
404         (flags_from_decl_or_type, try_to_integrate): Break out from ...
405         (expand_call) ... here; convert number of variables to flags.
406         (emit_library_call_vlue_1): Likewise.
407         (setjmp_call_p): New function.
408         (initialize_argument_information): Accepts flags as argument;
409         return flags.
410         (precompute_arguments): Likewise.
411         * tree.h (special_function_p): Remove.
412         (setjmp_call_p): Add prototype.
413
414 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
415
416         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
417         so that addresses are offsetable by up to 16 bytes.
418         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
419         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
420         offsetable.
421
422         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
423         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
424         (movsf): Don't force any constant to memory if target is integer
425         hard register.
426         Move fp_zero_operand check below the const0_rtx check.
427         (movtf): Likewise. Also allow fp_zero_operand for stores into
428         memory.
429         (movdf): Likewise. Also allow fp_zero_operand for stores into
430         memory and into integer hard registers.
431         (clear_df, clear_dfp, movdf_const_intreg_sp32,
432         movdf_const_intreg_sp64): Remove.
433         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
434         conditions.
435         (movdf_no_e_insn_v9_sp32): New pattern.
436         (movdf_insn_v9only): Remove.
437         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
438         (movdf_insn_sp64): Remove.
439         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
440         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
441         (following splits): Rewrite conditions. Add two new splits
442         for storing 0.0 into memory and registers.
443         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
444         (movtf_insn_sp32): Redo constraints and conditions.
445         (movtf_insn_vis_sp32): New pattern.
446         (movtf_no_e_insn_sp32): Redo constraints and conditions.
447         (movtf_insn_hq_sp64): Likewise.
448         (movtf_insn_hq_vis_sp64): New pattern.
449         (movtf_insn_sp64): Redo constraints and conditions.
450         (movtf_insn_vis_sp64): New pattern.
451         (movtf_no_e_insn_sp64): Redo constraints and conditions.
452         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
453         or memory.
454         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
455         -mvis or -m64 to take down the number of various reload patterns.
456
457 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
458
459         * pa/pa-64.h: New file.
460         * pa/pa64-regs.h: New file.
461         * pa/pa64-start.h: New file.
462         * pa/t-pa64: New file.
463         * pa/xm-pa64hpux.h: New file.
464
465 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
466
467         * sparc.c (output_restore_regs): Prototype.
468         (sparc_emit_float_lib_cmp): Constification.
469
470         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
471
472         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
473         Prototype.
474
475         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
476         (get_value_hash, hash_rtx): Likewise.
477
478         * ssa.c (compute_conservative_reg_partition): Prototype.
479
480         * tree.c (mark_hash_entry): Prototype.
481
482 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
483
484         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
485         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
486         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
487
488         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
489         * objc/lang-specs.h: Likewise.
490
491 2000-04-03  Neil Booth  <NeilB@earthling.net>
492
493         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
494         and SYNTAX_ERROR2. Replace `' in messages with ''.
495         (op_to_str): Make re-entrant.
496         (_cpp_parse_expr): Implement new error macros. Use | rather
497         than || to logically or 2 boolean integers.  Simply expression
498         checking we have a left operand iff needed.
499
500 2000-04-03  Nick Clifton  <nickc@cygnus.com>
501
502         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
503
504 2000-04-03  Philip Blundell  <philb@gnu.org>
505
506         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
507
508 2000-04-03  Felix Lee  <flee@cygnus.com>
509
510         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
511         (run_shell): Use it. 
512
513 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
514
515         * Makefile.in (stmp-int-hdrs): Make include subdir here...
516         (stmp-fixproto): ...rather than here.
517
518 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
519
520         * pa.c (print_operand): Compute 'base' only inside the code paths
521         that use it.
522
523 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
524
525         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
526         CEIL_DIV_EXPR.
527
528 2000-04-03  Philipp Thomas  <pthomas@suse.de>
529
530         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
531
532 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
533
534         * Makefile.in (alias.o): Depend on $(TREE_H).
535
536 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
537
538         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
539         processing C++.
540         * cpplib.c (_cpp_handle_directive): Improve warnings for
541         traditional C and indented directives.
542
543         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
544         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
545         fixinc/inclhack.def: Indent the # of #include_next one space.
546         * cp/rtti.c: Un-indent #if and #endif.
547
548         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
549         syntax error, but an error has already been printed.
550         * cpplex.c (_cpp_parse_assertion): Give a more specific error
551         message when called with nothing remaining on the line.
552         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
553         OTHER token, not an ASSERTION.
554         * cpplib.c (do_assert): When we create a 'base' node, clear
555         its aschain pointer.
556
557 2000-04-02  Neil Booth <NeilB@earthling.net>
558
559         * cppexp.c:  New typedef op_t.  struct operation and struct 
560         token updated to use it.
561         (op_to_str): New function.
562         (_cpp_parse_expr): Error messages modified to use op_to_str.
563
564 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
565
566         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
567         before checking MUST_PASS_IN_STACK.
568
569 2000-04-02  Neil Booth <NeilB@earthling.net>
570
571         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
572         flags and initial priority into a single constant.  New
573         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
574         (_parse_cpp_expr): Implement new constants.  Take left operand
575         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
576         parse indicated by reducing FINISHED token.  Remove new lines
577         from cpp_error messages.
578
579 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
580
581         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
582         permanent obstack.
583
584 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
585
586         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
587         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
588         the strings and function names on the fly.  Take the #sccs
589         entry out of the table if SCCS_DIRECTIVE is not defined.
590         (_cpp_handle_directive): Decide if the # was at the beginning
591         of the line here.  Issue -pedantic warnings for extended
592         directives here.  Warn about K+R directives with the #
593         indented, and C89/extended directives with the # not indented,
594         here.
595         (do_import, do_include_next, do_warning, do_ident, do_sccs,
596         do_assert, do_unassert): Don't issue pedantic warning here.
597
598         * cpphash.h: Add CPP_WTRADITIONAL macro.
599         * cpplib.h (struct cpp_options): Rename warn_stringify to
600         warn_traditional; update comments.
601         * cppinit.c (handle_option): Set warn_traditional not
602         warn_stringify.
603         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
604         CPP_WTRADITIONAL (pfile).
605         * cpplex.c (_cpp_lex_token): Don't decide if directives should
606         be ignored in -traditional mode here.
607
608         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
609         to initialize speccase[] and trigraph_map[].  Delete all
610         references to pfile->input_speccase.  Always treat '?' as a
611         special character.  Remove table-initialization code from
612         _cpp_init_input_buffer.
613
614         * cpplib.h (struct cpp_reader): Remove input_speccase field.
615         * cppinit.c (cpp_cleanup): Don't free input_speccase.
616
617 2000-04-01  Richard Henderson  <rth@cygnus.com>
618
619         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
620         (mostlyclean): Likewise.
621
622         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
623         (struct dump_file_info, enum dump_file_index, dump_file): New.
624         (open_dump_file): Take a dump_file_index not a suffix, and a decl
625         not a string.  Clean out file if we havn't yet done so.  Do nothing
626         if the dump isn't enabled.
627         (close_dump_file): Do nothing if the dump isn't open.  Dump 
628         graph data if requested.
629         (dump_rtl, clean_dump_file): Remove.
630         (compile_file): Don't clean the dump files.  Only finalize .bp dump
631         if flag_test_coverage or flag_branch_probabilities.  Only finalize
632         .combine dump if optimizing.  Iterate over dump_file to finalize the
633         graph dumps.
634         (rest_of_compilation): Update for open_dump_file/close_dump_file.
635         Convert all uses of dump_rtl.
636         (decode_d_option): Iterate over dump_file to implement 'a' and to
637         locate pass-specific dumps.
638
639 2000-04-01  Neil Booth <NeilB@earthling.net>
640
641         * cppexp.c: Redefine priority constants.
642         (_cpp_parse_expr): Replace left and right priority scheme with
643         single priority logic.  Move LOGICAL to same place as COMPARE.
644         Remove bogus check for multiple unary +/- operators.
645
646 2000-04-01  Neil Booth <NeilB@earthling.net>
647
648         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
649         within the switch statement.  Binary operations break out of
650         the switch naturally.  '(' tokens handled by forcing
651         immediate shift.  ')' handled by forcing immediate reduce to
652         the previous '('.  New error messages.
653         
654 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
655
656         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
657         part', it's already in use.  Use %K instead.  Add a return at the
658         end of what is now %K.
659         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. 
660
661 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
662
663         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
664         allocate_dynamic_stack_space.
665         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
666         update stack_pointer_delta; do not update arg_size_so_far.
667         (compute_argument_block_size): Use stack_delta instead of
668         stack_pointer_pending and arg_size_so_far.
669         (expand_call): Add sanity checking for stack_pointer_delta;
670         save and restore stack_pointer_delta for SIB, use
671         stack_pointer_delta for alignment; do not update arg_space_so_far.
672         (emit_library_call_value): Use stack_pointer_delta for alignment.
673         (store_one_arg): Do not update arg_space_so_far.
674         * explow.c (adjust_stack, anti_adjust_stack): Update
675         stack_pointer_delta.
676         (allocate_dynamic_stack_space): Add sanity checking for
677         stack_pointer_delta.
678         * expr.c (init_expr, clear_pending_stack_adjust): Clear
679         stack_pointer_delta.
680         (emit_push_insn): Update stack_pointer_delta.
681         * function.h (struct expr_status): Add x_stack_pointer_delta;
682         remove x_arg_space_so_far.
683         (arg_space_so_far): Remove.
684         (stack_pointer_delta): New macro.
685
686 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
687
688         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
689         Reorder struct cpp_options and struct cpp_reader for better 
690         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
691         takes two args.  Change all 'char' flags to 'unsigned char'.
692         Move show_column flag into struct cpp_options.  Don't
693         prototype cpp_options_init.
694         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
695         cppinit.c, cpplex.c, cpplib.c:
696         Replace CPP_OPTIONS (pfile)->whatever with
697         CPP_OPTION (pfile, whatever), and likewise for
698         opts = CPP_OPTIONS (pfile); ... opts->whatever;
699
700         * cppinit.c (merge_include_chains): Take a cpp_reader *.
701         Extract CPP_OPTION (pfile, pending) and work with that
702         directly.
703         (cpp_options_init): Delete.
704         (cpp_reader_init): Turn on on-by-default options here.
705         Allocate the pending structure here.              
706         (cl_options, enum opt_code): Define these from the same table,
707         kept in a large macro.  Add -fshow-column and -fno-show-column
708         options.
709
710         * cpperror.c (v_message): If show_column is off, don't print
711         the column number.
712
713         * cppmain.c: Update for new interface.
714         * fix-header.c: Likewise.
715
716 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
717
718         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
719         definition.
720         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
721         are passed to any invocation of AR_FOR_TARGET.
722         (AR_CREATE_FOR_TARGET): New macro.
723         (AR_EXTRACT_FOR_TARGET): New macro.
724         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
725         AR_EXTRACT_FOR_TARGET.
726         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
727         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
728         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
729         AR_EXTRACT_FOR_TARGET to sub-makes.
730
731 2000-03-31  Neil Booth <NeilB@earthling.net>
732
733         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
734         PAREN_INNER_PRIO.
735         (_cpp_parse_expr): Check for multiple unary +/- operators.
736         Correct priorities of ':' and '?'.  Treat ')' as having a
737         value.  Ensure conditional expression is not void.
738         
739 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
740
741         * alias.c (canon_rtx): Make it global.
742         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
743         equality.
744         * cse.c (struct table_elt): Add canon_exp.
745         (insert): Clear it.
746         (invalidate): Canonicalize expressions only once.
747         * rtl.h (canon_rtx): Declare.
748
749 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
750
751         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
752         * alias.c (reg_known_value): Add comments.
753         (init_alias_analysis): Likewise.
754         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
755         address.
756         (cse_basic_block): Fix typo in comment.
757         * emit-rtl.c: Include hashtab.h.
758         (const_int_htab): New variable.
759         (const_int_htab_hash): New function.
760         (const_int_htab_eq): Likewise.
761         (rtx_htab_mark_1): Likewise.
762         (rtx_htab_mark): Likewise.
763         (gen_rtx_CONST_INT): Cache all CONST_INTs.
764         (unshare_all_rtx): Fix formatting.
765         (init_emit_once): Initialize const_int_htab.
766         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
767         address.
768         * rtl.texi: Document the fact that all CONST_INTs with the same
769         value are shared.
770
771 2000-03-30  Richard Henderson  <rth@cygnus.com>
772
773         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
774
775 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
776
777         * configure.in: Comment out --enable-c-cpplib stanza.
778         * configure: Regenerate.
779
780 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
781
782         * expr.c (store_constructor): Properly compute displacement and
783         alignment when offset is variable.
784
785         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
786         cases of alignment in bytes.
787
788 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
789
790         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
791         since it is used to generate c-parse.y.
792         * objc-parse.c, objc-parse.y: Regenerated.
793
794         * function.c (expand_function_end): Pass alignment argument to
795         emit_block_move in bits, not bytes.
796
797 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
798
799         * expr.c (move_by_pieces_ninsns): Fix one more missing align
800         correction.
801
802         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
803
804         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
805         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
806         * function.c (assign_parms): Likewise.
807         * integrate.c (expand_inline_function): Likewise.
808         * stmt.c (expand_decl): Likewise.
809         (copy_rtx_and_substitute): Likewise.
810         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
811         (clear_by_pieces): Fix error in last change.
812         * emit-rtl.c (init_emit): Set known registers alignment in bits.
813         * function.h (regno_pointer_align): Now unsigned.
814         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
815         is in bits.
816         * config/i386/i386.c (aligned_operand): Likewise.
817         * config/sparc/sparc.c (mem_min_alignment): Likewise.
818         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
819         (unaligned_memory_operand): Likewise.
820         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
821         Also make alignments and sizes unsigned and some whitespace cleanup.
822         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
823
824         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
825         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
826         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
827         (expand_builtin_memset): Likewise, but to clear_storage.
828         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
829         (restore_fixed_argument_area): Likewise.
830         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
831         (load_register_parameters): Likewise, to emit_group_load.
832         (expand_call): Likewise, to emit_group_store and emit_block_move.
833         (emit_library_call_value_1): Likewise, to emit_block_move.
834         (store_one_arg): Likewise, and to emit_push_insn.
835         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
836         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
837         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
838         (emit_block_move, emit_group_load, emit_group_store): Likewise.
839         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
840         (expand_assigment, store_expr, store_constructor_field): Likewise.
841         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
842         (store_constructor, store_field, get_inner_reference): Likewise.
843         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
844         (expand_expr, case COMPONENT_REF): Likewise.
845         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
846         and positions; reindent code.
847         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
848         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
849         (assign_parms): Likewise to emit_group_store.
850         * optabs.c (prepare_cmp_insn): Alignment is in bits.
851         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
852         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
853         (expand_return): Likewise to {extract,store}_bit_field.
854         * stor-layout.c (get_mode_alignment): Minor cleanup.
855         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
856         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
857         
858 2000-03-29  Nick Clifton  <nickc@cygnus.com>
859
860         * config/arm/arm.h: Undo effects of previous delta:
861         (ASM_SPEC): Do not define.
862         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
863
864         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
865         typo. 
866
867 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
868
869         * cppinit.c (cpp_start_read): Call initialize_dependency_output
870         only after reading in the primary source file.
871
872 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
873
874         * c-common.c (c_common_nodes_and_builtins): The first parameter to
875         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
876         or a reference to a va_list.
877         * builtins.c (stabilize_va_list): Simplify now we don't have to
878         work around C array address decay.
879         * c-typeck.c (convert_for_assignment): Handle assignment to
880         a reference parameter by taking the address of the RHS.
881         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
882         (va_copy): Likewise.
883         (__va_copy): Likewise.
884         * ginclude/varargs.h (va_start): Likewise.
885         (__va_copy): Likewise.
886
887 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
888
889         * i386/djgpp.h: Remove extraneous "+".
890
891         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
892
893         * calls.c (expand_call): Fix typo in last change.
894
895 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
896
897         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
898         been expanded.
899
900 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
901
902         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
903         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
904         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
905         * tree.c (bit_position, byte_position): Likewise.
906         * tree.h: Declare new functions.
907
908 2000-03-29  Nick Clifton  <nickc@cygnus.com>
909
910         * config/arm/arm.c: Minor formatting changes/
911         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
912         already defined.
913         (ASM_SPEC): Define if not already defined.
914
915 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
916
917         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
918         _cpp_calc_hash.
919
920 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
921
922         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
923         value, don't output it as unsigned.
924
925 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
926
927         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
928
929 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
930
931         * c-common.c (c_common_nodes_and_builtins): Don't special case
932         cplus_mode when declaring builtin bzero/bcmp, always avoid
933         prototype arguments.
934
935 2000-03-29  Bruce Korb  <bkorb@gnu.org>
936
937         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
938         to a non-file
939
940 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
941
942         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
943         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
944         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
945         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
946         (save_fixed_argument_area, restore_fixed_argument_area):
947         conditionize by #ifdef REG_PARM_STACK_SPACE only.
948         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
949         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
950         (precompute_register_parameters): Avoid #ifdefs on
951         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
952         (stire_one_args): Likewise.
953         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
954         (emit_library_call_value_1): Likewise.
955         (compute_argument_block_size): Align to STACK_BOUNDARY only for
956         ACCUMULATE_OUTGOING_ARGS.
957         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
958         value.
959         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
960         (use_crosses_set_p): Likewise.
961         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
962         #define ACCUMULATE_OUTGOING_ARGS 1.
963         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
964         frames.
965         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
966         constants.
967         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
968         (TARGET_SWITCHES): Add push-args, no-push-args,
969         accumulate-outgoing-args and no-accumulate-outgoing-args.
970         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
971         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
972         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
973         and PUSH_ROUNDING.
974         (emit_push_insn): Likewise.
975         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
976         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
977         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
978         (STACK_DYNAMIC_OFFSET): Define correctly for both
979         ACCUMULATE_OUTGOING_ARGS and normal mode.
980         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
981         * tm.texi (PUSH_ARGS): Document.
982         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
983
984 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
985
986         * flags.h (flag_optimize_sibling_calls): Declare.
987         * calls.c (expand_call): Fail sibcall when
988         !flag_optimize_sibling_calls
989         * invoke.texi (flag_optimize_sibling_calls): Document.
990         * toplev.c (flag_optimize_sibling_calls): New global variable.
991         (f_options): Add flag_optimize_sibling_calls.
992         (rest_of_compilation): Conditionize
993         optimize_sibling_and_tail_recursive_calls by
994         flag_optimize_sibling_calls.
995         (main): Set flag_optimize_sibling_calls for -O2.
996         * stmt.c (expand_return): Conditionize tail recursion by
997         flag_optimize_sibling_calls.
998
999 2000-03-29  Richard Henderson  <rth@cygnus.com>
1000
1001         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
1002         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
1003
1004 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
1005
1006         * except.c (add_eh_table_entry): Mark type_info's as referenced.        
1007
1008 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1009
1010         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
1011         is given.
1012         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
1013         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
1014         * config/rs6000/aix.h: then modified likewise.
1015
1016 2000-03-28  Richard Henderson  <rth@cygnus.com>
1017
1018         * rtl.h: Redistribute enum reg_note documentation. 
1019         Kill trailing whitespace.
1020         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
1021         Kill trailing whitespace.
1022
1023 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
1024
1025         * cppfiles.c (hash_IHASH): Just return i->hash.
1026         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
1027         htab_find_with_hash.
1028         (cpp_read_file): Likewise.
1029         (find_include_file): Likewise.  Properly initialize
1030         ih->nshort.  Share ih->name and ih->nshort if possible.
1031         * cpphash.c (_cpp_calc_hash): New function.
1032         (hash_HASHNODE): Just return h->hash.
1033         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
1034         htab_find_with_hash.
1035         * cpphash.h: Prototype _cpp_calc_hash.
1036         * cppinit.c (initialize_builtins): Provide a valid hash
1037         to _cpp_make_hashnode, using _cpp_calc_hash.
1038
1039         * cpphash.c (collect_expansion): # is not a special character
1040         in object-like macros.  In -traditional mode, /**/ is not
1041         token paste at the beginning or end of the line.
1042         * cpplib.c (do_include, do_import, do_include_next): If
1043         parse_include fails, return immediately.
1044
1045 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
1046
1047         * config/arm/arm.md (return peepholes): Update to reflect the new
1048         call insn patterns.
1049         * config/arm/arm.c (arm_volatile_func): Also check
1050         current_function_nothrow.
1051         (output_return_instruction, output_func_prologue): Use it.
1052         (arm_output_epilogue, arm_expand_prologue): Likewise.
1053
1054 2000-03-27  Tom Tromey  <tromey@cygnus.com>
1055
1056         * gcc.c (handle_braces): In {x*...} case, break out of loop if
1057         switch is found.
1058
1059 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1060
1061         * expr.c (store_constructor): SIZE now signed.
1062         For EXPR_SIZE, don't evaluate size; just needed if constant.
1063         * fold-const.c (fold): Fix a number of cases when folded tree is
1064         wrong type.
1065         * function.c (flush_addressof): Reenable.
1066         * tree.h (flush_addressof): Likewise.
1067         * toplev.c (independent_decode_option): Look at strings_processed.
1068         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
1069
1070 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
1071
1072         * sibcall.c (indentify_call_return_value): Find last call in the chain;
1073         Allow stack adjustment after function call.
1074
1075         * regmove.c (struct csa_memlist): Make mem field rtx *.
1076         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
1077         (try_apply_stack_adjustment): Replace whole MEM rtx.
1078         (combine_stack_adjustments_for_block): Update calls
1079         to record_one_stack_ref.
1080
1081 2000-03-28  Neil Booth  <NeilB@earthling.net>
1082
1083         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
1084         '\\' rather than a null character, so nulls are not special.  Fix
1085         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
1086         speed trigraph conversion.
1087         (_cpp_init_input_buffer): Initialize trigraph map.
1088
1089 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
1090
1091         * config/i386/i386.c (output_387_binary_op): Correct intel
1092         mode assembly output, and add spaces after commas in AT&T
1093         output.  Correct Unixware assembler comment.  Document input
1094         constraints.  Comment fp operations.  Reduce profligate buffer
1095         size.  Remove extraneous abort.  Localize temp var.
1096         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
1097         (output_fix_trunc): Add spaces after commas in assembly output.
1098
1099 2000-03-27  Richard Henderson  <rth@cygnus.com>
1100
1101         * i386-protos.h (ix86_match_ccmode): Declare.
1102         * i386.c (ix86_match_ccmode): New.
1103         (ix86_expand_fp_compare): Update for pattern renames.
1104         (ix86_expand_strlensi_unroll_1): Likewise.
1105         * i386.h (EXTRA_CC_MODES): Add CCZ.
1106         (SELECT_CC_MODE): Use it for EQ/NE zero.
1107         * i386.md (cmpsi_ccz_1): New.
1108         (cmpqi_ccz_1): New.
1109         (*testsi_ccz_1): New.
1110         (testqi_ccz_1): New.
1111         (cmpsi_ccno_1): Rename from cmpsi_0.
1112         (testsi_ccno_1): Rename from testsi_1.
1113         (testqi_ccno_1): Rename from testqi_1.
1114         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
1115         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
1116         (*cmphi_0): Use ix86_match_ccmode.
1117         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
1118         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
1119         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
1120         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
1121         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
1122         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
1123         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
1124         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
1125         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
1126         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
1127         (appropriate peepholes): Likewise.
1128         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
1129         (*subsi_3, *subhi_3, *subqi_3): Remove.
1130         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
1131         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
1132         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
1133         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
1134         (x86_shift_adj_1): Use CCZ.
1135         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
1136
1137 2000-03-27  Stan Cox  <scox@cygnus.com> 
1138
1139         * resource.h (mark_resource_type): New.
1140         * resource.c (find_dead_or_set_registers, mark_target_live_regs, 
1141         find_free_register): Use mark_resource_type.
1142         (mark_set_resources): Change include_delayed_effects
1143         to mark_resource_type.
1144         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, 
1145         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): 
1146         Use mark_resource_type.
1147         
1148 2000-03-27  Richard Henderson  <rth@cygnus.com>
1149
1150         * i386.md (call_pop_0, call_value_pop_0): New.
1151         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
1152         (call_value_pop_1): Likewise.
1153         (call_0, call_value_0): New.
1154         (call_1, call_value_1): Remove constraint from unused arg.
1155
1156 2000-03-27  Nick Clifton  <nickc@cygnus.com>
1157
1158         * invoke.texi (Spec Files): Document new spec % command created by
1159         Tom Tromey's recent patch.
1160
1161 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
1162
1163         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
1164         if not defined.
1165
1166 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1167
1168         * expr.c (expand_assignment): Fix typo in last change.
1169
1170         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
1171
1172 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1173
1174         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
1175         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
1176         and DECL_INLINE if FUNCTION_DECL.
1177         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
1178         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
1179         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
1180         (combine_parm_decls): Likewise.
1181         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
1182         * print-tree.c (print_node): Likewise.
1183         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
1184         DECL_TRANSPARENT_UNION on proper decl types.
1185         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
1186         * stor-layout.c (layout_decl): Only check DECL_PACKED and
1187         DECL_BIT_FIELD of FIELD_DECL.
1188         * tree.h (DECL_RESULT_FLD): New macro.
1189         
1190         * expr.c (expand_assignment): Add code to handle variable-sized
1191         BLKmode case.
1192
1193 2000-03-26  Richard Henderson  <rth@cygnus.com>
1194
1195         * calls.c (expand_call): Pass parms not original exp to
1196         optimize_tail_recursion.  Mind return value instead of looking
1197         for a barrier.
1198         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
1199         call_expr.  Move checks for call_expr and current_function_decl ...
1200         (expand_return): ... here.
1201
1202 2000-03-26  Tom Tromey  <tromey@cygnus.com>
1203
1204         * gcc.c (handle_braces): Recognize `%{<S}' construct.
1205         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
1206         defines.
1207         (process_command): Use them.
1208         (check_live_switch): Likewise.
1209         (give_switch): Skip ignored switches.
1210
1211 2000-03-26  Jan Hubicka  <jh@suse.cz>
1212
1213         * jump.c (jump_optimize_1): Fix typo in elide optimizations
1214         for minimal jump pass test.
1215
1216 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
1217
1218         * integrate.c (function_cannot_inline_p): Do inline functions that
1219         return `void'.
1220
1221 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1222
1223         * stor-layout.c (layout_type, set_sizetype): early_type_list is
1224         now a list of TREE_LIST entries, not types.
1225         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
1226
1227         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
1228         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
1229         int_bit_position.
1230         * config/mips/mips.c (function_arg): Likewise; also remove cast
1231         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
1232         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
1233         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
1234         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
1235         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
1236         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
1237         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
1238         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
1239         num_adjusts now unsigned.
1240         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
1241         * config/sparc/sparc.c (struct function_arg_record_value_parms):
1242         NREGS now unsigned.
1243         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
1244         as is BITPOS variable; use host_integerp and int_bit_position.
1245         (function_arg_record_value_2): Likewise.
1246         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
1247         Variable REGNO now unsigned.
1248         (function_arg_record_value): NREGS now unsigned.
1249
1250 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
1251
1252         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
1253
1254 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1255
1256         * Rework fields used to describe positions of bitfields and
1257         modify sizes to be unsigned and use HOST_WIDE_INT.
1258         * alias.c (reg_known_value_size): Now unsigned.
1259         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
1260         (really_start_incremental_init): Use bitsize_zero_node.
1261         (push_init_level, pop_init_level, output_init_element): Likewise.
1262         Use bitsize_unit_node and bitsize_one_node.
1263         (output_pending_init_elements, process_init_element): Likewise.
1264         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
1265         (make_extraction): Position and length HOST_WIDE_INT and unsigned
1266         HOST_WIDE_INT, respectively.
1267         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
1268         (num_sign_bit_copies): Returns unsigned.
1269         BITWIDTH now unsigned; rework arithmetic.
1270         Remove recursive call from arg to MAX.
1271         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
1272         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
1273         REGNO now unsigned.
1274         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
1275         (find_split_point, expand_compound_operation, make_extraction): LEN
1276         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
1277         (make_field_assignment): Likewise.
1278         (combine_simplify_rtx): Add cast.
1279         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
1280         (force_to_mode): WIDTH now unsigned; add cast.
1281         (if_then_else_cond): SIZE now unsigned.
1282         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
1283         (extended_count): Now returns unsigned.
1284         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
1285         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
1286         (simplify_comparison): MODE_WIDTH now unsigned.
1287         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
1288         (mark_used_regs_combine): Likewise; rework arithmetic.
1289         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
1290         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
1291         (record_promoted_value): REGNO now unsigned.
1292         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
1293         (get_last_value): REGNO now unsigned.
1294         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
1295         (reg_dead_regno, reg_dead_endregno): Now unsigned.
1296         (remove_death): Arg REGNO now unsigned.
1297         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
1298         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
1299         now unsigned.
1300         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
1301         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
1302         (struct cse_reg_info): REGNO now unsigned.
1303         (cached_regno): Now unsigned.
1304         (REGNO_QTY_VALID_P): Add cast.
1305         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
1306         (remove_invalid_regs): Likewise.
1307         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
1308         as are variables END and I.
1309         (get_cse_reg_info, insert): Likewise.
1310         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
1311         (canon_hash): Likewise.
1312         (insert_regs, lookup_for_remove): REGNO now unsigned.
1313         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
1314         New variable RN.
1315         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
1316         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
1317         * emit-rtl.c (subreg_realpart_p): Add cast.
1318         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
1319         (operand_subword_force): Arg I is now unsigned.
1320         * except.c (eh_regs): Variable I is now unsigned.
1321         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
1322         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
1323         length is unsigned HOST_WIDE_INT; likewise for internal variables.
1324         (store_split_bit_field, extract_fixed_bit_field): Likewise.
1325         (extract_split_bit_field, store_bit_field, extract_bit_field):
1326         Likewise.
1327         * expr.c (store_constructor_fields, store_constructor, store_field):
1328         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
1329         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
1330         (do_jump): Likewise.
1331         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
1332         MAX_SIZE is now unsigned.
1333         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
1334         (emit_group_store): Likewise.
1335         (emit_move_insn): I now unsigned.
1336         (store_constructor): Use host_integerp, tree_low_cst, and
1337         bitsize_unit_node.
1338         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
1339         Rework all calculations to use trees and new fields.
1340         * expr.h (promoted_input_arg): Regno now unsigned.
1341         (store_bit_field, extract_bit_field): Adjust types of pos and size.
1342         (mark_seen_cases): Arg is HOST_WIDE_INT.
1343         * flow.c (verify_wide_reg_1): REGNO now unsigned.
1344         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
1345         precisions and alignments are unsigned.
1346         (optimize_bit_field_compare, fold_truthop): Likewise.
1347         (int_const_binop): Adjust threshold for size_int_type_wide call.
1348         (fold_convert): Likewise.
1349         (size_int_type_wide): Make table larger and fix thinko that only
1350         had half of table used.
1351         (all_ones_mask_p, fold): Precisions are unsigned.
1352         * function.c (put_reg_info_stack): REGNO is unsigned.
1353         (instantiate_decl): Size is HOST_WIDE_INT.
1354         (instantiate_virtual_regs): I is unsigned.
1355         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
1356         (promoted_input_arg): REGNO is unsigned.
1357         * function.h (struct function): x_max_parm_reg is now unsigned.
1358         * gcse.c (max_gcse_regno): Now unsigned.
1359         (struct null_pointer_info): min_reg and max_reg now unsigned.
1360         (lookup_set, next_set): REGNO arg now unsigned.
1361         (compute_hash_table): REGNO and I now unsigned.
1362         (handle_avail_expr): regnum_for_replacing now unsigned.
1363         (cprop_insn): REGNO now unsigned.
1364         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
1365         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
1366         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
1367         * hard-reg-set.h (reg_class_size): Now unsigned.
1368         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
1369         * jump.c (mark_modified_reg): I now unsigned; add cast.
1370         (rtx_equal_for_thread_p): Add cast.
1371         * loop.c (max_reg_before_loop): Now unsigned.
1372         (struct_movable): REGNO now unsigned.
1373         (try_copy_prop): REGNO arg unsigned.
1374         (regs_match_p): XN and YN now unsigned.
1375         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
1376         (strength_reduce): Likewise; NREGS also unsigned.
1377         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
1378         * loop.h (struct iv_class): REGNO now unsigned.
1379         (max_reg_before_loop, first_increment_giv, last_increment_giv):
1380         Now unsigned.
1381         * machmode.h (mode_size, mode_unit_size): Now unsigned.
1382         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
1383         * optabs.c (expand_binop): I and NWORDS now unsigned.
1384         (expand_unop): I now unsigned.
1385         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
1386         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
1387         * real.c (significand_size): Now returns unsigned.
1388         * real.h (significand_size): Likewise.
1389         * regclass.c (reg_class_size): Now unsigned.
1390         (choose_hard_reg_mode): Both operands now unsigned.
1391         (record_reg_classes): REGNO and NR now unsigned.
1392         (reg_scan): NREGS now unsigned.
1393         (reg_scan_update): old_max_regno now unsigned.
1394         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
1395         * reload.c (find_valid_class): BEST_SIZE now unsigned.
1396         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
1397         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
1398         Likewise for variable R.
1399         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
1400         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
1401         (find_equiv_reg): Add casts.
1402         (regno_clobbered_p): Arg REGNO now unsigned.
1403         * reload.h (struct reload): NREGS now unsigned.
1404         (refers_to_regno_for_reload_p): Regno args are unsigned.
1405         (regno_clobbered_p): Likewise.
1406         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
1407         (compute_use_by_pseudos): REGNO now unsigned.
1408         (find_reg): I and J now unsigned, new variable K, and change loop
1409         variables accordingly; THIS_NREGS now unsigned.
1410         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
1411         (spill_hard_reg): REGNO arg now unsigned; add casts.
1412         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
1413         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
1414         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
1415         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
1416         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
1417         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
1418         (emit_reload_insns): REGNO now unsigned.
1419         (reload_cse_move2add): Add cast.
1420         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
1421         and rework loop.
1422         * resource.c (mark_referenced_resources, mark_set_resources): New
1423         variable R; REGNO and LAST_REGNO now unsigned.
1424         (mark_target_live_regs): J and REGNO now unsigned.
1425         * rtl.c (mode_size, mode_unit_size): Now unsigned.
1426         * rtl.h (union rtunion_def): New field rtuint.
1427         (XCUINT): New macro.
1428         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
1429         (operand_subword, operand_subword_force): Word number is unsigned.
1430         (choose_hard_reg_mode): Operands are unsigned.
1431         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
1432         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
1433         (regno_use_in, combine_instructions, remove_death): Likewise.
1434         (reg_scan, reg_scan_update): Likewise.
1435         (extended_count): Return is unsigned.
1436         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
1437         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
1438         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
1439         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
1440         (reg_reg_last_1): FIRS and LAST now unsigned.
1441         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
1442         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
1443         now unsigned.
1444         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
1445         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
1446         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
1447         (replace_regs): Arg NREGS now unsigned.
1448         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
1449         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
1450         (simplify_binary_operation): Likewise.
1451         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
1452         THIS_LAST now unsigned.
1453         (cselib_record_set): Add cast.
1454         * ssa.c (ssa_max_reg_num): Now unsigned.
1455         (rename_block): REGNO now unsigned.
1456         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
1457         sizes now unsigned.
1458         (all_cases_count): Just return -1 not -2.
1459         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
1460         Rework tests to use trees whenever possible.
1461         Use host_integerp and tree_low_cst.
1462         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
1463         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
1464         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
1465         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
1466         (smallest_mode_for_size): Likewise.
1467         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
1468         KNOWN_ALIGN is now an alignment, so simplify code.
1469         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
1470         (start_record_layout): Renamed from new_record_layout_info.
1471         Update to new fields.
1472         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
1473         New functions.
1474         (place_union_field): Renamed from layout_union_field.
1475         Update to use new fields in rli.
1476         (place_field): Renamed from layout_field.
1477         Major rewrite to use new fields in rli; pass alignment to layout_decl.
1478         (finalize_record_size): Rework to use new fields in rli and handle
1479         union.
1480         (compute_record_mode): Rework to simplify and to use new DECL fields.
1481         (finalize_type_size): Make rounding more consistent.
1482         (finish_union_layout): Deleted.
1483         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
1484         (layout_type, case RECORD_TYPE): Call new function names.
1485         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
1486         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
1487         (get_best_mode): UNIT is now unsigned; remove casts.
1488         * tree.c (bit_position): Compute from new fields.
1489         (byte_position, int_byte_position): New functions.
1490         (print_type_hash_statistics): Cast to remove warning.
1491         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
1492         (build_index_type): Likewise; make subtype of sizetype.
1493         (build_index_2_type): Pass sizetype to build_range_type.
1494         (build_common_tree_nodes): Use size_int and bitsize_int to
1495         initialize nodes; add bitsize_{zero,one,unit}_node.
1496         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
1497         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
1498         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
1499         (DECL_FIELD_BITPOS): Deleted.
1500         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
1501         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
1502         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
1503         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
1504         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
1505         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
1506         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
1507         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
1508         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
1509         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
1510         (DECL_ALIGN): Adjust to new field in union.
1511         (DECL_OFFSET_ALIGN): New field.
1512         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
1513         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
1514         (union tree_decl): Add struct for both aligns.
1515         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
1516         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
1517         (struct record_layout_info): Rework fields to have offset
1518         alignment and byte and bit position.
1519         (start_record_layout, place_field): Renamed from old names.
1520         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
1521         (byte_position, int_byte_position): Likewise.
1522         (get_inner_reference): Change types of position and length.
1523         * unroll.c (unroll_loop): New variable R; use for some loops.
1524         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
1525         (calculate_giv_inc): Arg REGNO now unsigned.
1526         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
1527         * varasm.c (assemble_variable): Clean up handling of size using
1528         host_integerp and tree_low_cst.
1529         (decode_addr_const): Use byte, not bit, position.
1530         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
1531         use tree_low_cst and int_bit_position.
1532         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
1533         
1534 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
1535
1536         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
1537         (reorder_block_def): New members eff_head and eff_end.
1538         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
1539         (verify_insn_chain): New function.
1540         (skip_insns_between_block): Add code to skip deleted insns.
1541         Check for note before using.
1542         (chain_reorder_blocks): Replace calls to skip_insns_between_block
1543         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
1544         Check for note before using.
1545         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
1546         (fixup_reorder_chain): Restructure, clean up, defect removal.
1547         (reorder_basic_blocks): Remove last_insn and references to it.
1548         Moved insn chain verification code into a new function (see above).
1549         Delete defective code that sets last insn.
1550         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
1551         all blocks.
1552
1553 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1554
1555         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
1556
1557 2000-03-24  Richard Henderson  <rth@cygnus.com>
1558
1559         * tree.c (lang_safe_for_unsave): Remove.
1560         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
1561         allowing for two levels of unsafeness.  Remove lang hook.
1562         * tree.h: Update declarations.
1563         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
1564         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
1565         Always fail sibcalls when there are pending cleanups.
1566
1567 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
1568
1569         * flow.c (propagate_block): When we delete an ADDR_VEC,
1570         also delete the BARRIER following it if there is one.
1571
1572 2000-03-24  Richard Henderson  <rth@cygnus.com>
1573
1574         * builtins.c (expand_builtin_bzero): Convert `length' argument
1575         to sizetype.
1576
1577 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
1578
1579         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
1580         comparison if regno's are equal.
1581         * calls.c (initialize_argument_informat): Add ecf_flags argument.
1582         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
1583         (expand_call): Update caller.
1584         Avoid making a sibling call if argument size of the callee is larger
1585         than argument size of the caller.
1586         Call hard_function_value with outgoing set if in sibcall pass.
1587         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
1588
1589         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
1590         Change LEAF_REGISTERS from an array initializer to actual array
1591         identifier. Move static global variable into the function.
1592         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
1593         sequences for leaf functions.
1594         * global.c (global_alloc): Likewise.
1595         * tm.texi (LEAF_REGISTERS): Update documentation.
1596
1597         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
1598         TARGET_FLAT leaf disabling hack.
1599         (LEAF_REGISTERS): Changed from an array initializer to actual array
1600         identifier to avoid duplication and remove the above hack.
1601         (FUNCTION_OK_FOR_SIBCALL): Define.
1602         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
1603         always like call attribute.
1604         (eligible_for_sibcall_delay): New attribute.
1605         (sibcall): New delay type.
1606         (sibcall, sibcall_value, sibcall_epilogue): New expands.
1607         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
1608         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
1609         * config/sparc/sparc.c (sparc_leaf_regs): New array.
1610         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
1611         New functions.
1612         (output_function_epilogue): Move part of the code into
1613         output_restore_regs.
1614         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
1615         TYPE_SIBCALL.
1616         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
1617         prototypes.
1618
1619         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
1620         until infrastructure is finished.
1621
1622 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
1623
1624         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
1625         (save_parm_insns): Not here.
1626
1627 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1628
1629         * builtins.c (expand_builtin_bzero): New function.
1630         (expand_builtin): Handle bzero.
1631
1632         * builtins.def: Add BUILT_IN_BZERO.
1633
1634         * c-common.c (c_common_nodes_and_builtins): Provide builtin
1635         prototype & function for bzero.
1636
1637 2000-03-23  Michael Meissner  <meissner@redhat.com>
1638
1639         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
1640         change adding TARGET_FP to the TF floating point insns, except for
1641         trunctfsf2, which generates direct calls to truncdfsf2.
1642
1643 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
1644
1645         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
1646         try to protect against middle-end changes that break binary
1647         compatibility.
1648         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
1649
1650 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1651
1652         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
1653
1654 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1655
1656         * calls.c (expand_call): If TARGET is passed by reference and
1657         is readonly, write a CLOBBER.
1658
1659 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1660
1661         * builtins.c (expand_builtin): Handle bcmp.
1662
1663         * builtins.def: Add BUILT_IN_BCMP.
1664
1665         * c-common.c (c_common_nodes_and_builtins): Provide builtin
1666         prototype & function for bcmp.
1667
1668 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
1669
1670         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
1671         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
1672         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
1673
1674 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
1675
1676         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
1677         alternative when using -fp64 -gp32.
1678
1679 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
1680
1681         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
1682         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
1683         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
1684
1685         * frame.h (frame_state): Revert last change.
1686         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
1687         * libgcc2.c (throw_helper): Revert last change.
1688         
1689 2000-03-22  Richard Henderson  <rth@cygnus.com>
1690
1691         * stmt.c (expand_asm_operands): Don't promote the temporary.
1692
1693 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1694
1695         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
1696         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
1697           c_get_alias_set): Likewise.
1698         * c-decl.c (duplicate_decls): Likewise.
1699         * c-typeck.c (default_conversion,build_unary_op): Likewise.
1700         * calls.c (initialize_argument_information): Likewise.
1701         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
1702         Likewise.
1703         * dwarfout.c (decl_class_context,output_type): Likewise.
1704         * expr.c (get_inner_reference): Likewise.
1705         * fold-const.c (simple_operand_p,fold): Likewise.
1706         * function.c (aggregate_value_p): Likewise.
1707         * stmt.c (expand_asm_operands): Likewise.
1708         * varasm.c (named_section): Likewise.
1709
1710 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
1711
1712         Implement dwarf2 exception handling for the ARM.
1713         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
1714         (DWARF_FRAME_RETURN_COLUMN): Define.
1715         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
1716         REG_FRAME_RELATED_EXPR note.
1717         (emit_sfm): Likewise.
1718         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
1719         * dwarf2out.c (reg_save): Handle saving a register to itself.
1720         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
1721         * except.c (eh_regs): Don't use the static chain reg if it's
1722         callee-saved.
1723         * frame.h (frame_state): Add cfa_saved field.
1724         * frame.c (execute_cfa_insn): Set it.
1725         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in 
1726         the epilogue.
1727         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
1728         Now takes a parm.
1729         (instantiate_virtual_regs): Adjust.
1730         * tm.texi: Adjust.
1731         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
1732         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
1733         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
1734
1735         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
1736         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
1737
1738 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1739
1740         * builtins.def: New file.
1741
1742         * Makefile.in (TREE_H): Depend on builtins.def.
1743
1744         * builtins.c (built_in_names): Use builtins.def.
1745
1746         * tree.h (built_in_function): Likewise.
1747
1748 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
1749
1750         * tree.c (size_in_bytes): Return size_zero_node, not
1751         integer_zero_node.
1752
1753 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
1754
1755         * config/fp-bit.c (pack_d): Correct the case when a denormal
1756         is rounded up and stops being denormal.
1757
1758 2000-03-21  Richard Henderson  <rth@cygnus.com>
1759
1760         * config/alpha/alpha.c (function_arg): Check for void_type_node
1761         before using MUST_PASS_IN_STACK.
1762
1763 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
1764
1765         * regmove.c (combine_stack_adjustments_for_block): Check that
1766         the stack pointer is a valid memory address.
1767
1768 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
1769
1770         * calls.c: re-install Mar 16 emit_library_call merge.
1771
1772 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
1773
1774         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
1775         we cannot be sure that if reload_completed base register will
1776         be properly aligned.
1777
1778 2000-03-21  Richard Henderson  <rth@cygnus.com>
1779
1780         * flow.c (delete_block): Fix typo last change.
1781
1782 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
1783
1784         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
1785         not COMPLETE_TYPE_P, to check the type of the expression.
1786
1787 2000-03-21  Michael Meissner  <meissner@redhat.com>
1788
1789         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
1790         all floating point insns that just tested the macro
1791         TARGET_HAS_XFLOATING_LIBS.
1792         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
1793         used to only use the gprs.
1794
1795 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1796
1797         * tree.h (COMPLETE_TYPE_P): New macro.
1798         (COMPLETE_OR_VOID_TYPE_P): New macro.
1799         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
1800         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
1801         * c-aux-info.c (gen_type): Use them.
1802         * c-common.c (c_expand_expr_stmt): Likewise.
1803         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
1804         grokdeclarator, grokparms, finish_struct, start_function,
1805         store_parm_decls, combine_parm_decls): Likewise.
1806         * c-parse.y (cast_expr): Likewise.
1807         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
1808         c_size_in_bytes, c_alignof, build_component_ref,
1809         build_indirect_ref, build_array_ref, convert_arguments,
1810         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
1811         * calls.c (initialize_argument_information): Likewise.
1812         * convert.c (convert_to_integer): Likewise.
1813         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
1814         * dwarfout.c (location_or_const_value_attribute,
1815         output_enumeration_type_die, output_structure_type_die,
1816         output_union_type_die, output_type): Likewise.
1817         * expr.c (safe_from_p, expand_expr): Likewise.
1818         * function.c (assign_parms): Likewise.
1819         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
1820         * tree.c (build_array_type, build_function_type,
1821         build_method_type, build_offset_type, build_complex_type): Likewise.
1822         * c-parse.c, c-parse.h: Regenerated.
1823
1824 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1825
1826         * config/c4x/rtems.h: Include config/rtems.h.
1827
1828 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
1829
1830         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
1831         decl is a FUNCTION_DECL
1832
1833 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
1834
1835         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
1836         function uses output registers.  Don't save RP for leaf functions.
1837         Do save RP even if no epilogue.
1838         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
1839         (CALL_USED_REGISTERS): Unmark in registers.
1840         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
1841         to near the middle.
1842
1843 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
1844
1845         * config/rs6000/rs6000.md (bunordered): New expander.
1846         (bordered): New expander.
1847         (buneq): New expander.
1848         (bunge): New expander.
1849         (bungt): New expander.
1850         (bunle): New expander.
1851         (bunlt): New expander.
1852         (bltgt): New expander.
1853  
1854         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
1855         (ccr_bit_negated_p): New function.
1856         (print_operand): For %C, generate appropriate cror for UNEQ,
1857         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
1858
1859 2000-03-20  Andreas Jaeger  <aj@suse.de>
1860
1861         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
1862         warning.
1863
1864         * tree.h (safe_for_unsave): Prototype.
1865
1866 2000-03-20  Richard Henderson  <rth@cygnus.com>
1867
1868         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
1869         (combine_stack_adjustments_for_block): Don't allow sp references
1870         in the side of a set we're not fixing up.
1871         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
1872         after life_analysis.
1873
1874 2000-03-20  Richard Henderson  <rth@cygnus.com>
1875
1876         * calls.c (expand_call): Don't bother generating tail call
1877         sequences if there are pending cleanups.  Use
1878         expand_start_target_temps/expand_end_target_temps to elide
1879         cleanups created during sibcall expansion.
1880
1881 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
1882
1883         * configure.in: Set $IFS to a value if it doesn't already have one
1884         in the --enable-checking handling.
1885         * configure: Regenerate.
1886
1887 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1888
1889         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
1890         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
1891         Regenerated.
1892
1893 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
1894
1895         * jump.c (delete_noop_moves): Remove code attempting to
1896         combine stack adjustments.
1897
1898 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1899
1900         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
1901         * except.c (emit_cleanup_handler): Use them.
1902         (expand_end_all_catch): Likewise.
1903         * function.c (fixup_var_refs): Likewise.
1904         (expand_function_end): Clear catch_clauses_last.
1905         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
1906         * except.h (struct eh_status): New field x_catch_clauses_last.
1907         (catch_clauses_last): New define.
1908
1909         * Makefile.in (tree.o): Depend on HASHTAB_H.
1910         * tree.c: Include hashtab.h.
1911         (struct type_hash): Remove next field.
1912         (TYPE_HASH_SIZE): Remove.
1913         (TYPE_HASH_INITIAL_SIZE): New define.
1914         (type_hash_table): Change type to htab_t.
1915         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
1916         mark_hash_entry): New functions.
1917         (init_obstacks): Allocate type hash.
1918         (type_hash_lookup): Use htab functions.
1919         (type_hash_add, mark_type_hash): Likewise.
1920         (dump_tree_statistics): Call print_type_hash_statistics.
1921
1922 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1923
1924         * rs6000/t-aix41: New file.
1925
1926         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
1927
1928 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
1929
1930         * tm.texi (Driver): Fix typos and tweak entry for
1931         INCLUDE_DEFAULTS.
1932         Move misplaced STRUCT_FORCE_BLK entry ...
1933         (Storage Layout): ... to here.
1934         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
1935
1936 2000-03-19  Richard Henderson  <rth@cygnus.com>
1937
1938         * flow.c (delete_block): Delete the addr_vec along with the block.
1939         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
1940         reference labels.
1941
1942         * fold-const.c (extract_muldiv): Apply type check for defined
1943         overflow to multiply as well as divide.
1944
1945         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
1946
1947 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
1948
1949         * emit-rtl.c (remove_unncessary_notes): Check that all
1950         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
1951         associated NOTE_BLOCK.
1952         * function.h (identify_blocks): Update comments.
1953         (reorder_blocks): Declare.
1954         * function.c (identify_blocks): Don't take paramters.
1955         (reorder_blocks): Don't take parameters.
1956         * loop.h (find_loop_tree_blocks): Remove.
1957         (unroll_block_trees): Likewise.
1958         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
1959         reorder_blocks instead of unroll_block_trees.h
1960         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
1961         * stmt.c (find_loop_tree_blocks): Remove.
1962         (unroll_block_trees): Likewise.
1963         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
1964         in whole-function mode.
1965         * tree.h (reorder_blocks): Remove declaration.
1966
1967         * expr.c: Include intl.h.
1968         * Makefile.in (expr.o): Depend on intl.h.
1969         
1970 2000-03-18  Richard Henderson  <rth@cygnus.com>
1971
1972         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
1973
1974 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
1975
1976         * tree.h (tree_index): Remove enumerals for integer types.
1977         (integer_type_kind): New type.
1978         (integer_types): New variable.
1979         (char_type_node): Adjust.
1980         (signed_char_type_node): Likewise.
1981         (unsigned_char_type_node): Likewise.
1982         (short_integer_type_node): Likewise.
1983         (short_unsigned_type_node): Likewise.
1984         (integer_type_node): Likewise.
1985         (unsigned_type_node): Likewise.
1986         (long_integer_type_node): Likewise.
1987         (long_unsigned_type_node): Likewise.
1988         (long_long_integer_type_node): Likewise.
1989         (long_long_unsigned_type_node): Likewise.
1990         * tree.c (integer_types): New variable.
1991         (init_obstacks): Register it as a root.
1992
1993 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
1994
1995         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
1996         NEXT_INSN. Update last insn in chain.
1997
1998 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
1999
2000         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
2001         with TYPE_DECL_SUPPRESS_DEBUG set.
2002
2003 2000-03-18  Richard Henderson  <rth@cygnus.com>
2004
2005         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
2006
2007 2000-03-18  Richard Henderson  <rth@cygnus.com>
2008
2009         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
2010         care for HALF_PIC_P.
2011         (expander_call_insn_operand): Remove.
2012         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
2013         * i386.h (PREDICATE_CODES): Update.
2014         * i386.md (all call expanders): Remove predicates, remove special
2015         handling for half-pic.
2016         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
2017         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
2018         (sibcall_epilogue): New.
2019
2020 2000-03-17  Richard Henderson  <rth@cygnus.com>
2021
2022         * rtlanal.c (single_set): Reject if the parallel has anything
2023         except SET or USE or CLOBBER.
2024
2025 2000-03-17  Jeff Law  <law@cygnus.com>
2026             Richard Henderson  <rth@cygnus.com>
2027
2028         * Makefile.in (OBJS): Add sibcall.o.
2029         (sibcall.o): New.
2030         * sibcall.c: New file.
2031         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
2032         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
2033         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
2034         Emit sibcall patterns when requested.  Update all callers.
2035         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
2036         elimination seems feasable.
2037         * final.c (leaf_function_p): Sibling calls don't discount being
2038         a leaf function.
2039         * flow.c (HAVE_sibcall_epilogue): Provide default.
2040         (find_basic_blocks_1): Sibling calls don't throw.
2041         (make_edges): Make edge from sibling call to EXIT.
2042         (propagate_block): Don't remove sibcall_epilogue insns.
2043         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
2044         (sibcall_epilogue): New.
2045         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
2046         (identify_blocks_1): Likewise.  Break out from ...
2047         (identify_blocks): ... here.
2048         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
2049         (reorder_blocks): ... here.
2050         (init_function_for_compilation): Zap prologue/epilogue as varrays.
2051         (record_insns): Extend a varray instead of mallocing new memory.
2052         (contains): Read a varray not array of ints.
2053         (sibcall_epilogue_contains): New.
2054         (thread_prologue_and_epilogue_insns): Emit and record
2055         sibcall_epilogue patterns.
2056         (init_function_once): Allocate prologue/epilogue varrays.
2057         * genflags.c (gen_insn): Treat sibcall patterns as calls.
2058         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
2059         Broken out from ...
2060         (save_for_inline_nocopy): ... here.
2061         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. 
2062         Broken out from ...
2063         (expand_inline_function): ... here.
2064         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
2065         (subst_constants): Handle 'n' formats.
2066         * jump.c (jump_optimize_minimal): New.
2067         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
2068         optimizations if it's set.
2069         * rtl.c (copy_rtx): Do copy jump & call for insns.
2070         * rtl.h (struct rtx_def): Document use of jump and call for insns.
2071         (SIBLING_CALL_P): New.
2072         (sibcall_use_t): New.
2073         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
2074         Invoke optimize_sibling_and_tail_recursive_calls.
2075         * tree.c (lang_safe_for_unsave): New.
2076         (safe_for_unsave): New.
2077         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
2078
2079         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
2080         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
2081         (*sibcall_osf_1, *sibcall_value_osf_1): New.
2082
2083 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
2084
2085         * objc/objc-act.c (encode_method_prototype): Pass types, not
2086         PARM_DECLs, to int_size_in_bytes.
2087
2088 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
2089
2090         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
2091
2092         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
2093         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
2094
2095 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2096
2097         * Clean up usages of TREE_INT_CST_LOW.
2098         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
2099         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
2100         Regenerated.
2101         * c-tree.h (min_precision): Move declaration to here.
2102         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
2103         (build_unary_op, add_pending_init): Use bit_position.
2104         (pending_init_member, process_init_element): Likewise.
2105         (really_start_incremental_init, push_init_level, pop_init_level):
2106         Don't make copies of nodes or modify them in place, use consistent
2107         types when tracking positions, and use tree routines computations.
2108         (set_init_index, output_init_element): Likewise.
2109         (output_pending_init_elements, process_init_element): Likewise.
2110         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
2111         tree_low_cst and int_bit_position; also minor cleanup.
2112         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
2113         (print_cst_octal): Precision is unsigned.
2114         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
2115         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
2116         (simple_type_align_in_bits): Result is unsigned int.
2117         Use tree_int_low_cst and host_integerp.
2118         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
2119         (field_byte_offset): Result is HOST_WIDE_INT.
2120         Change types of internal variables so alignments are unsigned int,
2121         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
2122         Use host_integerp, tree_low_cst, and int_bit_position.
2123         (add_bit_offset_attribute): Likewise.
2124         (add_data_member_location_attribute): Use tree_cst_low.
2125         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
2126         (add_bit_size_attribute): Use tree_low_cst.
2127         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
2128         * dwarfout.c: Similar changes to dwarf2out.c.
2129         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
2130         * genoutput.c (n_occurences): Return -1 for null string.
2131         (strip_whitespace): Accept null string and make into function.
2132         (scan_operands): Reflect above changes.
2133         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
2134         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
2135         * ssa.c (rename_registers): Add missing cast of arg to bzero.
2136         * tree.c (int_size_in_bytes): Check for too big to represent.
2137         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
2138         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
2139         New declarations.
2140         (min_precision): Delete from here.
2141         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
2142         and int_bit_position.
2143         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
2144         (encode_method_def): Likewise.
2145         (build_ivar_list_initializer): Use int_bit_position.
2146         (generate_shared_structures): Convert size.
2147         (encode_type, encode_complete_bitfield): Use integer_zerop.
2148         (encode_bitfield): Use tree_low_cst and int_bit_position.
2149         
2150 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2151
2152         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
2153
2154 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2155
2156         * call.c (special_function_p): It is only malloc if it returns
2157         Pmode.
2158
2159 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2160
2161         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
2162         (C33_FLAG, TARGET_C3X): Add macros.
2163         (TARGET_SWITCHES): Add -m33 option.
2164         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
2165         
2166 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2167         
2168         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
2169         (PARALLEL_PACK_FLAG): Delete.
2170         (TARGET_SWITCHES): Update.
2171         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
2172
2173 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2174
2175         * fold-const.c (fold): Fix a few cases when the returned result
2176         is not of the same type as the input.
2177
2178 2000-03-16  Nick Clifton  <nickc@cygnus.com>
2179
2180         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
2181         warning.
2182
2183 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2184
2185         * libgcc2.h: Move prototypes above macros with the same name.
2186         Wrap some function prototypes in the conditional which indicates
2187         whether they are supported, i.e. "BITS_PER_UNIT == 8".
2188
2189 2000-03-16  Richard Henderson  <rth@cygnus.com>
2190
2191         * calls.c: Revert last two changes.
2192
2193 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
2194
2195         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
2196         has exponent 0 is a zero.
2197
2198         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
2199         HASH may already be nonzero.  Add code/mode into hash value
2200         immediately after repeat label.
2201         (cselib_lookup): Don't leave the hash table in an inconsistent
2202         state before a hash lookup operation.
2203
2204 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
2205
2206         * i386.md (all HI and QI mode non-move patterns):  Conditionize
2207         by TARGET_[HQ]IMODE_MATH.
2208         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
2209         x86_promote_qi_regs): Declare.
2210         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
2211         TARGET_PROMOTE_QI_REGS): New macros.
2212         (PROMOTE_MODE): New macro.
2213         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
2214         x86_promote_qi_regs): New global variables.
2215
2216 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
2217
2218         * calls.c (emit_library_call_value_1): Break out from ...; handle
2219         VOIDmode function calls too.
2220         (emit_library_call_value): ... here.
2221         (emit_library_call): Implement by calling emit_library_call_value_1.
2222
2223 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
2224
2225         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
2226         Update arg_space_so_far on stack adjustments.
2227         (emit_library_call, emit_library_call_value): Likewise; take into
2228         account arg_space_so_far and pending_stack_adjust when calculcating
2229         the boundary.
2230
2231 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
2232
2233         * flow.c: Move all basic block reordering code into its own file.
2234         (create_basic_block): Externalize.
2235         * bb-reorder.c: New file. Copy all basic block reordering code from
2236         flow.c to this file.
2237         (reorder_basic_blocks): Fix fencepost error in for-loop.
2238         (reorder_basic_blocks): Remove braces from single statement for-loops.
2239         * basic-block.h: Add declaration for create_basic_block.
2240         * Makefile.in: Add rules for bb-reorder.o.
2241
2242 2000-03-16  Neil Booth  <NeilB@earthling.net>
2243
2244         * cppinit.c (handle_option):  Implement #unassert directive
2245         as -A- command line option.
2246         (print_help):  Update.
2247         * cpptexi.c:  Update.
2248
2249 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
2250
2251         * md.texi (Standard Names): Document `jump'.
2252
2253 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
2254
2255         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
2256         gotos.
2257
2258 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
2259
2260         See the ChangeLog on the branch for more details.
2261         
2262         * configure.in: Merge in changes from newppc-branch.
2263         * configure: Regenerate.
2264         * config/rs6000/*: Merge in changes from newppc-branch.
2265         Also correct copyright notices.
2266
2267 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
2268
2269         * acconfig.h (HAVE_GAS_WEAK): New define.
2270         * configure.in (assembler weak support): Check for .weak support.
2271         * config.in, configure: Rebuilt.
2272         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
2273         HAVE_GAS_WEAK is defined.
2274
2275 2000-03-15  Nick Clifton  <nickc@cygnus.com>
2276
2277         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
2278         asm_fprintf().
2279
2280 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
2281
2282         * cppfiles.c (open_include_file): New function.
2283         (find_include_file, cpp_read_file): Use it.
2284
2285 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
2286
2287         * cpphash.c (dump_hash_helper): Take the slot, not the element.
2288
2289 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
2290
2291         * flow.c (verify_flow_info): Check for unconditional return.
2292
2293 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
2294
2295         * config/ia64/ia64.md (restore_stack_nonlocal): New.
2296         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
2297         (__ia64_restore_stack_nonlocal): New.
2298         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
2299
2300 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2301
2302         * cpphash.c (collect_formal_parameters): Do not complain about
2303         parameter names that just start with `__VA_ARGS__'.
2304
2305 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
2306
2307         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
2308         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
2309         * i386.c (pentiumpro_cost): Set mul cost to 4.
2310         (x86_use_movx): Set for PPro.
2311
2312 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
2313
2314         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
2315         STACK_BOUNDARY for empty frames now.
2316
2317 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
2318
2319         * stor-layout.c (layout_union): Remove.
2320         (layout_union_field): New function, split out from layout_union.
2321         (finish_union_layout): Likewise.
2322         (layout_field): Handle unions by calling layout_union_field.
2323         (finish_record_layout): Handle unions.
2324         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
2325         QUAL_UNION_TYPE handling.
2326
2327 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
2328
2329         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
2330         end of basic block is jump_insn, not barrier; use create_basic_block
2331         instead of creating basic block by hand.
2332
2333 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
2334
2335         * flow.c (reorder_basic_blocks): Account for barriers when writing
2336         over NEXT_INSN (last_bb->end).
2337         (verify_flow_info): Add check for missing barriers.
2338
2339 2000-03-14  Greg McGary  <gkm@gnu.org>
2340
2341         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
2342         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
2343         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
2344         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
2345         __unbounded, __unbounded__): New keywords.
2346         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
2347         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
2348         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
2349
2350 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
2351
2352         * cselib.h: New file.
2353         * alias.c: Include "cselib.h".
2354         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
2355         MEMs as two new arguments.
2356         (get_addr): New static function.
2357         (find_base_term): Handle VALUEs.
2358         (memrefs_conflict_p): Likewise.
2359         (true_dependence): Call get_addr on the addresses.
2360         Call fixed_scalar_and_varying_struct_p with addresses that have been
2361         passed through get_addr and canon_rtx.
2362         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
2363         with true_dependence.
2364         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
2365         * loop.c: Include "cselib.h".
2366         (load_mems): Process extended basic block that enters the loop with
2367         cselib.  Use that information to change initialization of the shadow
2368         register so that a constant equivalence is seen by later passes.
2369         * reload1.c: Include "cselib.h".
2370         (reload_cse_invalidate_regno): Delete function.
2371         (reload_cse_mem_conflict_p): Likewise.
2372         (reload_cse_invalidate_mem): Likewise.
2373         (reload_cse_invalidate_rtx): Likewise.
2374         (reload_cse_regno_equal_p): Likewise.
2375         (reload_cse_check_clobber): Likewise.
2376         (reload_cse_record_set): Likewise.
2377         (reg_values): Delete static variable.
2378         (invalidate_regno_rtx): Likewise.
2379         (reload_cse_delete_noop_set): New static function.
2380         (reload_cse_simplify): New static function, broken out of
2381         reload_cse_regs_1.
2382         (reload_cse_noop_set_p): Delete unused argument INSN.
2383         Just call rtx_equal_for_cselib_p on set source and destination.
2384         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
2385         reload_cse_delete_noop_set.  Delete code to keep track of values; use
2386         cselib functions instead.  Delete code to push/pop obstacks.
2387         (reload_cse_simplify_set): Use cselib to find equivalent values.
2388         Delete code to push/pop obstacks.
2389         (reload_cse_simplify_operands): Likewise.
2390         * rtl.def (VALUE): New rtx code.
2391         * rtl.h (union rtunion_def): New elt rt_cselib.
2392         (X0CSELIB, CSELIB_VAL_PTR): New macros.
2393         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
2394         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
2395         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
2396         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
2397         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
2398         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
2399         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
2400         cselib_record_set, cselib_record_sets): New static functions.
2401         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
2402         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
2403         references_value_p): New functions.
2404         (MAX_USELESS_VALUES, REG_VALUES): New macros.
2405         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
2406         n_useless_values, reg_values, callmem, cselib_obstack,
2407         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
2408         New static variables.
2409         * varray.h (union varray_data_tag): New elt te.
2410         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
2411         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
2412         dependencies.
2413
2414 2000-03-14  Nick Clifton  <nickc@cygnus.com>
2415
2416         * gcc.c (do_spec_1): Catch the case where %* is used in a
2417         substitution pattern, but it has not been initialised.
2418         Issue a meaningful error message if an unrecognised operator
2419         is encountered in a spec string.
2420
2421 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
2422
2423         * function.c (prepare_function_start): Correctly initialize
2424         cfun->stack_alignment_needed.
2425
2426 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
2427
2428         * cppfiles.c (find_include_file): Don't assume nshort is a
2429         substring of name.
2430
2431 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
2432
2433         * configure.in (hppa configurations): Add pa32-regs.h to the
2434         list of tm files as appropriate.
2435         * configure: Rebuilt.
2436         * pa.c (compute_frame_size): Remove explicit knowledge about FP
2437         register numbering.
2438         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
2439         (fmpyaddoperands, fmpysuboperands): Likewise.
2440         * pa.h: Remove various definitions which depend on knowing
2441         how registers are numbered.
2442         * pa32-regs.h: New file with PA32 register numbering specific
2443         definitions.
2444
2445 2000-03-14  Richard Henderson  <rth@cygnus.com>
2446
2447         * regmove.c (combine_stack_adjustments): New.
2448         (stack_memref_p, single_set_for_csa): New.
2449         (free_csa_memlist, record_one_stack_memref): New.
2450         (try_apply_stack_adjustment): New.
2451         (combine_stack_adjustments_for_block): New.
2452         * rtl.h (combine_stack_adjustments): Declare.
2453         * toplev.c (rest_of_compilation): Call it.
2454
2455         * i386.md: Revert 2000-01-16 change.
2456
2457 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2458
2459         * gccbug.in: Add web category, gcc specific classes.
2460
2461 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
2462
2463         * stor-layout.c (finalize_record_size): Fix typo.
2464
2465 2000-03-14  Stan Shebs  <shebs@apple.com>
2466
2467         * c-typeck.c (c_alignof): Error on incomplete types.
2468         * extend.texi (Alignment): Document this.
2469
2470 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
2471
2472         * cppfiles.c: Include mkdeps.h.
2473         (find_include_file, read_include_file): Remove _cpp_ prefix
2474         from name, make static.
2475         (_cpp_execute_include): New function, broken out of
2476         do_include.
2477
2478         * cpplib.c: Don't include mkdeps.h.
2479         (struct directive): Remove type field. Reorder entries.  The
2480         function takes only one argument.
2481         (struct if_stack): Make type field an int.
2482         (directive_table): Rename to dtable.  Generate it, the
2483         prototypes of the directive handlers, and the enum for the
2484         directive numbers, from a template macro.
2485         (do_ifndef, do_include_next, do_import): New functions.
2486         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
2487         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
2488         do_ident, do_assert, do_unassert, do_sccs): Take only one
2489         argument.
2490         (do_sccs): Define always, but alter behavior based on
2491         SCCS_DIRECTIVE.
2492         (_cpp_handle_directive, consider_directive_while_skipping):
2493         Restructure for new directive table layout.
2494
2495         (pass_thru_directive): Take a directive number, not a pointer
2496         to a struct directive.
2497         (parse_include): New function, broken out of do_include.
2498         (do_include, do_import, do_include_next): Use parse_include
2499         and _cpp_execute_include.
2500         (do_elif, do_else): Test for T_ELSE specifically when checking
2501         for #elif/#else after #else.
2502         (parse_ifdef): New function, broken out of do_ifdef.
2503         (validate_else): Expect a name arg without a leading #.
2504         (if_directive_name): Delete.
2505         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
2506         directive handlers with only one argument.
2507
2508         * cpphash.h: Update prototypes.
2509         (enum node_type): Remove entries for directives.
2510         * Makefile.in: Update dependencies.
2511
2512         * cpphash.c (dump_hash_helper): Only dump nodes of type
2513         T_MACRO.  Emit a newline after each definition.
2514
2515 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2516
2517         * gccbug.in: New file.
2518         * configure.in (all_outputs): Add gccbug.
2519         * Makefile.in (install-common): Install gccbug.
2520         (GCCBUG_INSTALL_NAME): New variable.
2521         * configure: Rebuilt.
2522         
2523 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
2524
2525         * function.c (put_var_into_stack): Use type_for_mode to calculate
2526         part_type.  Use MEM_SET_IN_STRUCT_P.
2527         * expr.c (store_field): Handle CONCAT.
2528         (store_constructor): Use fields_length.
2529         * tree.c (fields_length): New fn.
2530         * tree.h: Declare it.
2531
2532 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
2533
2534         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
2535         (cpplex.o): New target.
2536         * po/POTFILES.in: Add cpplex.c.
2537
2538         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
2539         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
2540         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
2541         skip_block_comment, skip_line_comment, skip_comment,
2542         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
2543         _cpp_parse_name, skip_string, parse_string,
2544         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
2545         _cpp_get_directive_token, find_position,
2546         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
2547         (maybe_macroexpand, _cpp_lex_token): New functions.
2548
2549         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
2550         parse_goto_mark): Delete.
2551         (_cpp_handle_eof): New function.
2552         (_cpp_handle_directive): Rename from handle_directive.
2553         (_cpp_output_line_command): Rename from output_line_command.
2554         (do_if, do_elif): Call _cpp_parse_expr directly.
2555         * cppfiles.c (_cpp_read_include_file): Don't call
2556         init_input_buffer here.
2557         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
2558         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
2559         here; pop the token_buffer and skip the rest of the line here.
2560         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
2561         here.
2562
2563         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
2564         Define here.
2565         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
2566         CPP_GOTO_MARK): New macros.
2567         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
2568         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
2569         _cpp_read_and_prescan, _cpp_init_input_buffer,
2570         _cpp_grow_token_buffer, _cpp_get_directive_token,
2571         _cpp_handle_directive, _cpp_handle_eof,
2572         _cpp_output_line_command): Prototype them here.
2573         * cpplib.h (enum cpp_token): Add CPP_MACRO.
2574         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
2575         quote_string, output_line_command): Remove.
2576
2577 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
2578
2579         * stmt.c (expand_end_case): RANGE may be signed, and when checking
2580         whether it is too large we must also verify that it isn't negative.
2581
2582 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
2583
2584         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
2585         (movsi_zero_liveg0): Remove.
2586         (movsf_insn_novis_liveg0): Remove.
2587         (negsi2): Remove.
2588         (negsi2_not_liveg0): Rename to negsi2.
2589         (one_cmplsi2): Remove.
2590         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
2591         (one_cmplsi2_liveg0): Remove.
2592         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
2593         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
2594         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
2595         (PREDICATE_CODES): Remove zero_operand.
2596         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
2597         TARGET_BROKEN_SAVERESTORE.
2598         (zero_operand): Remove.
2599         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
2600         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
2601         options.
2602         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
2603         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
2604         TARGET_BROKEN_SAVERESTORE): Remove.
2605         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
2606         Remove.
2607         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
2608         Remove.
2609         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
2610         Remove.
2611
2612         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
2613
2614 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
2615
2616         * cpplib.c (do_pragma_implementation): Fix off-by-one error
2617         truncating a string.  Don't assume tokens are nul terminated.
2618         Problem noted by Andreas Jaeger <aj@suse.de>
2619
2620 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
2621
2622         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
2623         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
2624         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
2625
2626 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
2627
2628         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
2629         STRUCTURE_SIZE_BOUNDARY.
2630
2631 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
2632
2633         * tree.h (record_layout_info_s): New structure.
2634         (record_layout_info): New type.
2635         (new_record_layout_info): New function.
2636         (layout_field): Likewise.
2637         (finish_record_layout): Likewise.
2638         * stor-layout.c (layout_record): Remove.
2639         (new_record_layout_info): New function.
2640         (layout_field): New function, broken out from layout_record.
2641         (finalize_record_size): Likewise.
2642         (compute_record_mode): Likewise.
2643         (finalize_type_size): New function, broken out from layout_type.
2644         (finish_record_layout): Likewise.
2645         (layout_type): Use them.
2646         
2647 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
2648
2649         * cpphash.c: Don't include version.h.
2650         (special_symbol) [case T_VERSION]: Look for the string in
2651         hp->value.cpval; don't use version_string.
2652         * cppinit.c (initialize_builtins): Set hp->value.cpval for
2653         __VERSION__ to version_string.
2654         * Makefile.in (cpphash.o): Update deps.
2655
2656 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
2657
2658         Convert cpplib to use libiberty/hashtab.c.
2659
2660         * cpplib.h (struct cpp_reader): Make hashtab and
2661         all_include_files of type 'struct htab *'.  Delete HASHSIZE
2662         and ALL_INCLUDE_HASHSIZE macros.
2663
2664         * cpphash.h: Update prototypes.
2665         (struct hashnode): Remove next, prev, and bucket_hdr members.
2666         Make length a size_t.  Add hash member.
2667         (struct ihash): Remove next member.  Add hash member.  Make
2668         name a flexible array member.
2669
2670         * cppfiles.c: Include hashtab.h.
2671         (include_hash): Delete.
2672         (IHASHSIZE): New macro.
2673         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
2674         (cpp_included): Do the hash lookup here.
2675         (_cpp_find_include_file): Rewrite.
2676         (cpp_read_file): Put the "fake" hash entry into the hash
2677         table.  Honor the control_macro, if it turns out we've seen
2678         the file before.  Don't push the buffer here.
2679         (_cpp_read_include_file): Push the buffer here.
2680         (OMODES): New macro.  Use it whenever we call open(2).
2681
2682         * cpphash.c: Include hashtab.h.
2683         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
2684         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
2685         _cpp_lookup_slot): New functions.
2686         (HASHSIZE): new macro.
2687         (hashf, _cpp_install, _cpp_delete_macro): Delete.
2688         (_cpp_lookup): Use hashtab.h routines.
2689
2690         * cppinit.c: Include hashtab.h.
2691         (cpp_reader_init): Call _cpp_init_macro_hash and
2692         _cpp_init_include_hash.  Don't allocate hashtab directly.
2693         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
2694         pfile->all_include_files.
2695         (initialize_builtins): Use _cpp_make_hashnode and
2696         htab_find_slot to add hash entries.
2697         (cpp_finish): Just call _cpp_dump_macro_hash.
2698         * cpplib.c: Include hashtab.h.
2699         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
2700         create hash entries.
2701         (do_pragma_poison, do_assert): Likewise.
2702         (do_include): Don't push the buffer here.  Don't increment
2703         system_include_depth unless _cpp_read_include_file succeeds.
2704         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
2705         or htab_remove_elt.
2706         (do_pragma_implementation): Use alloca to create copy.
2707
2708         * Makefile.in: Update dependencies.
2709
2710 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2711
2712         * cppinit.c (cl_directive_handler): More K&R fixing.
2713
2714 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
2715
2716         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
2717         STACK_BOUNDARY.
2718         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
2719
2720 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2721
2722         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
2723         Change from char[] to macros.
2724
2725 2000-03-12  Neil Booth  <NeilB@earthling.net>
2726
2727         * cppinit.c (cpp_start_read): Update indirect function
2728         call to K&R C.
2729
2730 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
2731
2732         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
2733         entry.
2734
2735         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
2736         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
2737
2738 2000-03-11  Neil Booth  <NeilB@earthling.net>
2739
2740         * cppinit.c (struct pending option): Replace undef with a 
2741         pointer to a directive handling routine.
2742         (struct cpp_pending): Replace separate assert_ and define_ 
2743         lists with one directive_ list.
2744         (new_pending_define): Rename new_pending_directive. Extra
2745         argument is the directive's handling routine.
2746         (handle_option): Update to use new_pending_directive.
2747
2748 2000-03-11  Neil Booth  <NeilB@earthling.net>
2749
2750         * cppfiles.c (file_cleanup, _cpp_find_include_file,
2751         remap_filename, _cpp_read_include_file, actual_directory,
2752         hack_vms_include_specification): Replace bcopy(), index() etc
2753         calls.  Add casts to some allocations.  Make some variables
2754         pointers to const [unsigned] char.
2755         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
2756         collect_formal_parameters): Similarly.
2757         * cppinit.c (struct pending_option, append_include_chain,
2758         cpp_options_init, cpp_reader_init, initialize_standard_includes,
2759         cpp_start_read, new_pending_define, handle_option): Similarly.
2760         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
2761         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
2762         do_pragma_implementation, detect_if_not_defined,
2763         do_ifdef, skip_if_group, cpp_get_token, parse_string,
2764         do_assert, do_unassert): Similarly.
2765         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
2766         function prototypes.
2767         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.   
2768
2769 2000-03-10  Richard Henderson  <rth@cygnus.com>
2770
2771         * builtins.c (expand_builtin_strlen): Revert last change.
2772         Use emit_insn_before if we're at the beginning of a sequence.
2773
2774 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
2775
2776         * builtins.c (expand_builtin_strlen): Make sure that we have something
2777         at the beginning of the sequence.
2778
2779         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
2780         deferred inlines.
2781
2782         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
2783
2784 2000-03-10  Richard Henderson  <rth@cygnus.com>
2785
2786         * except.c (can_throw): Use INTVAL on a CONST_INT.
2787         (reachable_handlers): Likewise.
2788         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
2789
2790 2000-03-10  Andreas Jaeger  <aj@suse.de>
2791
2792         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
2793         MD_STARTFILE_PREFIX since those are not needed on linux.
2794         (ASM_FILE_START): New, from mips/gnu.h.
2795
2796 2000-03-09  Richard Henderson  <rth@cygnus.com>
2797             Alex Samuel  <samuel@codesourcery.com> and others
2798         
2799         * Makefile.in (ssa.o): New rule.
2800         (OBJS): Add ssa.o.
2801         (STAGESTUFF): Add *.ssa and *.ussa.
2802         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
2803         * rtl.def (PHI): New RTL expression.
2804         * rtl.h (clear_log_links): New declaration.
2805         (convert_to_ssa): Likewise.
2806         (convert_from_ssa): Likewise.
2807         * flow.c (split_edge): If the entry node falls through to the
2808         split edge's source block, split the entry edge.
2809         (clear_log_links): New function.
2810         * toplev.c (ssa_dump): New variable.
2811         (flag_ssa): Likewise.
2812         (f_options): Add "ssa".
2813         (compile_file): Create SSA dump files.
2814         (rest_of_compilation): Go to and from SSA if enabled.
2815         (decide_d_option): Handle -de for SSA dump files.
2816         * ssa.c: New file.
2817         
2818 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
2819
2820         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
2821         same as VAR_DECL.
2822
2823 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
2824
2825         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
2826
2827 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
2828
2829         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
2830         (MD_STARTFILE_PREFIX_1): New macro.
2831
2832 2000-03-09  Robert Lipe  <robertl@sco.com>
2833
2834         * config/ia64/ia64.c: Include system.h.
2835
2836 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
2837
2838         * except.c (nothrow_function_p): If -fno-exceptions, just return.
2839         (init_eh_nesting_info): Likewise.
2840
2841         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
2842         (TREE_NOTHROW): Rename from TREE_RAISES.
2843         * toplev.c (rest_of_compilation): Set it.
2844         * print-tree.c (print_node): Adjust.
2845         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
2846         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
2847         * calls.c (emit_call_1): Add 'nothrow' parm.  Add 
2848         REG_EH_REGION note as appropriate.
2849         (libfunc_nothrow): New fn.
2850         (emit_library_call, emit_library_call_value): Use it.
2851         (expand_call): Check TREE_NOTHROW.
2852
2853         * varasm.c (make_decl_rtl): Skip initial '*' when setting
2854         DECL_ASSEMBLER_NAME.
2855
2856 2000-03-09  Andreas Jaeger  <aj@suse.de>
2857
2858         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
2859         (TARGET_MEM_FUNCTIONS): Define.
2860
2861 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
2862
2863         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
2864
2865         * except.c (can_throw): See through a SEQUENCE.
2866         (nothrow_function_p): New fn.
2867         * except.h: Declare it.
2868         * function.c (current_function_nothrow): New var.
2869         (prepare_function_start): Initialize it.
2870         * output.h: Declare it.
2871         * toplev.c (rest_of_compilation): Set it.
2872         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
2873
2874 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
2875
2876         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
2877         match.  (cpp_compare_defs): Count the nul separator when
2878         advancing over argument names.
2879
2880 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
2881
2882         * recog.c (preprocess_constraints): Matching constraints affect
2883         same alternative/different operand, not same operand/different
2884         alternative.
2885         
2886         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
2887         register and a constant specially.
2888
2889 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2890
2891         * libgcc2.h: New file.
2892         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
2893
2894 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
2895
2896         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
2897         * configure: Regenerate.
2898         * config/ia64: New.
2899
2900 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
2901
2902         * Makefile.in (LIBCPP_DEPS): New macro.
2903         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
2904         it to declare deps.
2905         * cpperror.c: Include cpphash.h.
2906         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
2907         dingleberry.
2908         (lex): Don't use CPP_WARN_UNDEF.
2909         (_cpp_parse_expr): Return an int, the truth value.
2910         * cppfiles.c: Include cpphash.h.
2911         (_cpp_merge_include_chains): Move to cppinit.c and make static.
2912         * cppinit.c (include_defaults_array): Disentangle.
2913         (cpp_cleanup): Don't free the if stack here.
2914         (cpp_finish): Pop off all buffers, not just one.
2915         * cpplib.c (eval_if_expr): Return int.
2916         (do_xifdef): Rename do_ifdef.
2917         (handle_directive): Don't use CPP_PREPROCESSED. 
2918         (cpp_get_token): Don't use CPP_C89.
2919         * fix-header.c: Don't use CPP_OPTIONS.
2920
2921         * cpplib.h: Move U_CHAR, enum node_type, struct
2922         file_name_list, struct ihash, is_idchar, is_idstart,
2923         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
2924         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
2925         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
2926         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
2927         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
2928         of _cpp_simplify_pathname, _cpp_find_include_file,
2929         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
2930         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
2931         cppinit.c.
2932         Change all uses of U_CHAR to be unsigned char instead.
2933         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
2934
2935 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
2936
2937         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
2938         (dwarf2out_begin_prologue): Set it.
2939         (output_call_frame_info): Don't emit EH unwind info for leaves.
2940
2941         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
2942         can occur outside of an EH region.
2943         * except.c: Correct comments about rethrow behavior.
2944         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
2945
2946 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
2947
2948         * flow.c (make_edges): Always call make_eh_edge for calls.
2949
2950 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
2951
2952         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
2953         (struct cpp_buffer): Remove fname and underflow fields.
2954         (struct cpp_reader): Remove get_token field.
2955         (struct include_hash): Rename to struct ihash.  Add typedef to
2956         IHASH.
2957         (struct if_stack): Remove fname field.
2958         (IF_STACK_FRAME): Rename to IF_STACK.
2959
2960         * cpperror.c (print_containing_files): Trust that there are no
2961         macro buffers below the top file buffer.
2962         * cppfiles.c: Replace all references to 'struct include_hash'
2963         with 'IHASH'.  Rename initialize_input_buffer to
2964         init_input_buffer.  Don't set or reference cpp_buffer->fname,
2965         use buffer->ihash->name instead.
2966         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
2967         not CPP_NULL_BUFFER.
2968         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
2969         IF_STACK_FRAME, IHASH not struct include_hash.
2970         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
2971         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
2972         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
2973         references to cpp_buffer->fname (delete entirely, or use
2974         ->ihash->name instead) and IF_STACK->fname.
2975         (cpp_push_buffer): Don't set new->underflow.
2976         (do_include): Use cpp_file_buffer.
2977
2978         * cpphash.c (collect_formal_parameters): Remove duplicate
2979         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
2980         used as a macro argument name.  Don't append "..." to namebuf
2981         for varargs macros.  After we're done scanning, go through
2982         namebuf and make it NUL separated, not comma separated.
2983         (_cpp_compare_defs): Remove register tag from variables.
2984         Expect defn->argnames to be NUL separated.
2985         (_cpp_dump_definition): Expect defn->argnames to be NUL
2986         separated and in forward order.
2987         * cpphash.h: Update documentation of argnames field.
2988
2989 2000-03-08  Richard Henderson  <rth@cygnus.com>
2990
2991         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
2992         to fail.  Don't pre-expand the source operand.
2993
2994         * i386.md (strlensi): Initialize eoschar and align before use.
2995
2996 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
2997
2998         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
2999         CONSTRUCTOR element.
3000
3001 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
3002
3003         * mips.c (mips_expand_prologue): If the last 
3004         named argument is the vararg marker "va_list", treat it as
3005         an unnamed argument.
3006
3007 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
3008
3009         * dbxout.c (dbxout_parms): When correcting for promoted 
3010         big-endian parameters, use the mode of the DECL_RTL rather 
3011         than UNITS_PER_WORD.
3012
3013 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
3014
3015         * c-common.h (make_fname_decl): Declare.
3016         * c-common.c (make_fname_decl): Define.
3017         (declare_hidden_char_array): Remove.
3018         (declare_function_name): Use make_fname_decl.
3019         * c-decl.c (c_make_fname_decl): New function.
3020         (init_decl_processing): Set make_fname_decl.
3021
3022 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
3023
3024         * cccp.c (handle_directive): Initialize backslash_newlines_p.
3025
3026 2000-03-07  Philipp Thomas  <pthomas@suse.de>
3027
3028         * po/POTFILES.in: Remove cppalloc.c from file list.
3029
3030 2000-03-07  Steve Chamberlain  <sac@pobox.com>
3031
3032         * pj.c (pj_expand_prologue): current_function->args_info is
3033         now current_function_args_info.  
3034
3035         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
3036         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
3037         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
3038
3039 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3040
3041         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
3042         output as hexadecimal rather than the default octal.
3043
3044 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
3045
3046         * cpphash.c (special_symbol): Fix thinko in previous commit.
3047
3048 2000-03-07  Neil Booth  <NeilB@earthling.net>
3049
3050         * cppexp.c (struct operation, left_shift, right_shift,
3051         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
3052         "int"s to "unsigned int"s.
3053         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
3054         Similarly.
3055         * cpplib.h: Update for above.
3056         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
3057         returned from allocations.
3058
3059         * cppinit.c (opt_comp, parse_options): New functions.
3060         (handle_option): Use parse_option to parse a single command
3061         line option, that possibly takes an argument.
3062         (cpp_handle_options): Sort the array of command line options on
3063         first invocation (non-ASCII hosts only).
3064         (print_help): Update.
3065
3066 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
3067
3068         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
3069         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
3070         
3071         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
3072         initialized.
3073         * cppinit.c (cpp_cleanup): Free imp->nshort also.
3074
3075         * cpperror.c (cpp_print_containing_files,
3076         cpp_print_file_and_line, v_cpp_message): Rename to
3077         print_containing_files, print_file_and_line, and v_message.
3078         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
3079         to _cpp_parse_expr, parse_escape, and lex.
3080         (parse_charconst): Remove broken multibyte support.
3081         * cppfiles.c (include_hash): Make static.
3082         (cpp_included): New function.
3083         (merge_include_chains, find_include_file, finclude,
3084         simplify_pathname): Rename to _cpp_merge_include_chains,
3085         _cpp_find_include_file, _cpp_read_include_file, and
3086         _cpp_simplify_pathname.
3087         * cpphash.c (cpp_lookup, free_definition, delete_macro,
3088         cpp_install, create_definition, macroexpand, compare_defs,
3089         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
3090         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
3091         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
3092         * cppinit.c (cpp_handle_option): Rename to handle_option, make
3093         static.
3094         * cpplib.c: Remove extern prototype of cpp_parse_expr.
3095
3096         * cpphash.h: Update prototypes.
3097         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
3098
3099 2000-03-07  Andrew Haley  <aph@cygnus.com>
3100
3101         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
3102         PTRDIFF_TYPE should be based solely on Pmode.
3103         (SIZE_TYPE): ditto.
3104
3105 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3106
3107         * rtl.h (rtunion_def): Constify member `rtstr'.
3108         (emit_line_note_after, emit_line_note, emit_line_note_force,
3109         emit_note, decode_asm_operands): Constify.
3110         
3111         * cse.c (canon_hash): Likewise.
3112
3113         * dbxout.c (dbxout_block): Likewise.
3114
3115         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
3116         v_warning_for_asm): Likewise.
3117
3118         * dwarfout.c (function_start_label): Likewise.
3119
3120         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
3121         emit_line_note_force): Likewise.
3122
3123         * final.c (last_filename, asm_insn_count, final_scan_insn,
3124         output_source_line): Likewise.
3125
3126         * function.h (struct emit_status): Likewise.
3127
3128         * gcse.c (hash_expr_1): Likewise.
3129
3130         * genattr.c (gen_attr, main): Likewise.
3131
3132         * genattrtab.c (struct function_unit, current_alternative_string,
3133         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
3134         attr_numeral, check_attr_test, check_attr_value,
3135         convert_set_attr_alternative, convert_set_attr,
3136         compute_alternative_mask, simplify_by_exploding, gen_attr,
3137         gen_unit): Likewise.
3138
3139         * genflags.c (gen_insn): Likewise.
3140
3141         * gengenrtl.c (type_from_format): Likewise.
3142
3143         * genopinit.c (gen_insn): Likewise.
3144
3145         * genoutput.c (n_occurrences, process_template, process_template):
3146         Likewise.
3147
3148         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
3149         Likewise.
3150
3151         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
3152         Likewise.
3153
3154         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
3155         ggc_set_mark, ggc_get_size): Likewise.
3156
3157         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
3158
3159         * optabs.c (init_one_libfunc): Likewise.
3160
3161         * output.h (assemble_start_function): Likewise.
3162
3163         * recog.c (decode_asm_operands): Likewise.
3164
3165         * toplev.c (rest_of_compilation): Likewise.
3166
3167         * tree.h (emit_line_note_after, emit_line_note,
3168         emit_line_note_force): Likewise.
3169
3170         * varasm.c (asm_output_bss, asm_output_aligned_bss,
3171         asm_emit_uninitialised, assemble_start_function,
3172         assemble_variable, const_hash, compare_constant_1,
3173         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
3174
3175         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
3176
3177         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
3178
3179         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
3180
3181         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
3182
3183         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
3184         arm_dllimport_name_p): Likewise.
3185
3186         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
3187         Likewise.
3188
3189         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
3190
3191         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3192
3193         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
3194         arm_mark_dllexport, arm_mark_dllimport,
3195         arm_pe_encode_section_info): Likewise.
3196
3197         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
3198         ASM_FINISH_DECLARE_OBJECT): Likewise.
3199
3200         * arm/thumb.c (thumb_function_prologue): Likewise.
3201
3202         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
3203
3204         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3205
3206         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
3207
3208         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
3209
3210         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
3211
3212         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3213
3214         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
3215         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
3216
3217         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
3218
3219         * i386/i386.c (asm_output_function_prefix): Likewise.
3220
3221         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
3222
3223         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3224
3225         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
3226
3227         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
3228         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
3229         ASM_OUTPUT_SECTION_NAME): Likewise.
3230
3231         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
3232
3233         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
3234
3235         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
3236
3237         * m32r/m32r.c (m32r_encode_section_info): Likewise.
3238
3239         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3240
3241         * mcore/mcore.c (mcore_encode_section_info): Likewise.
3242
3243         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3244
3245         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3246
3247         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3248
3249         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
3250
3251         * mips/mips.md (movdi, movsi): Likewise.
3252
3253         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3254
3255         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3256
3257         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3258
3259         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
3260         ASM_OUTPUT_ASCII): Likewise.
3261
3262         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
3263         output_mi_thunk, output_toc): Likewise.
3264
3265         * rs6000/rs6000.md (movsi): Likewise.
3266
3267         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
3268
3269         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
3270
3271         * v850/v850.c (print_operand, print_operand_address,
3272         v850_encode_data_area): Likewise.
3273
3274 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
3275         
3276         * config/mips/mips.md (zero_extendsidi2): Always force operand
3277         one to memory for mips16.
3278
3279 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3280
3281         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
3282         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
3283         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
3284         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
3285         (min_precision): Result is unsigned.
3286         (add_double, neg_double, mul_double): Low word is unsigned.
3287         (lshift_double, rshift_double, lrotate_double): Likewise.
3288         (rrotate_double, div_and_round_double): Likewise.
3289         (tree_floor_log2, compare_tree_int): New functions.
3290         (preserve_rtl_expr_temps): New declaration.
3291         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
3292         (decl_attributes): Use tree_log2 to find alignment.
3293         Check for TREE_INT_CST_HIGH for format args.
3294         (min_precision): Now unsigned.
3295         Use tree_floor_log2.
3296         (truthvalue_conversion): Delete long-disabled code.
3297         * c-decl.c (finish_struct): Clean up tests on field width.
3298         (finish_function): Use compare_tree_int.
3299         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
3300         * c-typeck.c (comptypes): Use tree_int_cst_equal.
3301         (default_conversion, digest_init): Use compare_tree_int.
3302         (build_binary_op): Use integer_all_onesp and compare_tree_int.
3303         Fix type errors in forming masks.
3304         * calls.c (initialize_argument_information): Use compare_tree_int.
3305         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
3306         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
3307         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
3308         (store_field): Use compare_tree_int.
3309         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
3310         (expand_expr, case ARRAY_REF): Use compare_tree_int.
3311         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
3312         (do_store_flag): Use compare_tree_int.
3313         * fold-const.c (encode, decode): Low part is always unsigned.
3314         (force_fit_type, add_double, neg_double, mul_double): Likewise.
3315         (lshift_double, rshift_double, lrotate_double): Likewise.
3316         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
3317         (fold_convert): Use compare_tree_int.
3318         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
3319         (invert_truthvalue, case INTEGER_CST): Likewise.
3320         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
3321         * mkdeps.c (deps_dummy_targets): Make I unsigned.
3322         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
3323         (lshift_double, rshift_double, lrotate_double, rrotate_double):
3324         Likewise.
3325         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
3326         (expand_end_case): Use compare_tree_int.
3327         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
3328         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
3329         (layout_decl): Likewise.
3330         (layout_record, layout_union): Make sizes unsigned.
3331         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
3332         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
3333         * tree.c (struct type_hash): hashcode is unsigned.
3334         (build_type_attribute_variant, type_hash_list): Likewise.
3335         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
3336         (attribute_hash_list, build_array_type, build_method_type): Likewise.
3337         (build_complex_type): Likewise.
3338         (real_value_from_int_cst): Remove unneeded casts.
3339         (integer_all_onesp): Add casts.
3340         (tree_floor_log2, compare_tree_int): New functions.
3341         (build_index_type): Use tree_int_cst_sgn.
3342         * varasm.c (assemble_variable): Use compare_tree_int.
3343
3344 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
3345
3346         * cpphash.c (collect_expansion): Also catch ## at start of macro.
3347
3348         * varasm.c (make_decl_rtl): Don't add a number to members of
3349         local classes.
3350         (make_function_rtl): Likewise.
3351
3352 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3353
3354         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
3355         patch from 2000-01-28.
3356
3357 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
3358
3359         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
3360         filled with an insn from the jump target.
3361
3362 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3363
3364         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
3365         (c4x_external_ref): Likewise.
3366         * config/c4x/c4x.c (struct name_list): Likewise.
3367
3368 1999-12-16  Ben Collins  <bcollins@debian.org>
3369
3370         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
3371         argument to genmultilib.
3372         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
3373         the contents into the multilib.h header.
3374         * gcc.c: Declare multilib_exclusions for the specs file.
3375         (set_multilib_dir): Use it.
3376         (print_multilib_info): Likewise.
3377         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
3378         to pass to genmultilib.
3379
3380 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3381
3382         * builtins.c (built_in_class_names, built_in_names): Constify a
3383         char*.
3384
3385         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
3386         int.
3387         (_mcleanup): Ensure value matches format specifier in sprintf.
3388
3389         * cpphash.c (special_symbol): Don't needlessly cast away
3390         const-ness.
3391
3392         * cppinit.c (base_name): Delete unused prototype.
3393
3394         * mkdeps.c (deps_init): Make definition K&R safe.
3395
3396         * tree.h (built_in_class_names, built_in_names): Constify a
3397         char*.
3398
3399 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
3400
3401         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
3402         floating point instructions for epilogue delay.
3403
3404         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
3405         to gas if it supports .register pseudo.
3406
3407         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
3408         LONG_DOUBLE_TYPE_SIZE if not defined.
3409         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
3410         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
3411         * real.c: Likewise.
3412         * gengenrtl.c: Likewise.
3413         * print-rtl.c: Likewise.
3414         * rtl.c: Likewise.
3415         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
3416         MASK_LONG_DOUBLE_128.
3417         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
3418         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
3419         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
3420         (SUBTARGET_SWITCHES): Define.
3421         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
3422         with -mlong-double-128.
3423         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
3424         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
3425         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
3426         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
3427         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
3428         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
3429         with -mlong-double-128.
3430         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
3431         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
3432         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
3433         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
3434         TARGET_LONG_DOUBLE_128): Define.
3435         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3436         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
3437         long double on TARGET_ARCH64.
3438
3439 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
3440
3441         * function.c (free_temps_for_rtl_expr): Don't free slots
3442         that have been pushed into a higher level.
3443         
3444         Revert this patch:
3445         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
3446
3447 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
3448
3449         * basic-block.h (ALLOCA_REG_SET): Remove.
3450         (INITIALIZE_REG_SET): New macro.
3451         * flow.c (update_life_info): Use it.
3452         (calculate_global_regs_live): Likewise.
3453         (propagate_block): Likewise.
3454         * global.c (build_insn_chain): Likewise.
3455         * haifa-sched.c (schedule_region): Likewise.
3456
3457 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
3458
3459         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
3460         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
3461         (DWARF_ARANGES_PAD_SIZE): New define.
3462         (output_aranges): Use it to pad the address range header.
3463         (DWARF_ROUND): Fix for non power of 2 rounding.
3464
3465 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
3466
3467         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
3468
3469 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
3470
3471         * tree.def (RTL_EXPR): Update documentation.
3472         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
3473         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
3474         * function.c (preserve_rtl_expr_temp): New function.
3475         (preserve_rtl_expr_temps): Likewise.
3476         (preserve_rtl_expr_result): Use it.
3477
3478         Revert this patch:
3479         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
3480
3481 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
3482
3483         * regmove.c (copy_src_to_dest)  Do not create src->dest move
3484         for unchanging destination.
3485
3486 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
3487
3488         * function.h (struct sequence_stack): Remove rtl_expr.
3489         (struct emit_staus): Likewise.
3490         (seq_rtl_expr): Remove.
3491         * tree.h (free_temps_for_rtl_expr): Don't declare.
3492         (start_sequence_for_rtl_expr): Likewise.
3493         * rtl.h (preserve_rtl_expr_result): Likewise.
3494         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
3495         (start_sequence_for_rtl_expr): Remove.
3496         (push_topmost_sequence): Don't save sequence_rtl_expr.
3497         (pop_topmost_sequence): Remove comment about not restoring it.
3498         (end_sequence): Don't set seq_rtl_expr.
3499         (init_emit): Don't initialize it.
3500         (mark_sequence_stack): Don't mark it.
3501         (mark_emit_status): Likewise.
3502         * except.c (protect_with_terminate): Use
3503         start_sequence_for_rtl_expr, not start_sequence.
3504         * expr.c (expand_expr, case RTL_EXPR): Don't call
3505         preserve_rtl_expr_result or free_temps_for_rtl_expr.
3506         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
3507         (preserve_rtl_expr_result): Remove.
3508         (free_temps_for_rtl_expr): Likewise.
3509         (pop_temp_slots): Likewise.
3510         (mark_temp_slot): Don't mark the rtl_expr.
3511         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
3512         start_sequence_for_rtl_expr.
3513         
3514 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
3515
3516         * mkdeps.c, mkdeps.h: New files.
3517         * po/POTFILES.in: Add them.
3518         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
3519         (cpplib.o, cppinit.o): Depend on mkdeps.h.
3520         (mkdeps.o): New target.
3521
3522         * cppfiles.c: Delete deps_output.
3523         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
3524         OBJECT_SUFFIX, and base_name.
3525         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
3526         the include hash.
3527         (initialize_dependency_output): Use deps_init,
3528         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
3529         all the unnecessary string bashing.
3530         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
3531         level.
3532         * cpplib.c (do_include): Use deps_add_dep.
3533         * cpplib.h (struct cpp_reader): Replace deps_buffer,
3534         deps_allocated_size, deps_size, deps_column members with
3535         single pointer to a struct deps.  Delete prototype of
3536         deps_output.
3537
3538         * cppinit.c: Fix thinko in previous patch.
3539
3540 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3541
3542         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
3543         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
3544         (mode_for_size_tree): New function.
3545         (layout_decl, layout_type): Call it and clean up BLKmode checks.
3546         * tree.h (mode_for_size_tree): New declaration.
3547         
3548         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
3549
3550 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
3551
3552         * stmt.c (is_body_block): Move...
3553         * dwarfout.c, dwarf2out.c: ...from here.
3554         * tree.h: Declare it.
3555         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
3556         * final.c (final_start_function): Do call remove_unnecessary_notes
3557         when scheduling.
3558
3559 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
3560
3561         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
3562         
3563         * cpplib.h (_dollar_ok): New macro.
3564         (is_idchar, is_idstart): Use it.
3565         (IStable): Rename to _cpp_IStable.  Declare it const if
3566         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
3567         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
3568         is_space): Update for renamed IStable.
3569
3570         * cppinit.c: Delete all references to FAKE_CONST and CAT
3571         macros. Define init_IStable as empty macro if gcc >=2.7 or
3572         C99. Change TABLE() to ISTABLE and hardcode name of table.
3573         (cpp_start_read): Don't change the IStable based on
3574         dollars_in_ident.
3575
3576         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
3577         changed.  Handle '$' for char1 correctly.
3578         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
3579
3580         * cppexp.c (tokentab2): Make const.
3581         (cpp_lex): Make toktab const.
3582         * cppinit.c (include_defaults_array): Make const.
3583         (initialize_standard_includes): Make default_include const.
3584
3585 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
3586
3587         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
3588         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
3589         (gen_decl_die): Likewise.
3590         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
3591         (output_decl): Likewise.
3592
3593         * varasm.c (make_function_rtl): If we change the name used in the
3594         rtl, update DECL_ASSEMBLER_NAME accordingly.
3595         (make_decl_rtl): Likewise.
3596
3597         * toplev.c (rest_of_compilation): Tweak formatting.
3598
3599         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
3600         remove_unnecessary_notes.
3601         (debug_ignore_block): New fn.
3602         * toplev.h: Declare it.
3603         * emit-rtl.c (remove_unncessary_notes): Call it.
3604         * dwarf2out.c (dwarf2out_ignore_block): New fn.
3605         * dwarf2out.h: Declare it.
3606         * final.c (final_start_function): Don't call remove_unnecessary_notes
3607         if we did insn scheduling.
3608
3609 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
3610
3611         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
3612         * cpplib.h: Delete SET_CPP_PEDANTIC.
3613
3614 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3615
3616         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
3617         result is a RECORD_TYPE.
3618
3619 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3620
3621         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
3622
3623 2000-03-03  Richard Henderson  <rth@cygnus.com>
3624
3625         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
3626         addition over compliments over shifts.
3627
3628 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3629
3630         * reload1.c (reload_combine_note_use): Handle return register USEs.
3631         REG case: Handle multi-hard-register hard regs.
3632
3633 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3634
3635         * md.texi: Document use of '*' in insn pattern name.
3636
3637 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
3638
3639         * calls.c (special_function_p): operator new may not be malloc-like.
3640
3641         * gcse.c (dump_hash_table): Really fix error in last change.
3642
3643 2000-03-02  Denis Chertykov  <denisc@overta.ru>
3644
3645         * avr.c (print_operand): Use print_operand_address instead of
3646         output_addr_const.
3647         * avr/libgcc.S: Cleanup code.
3648
3649 2000-03-02  Richard Henderson  <rth@cygnus.com>
3650
3651         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
3652
3653 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
3654
3655         * tree.h (TYPE_ALIGN_UNIT): New macro.
3656
3657 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
3658
3659         * i386.c: (constant_call_address_operand): Reject CONST_INT.
3660
3661 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
3662
3663         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
3664         for the buffer.
3665         (SET_CPP_PEDANTIC): New macro.
3666         * cpplib.c (do_include): Don't bother checking system_header_p.
3667         (do_warning, do_ident, do_assert, do_unassert): Likewise.
3668         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
3669
3670         * function.h (struct expr_status): Add x_arg_space_so_far.
3671         (arg_space_so_far): New macro.
3672         * expr.c (init_expr): Initialize it.
3673         * calls.c (emit_call_1): Reset it.
3674         (compute_argument_block_size, expand_call): Use it.
3675         (expand_call, store_one_arg): Increment it.
3676
3677 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3678
3679         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
3680         a UNION_TYPE.
3681
3682 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
3683
3684         * cppfiles.c (cpp_read_file): New function.
3685
3686         * cpphash.c (collect_expansion): Make sure to reset last_token
3687         to NORM when we hit a string.  Handle trailing whitespace
3688         properly when the expansion is empty.
3689         (create_definition): Disable line commands while parsing the
3690         directive line.
3691         (dump_definition): If pfile->lineno == 0, output a line
3692         command ahead of the dump, and add a trailing newline.
3693
3694         * cppinit.c (append_include_chain): Add fifth argument, which
3695         indicates whether or not system headers are C++ aware.
3696         (initialize_standard_includes): New function,
3697         broken out of read_and_prescan.  Pass 'cxx_aware' value from
3698         the include_defaults_array on to append_include_chain.
3699         (dump_special_to_buffer): Const-ify char array.
3700         (builtin_array): Don't dump __BASE_FILE__.
3701         (cpp_start_read): Use cpp_read_file.  Reorder code for
3702         clarity.  Don't output line commands here for -D/-A/-U
3703         switches.  Don't call deps_output for files included with
3704         -include or -imacros.
3705
3706         * cpplib.c (do_define): Don't pay any attention to the second
3707         argument.
3708         (cpp_expand_to_buffer): Disable line commands while scanning.
3709         (output_line_command): Work in the file buffer.
3710         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
3711         Fix formatting of comments.  Prototype cpp_read_file.
3712
3713 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3714
3715         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
3716         reference the language-equivalent of sizetype.
3717         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
3718         * fold-const.c (size_binop, size_diffop): Put back checks.
3719         * gcse.c (dump_hash_table): Fix minor error in last change.
3720         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
3721         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
3722         all sizetypes.
3723
3724 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
3725
3726         * calls.c (expand_call)  Do not attempt to combine stack adjustments
3727         with inhibit_defer_pop set.
3728
3729 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
3730
3731         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
3732         the DECL_SIZE for a FIELD_DECL.
3733
3734 2000-03-01  Bruce Korb  <bkorb@gnu.org>
3735
3736         * fixinc/inclhack.tpl: remove unused symlinks
3737         * fixinc/README: GCC Maintainer info
3738         * fixinc/inclhack.sh: regen
3739         * fixinc/fixincl.sh: regen
3740
3741 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
3742
3743         * cpphash.c (collect_expansion): Trim trailing white space
3744         from macro definitions, but don't go past the last insertion
3745         point.
3746
3747 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
3748
3749         * i386.md (mulqi3): New pattern.
3750
3751 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
3752
3753         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
3754         token types.
3755         (struct cpp_reader): Add parsing_if_directive and
3756         parsing_define_directive flags.               
3757         (struct cpp_options): Remove output_conditionals flag.
3758         (check_macro_name): Delete prototype.
3759
3760         * cpphash.h (struct macrodef): Delete.
3761         (struct reflist): Separate from struct definition.
3762         (struct definition): Remove unused fields.  Add column number.
3763         (create_definition): Returns a DEFINITION *.  Takes a
3764         cpp_reader * and an int.
3765
3766         * cpphash.c (SKIP_WHITE_SPACE): Delete.
3767         (PEEKC): Copy defn from cpplib.c.
3768         (rest_extension, REST_EXTENSION_LENGTH): Delete.
3769         (struct arg): New.
3770         (struct arglist): Simplify.
3771         (collect_expansion): Rewrite.  Get tokens by calling
3772         cpp_get_token.  Add more error checking.
3773         (collect_formal_parameters): New function, broken out of
3774         create_definition and reworked to use get_directive_token.
3775         (create_definition): All real work is now in collect_expansion
3776         and collect_formal_parameters.  do_define handles finding the
3777         macro name.  Return a DEFINITION, not a MACRODEF.
3778         (macroexpand): Replace bcopy with memcpy throughout.  Replace
3779         character-at-a-time copy loop with memcpy and pointer increments.
3780         (compare-defs): d1->argnames / d2->argnames might be null.
3781
3782         * cpplib.c (copy_rest_of_line): Delete function.
3783         (skip_rest_of_line): Do all the work ourselves.
3784         (skip_string): New function.
3785         (parse_string): Use skip_string.
3786         (get_macro_name): New function.
3787         (check_macro_name): Delete.
3788         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
3789         (cpp_skip_hspace): Use CPP_BUMP_LINE.
3790         (handle_directive): ICE if we're called on a macro buffer.
3791         (do_define): Determine macro name and type (funlike/objlike)
3792         here.  Expunge all uses of MACRODEF.
3793         (cpp_push_buffer): Set line_base to NULL.
3794         (do_undef, read_line_number): Don't worry about getting a POP token.
3795         (eval_if_expression): Set/reset parsing_if_directive around
3796         cpp_parse_expr. Don't clear only_seen_white.
3797         (skip_if_group): Remove output_conditionals logic.  Use
3798         skip_rest_of_line.
3799         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
3800         tokens under appropriate conditions.
3801         (cpp_unassert): Call do_unassert not do_assert.  Oops.
3802
3803         * cppexp.c (parse_defined): New function, break out of
3804         cpp_lex.
3805         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
3806         ourselves, with cpp_defined.
3807         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
3808
3809         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
3810         * gcc.dg/strpaste-2.c: New.
3811
3812 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
3813
3814         * fold-const.c (size_binop): Don't asert inputs are the same and
3815         have TYPE_IS_SIZETYPE set.
3816         (size_diffop): Likewise.
3817
3818 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
3819
3820         * dwarfout.c (output_block): Output abstract blocks even if they
3821         don't have TREE_ASM_WRITTEN set.
3822
3823         * calls.c (emit_library_call): Check for null REG.
3824
3825 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
3826
3827         * c-decl.c (current_function_decl): Move to toplev.c.
3828         (init_decl_processing): Don't add current_function_decl as a ggc
3829         root here.
3830         * dbxout.c (dbxout_symbol): Change return type to int.
3831         (dbxout_symbol_location, dbxout_syms): Likewise.
3832         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
3833         any locals. Use current_function_func_begin_label if set.
3834         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
3835         * dwarf2out.c (dwarf2out_begin_prologue): Set
3836         current_function_func_begin_label.
3837         * final.c (final_start_function): Reset it.
3838         * toplev.c (current_function_decl): Define it here.
3839         (current_function_func_begin_label): New variable.
3840         (main): Add both as ggc roots.
3841         * tree.h (current_function_func_begin_label): Declare.
3842
3843 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3844
3845         * gcse.c: Cleanups throughout: mostly white-space, but also
3846         some minor rearrangement of code.
3847
3848 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
3849
3850         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
3851         returns a PARALLEL.  Use emit_group_load and use_group_regs
3852         as needed.  
3853         (emit_library_call_value): Similarly.
3854
3855         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
3856         * pa/quadlib.asm: Remove.
3857         * pa/quadlib.c: New file.
3858
3859         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
3860         * configure: Rebuilt.
3861
3862 2000-02-29  Philip Blundell  <pb@futuretv.com>
3863
3864         * config/arm/conix-elf.h: New file.
3865         * configure.in (arm*-*-conix*): New configuration.
3866         * configure: Regenerate.
3867
3868 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
3869
3870         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
3871         don't have TREE_ASM_WRITTEN set.
3872
3873 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3874
3875         * Eliminate DECL_FIELD_SIZE.
3876         * builtins.c (built_in_class_names, built_in_names): New variables.
3877         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
3878         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
3879         DECL_SIZE, not DECL_FIELD_SIZE.
3880         * print-tree.c (print_node): Remove code that prints extra blank
3881         lines in some cases.
3882         Properly handle inline and builtin function cases.
3883         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
3884         * tree.h (built_in_class_named, built_in_names): New declarations.
3885         (union tree_decl): Rename internal unions to u1 and u2 and change
3886         some of their components.
3887         Add new field built_in_class.
3888         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
3889         Reflect above changes.
3890         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
3891         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
3892         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
3893         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
3894
3895 2000-02-28  Dmitri Makarov  <dim@windriver.com>
3896
3897         * extend.texi: Document ARM's support for long/short calls.
3898
3899         * invoke.texi: Document ARM's -mlong-calls command line switch.
3900         
3901         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
3902         (arm_encode_call_attribute): Add prototype.
3903         (arm_set_default_type_attribute): Add prototype.
3904         (arm_strip_name_encoding): Add prototype.
3905
3906         * config/arm/arm.c (arm_init_cumulative_args): replace
3907         initialisation og 'long_calls' field with initialisation of
3908         'call_cookie' field.
3909         (enum arm_pragma_enum): New enum.
3910         (arm_pragma_long_calls): New static variable.
3911         (arm_process_pragma): Also process "#pragma long_calls_off".
3912         (arm_valid_type_attribute_p): Accept short_call attribute.
3913         (arm_comp_type_attributes): Check long/short call attributes.
3914         (arm_encode_call_attribute):  New function:  Encode long_call
3915         or short_call attribute in function name.
3916         (arm_set_default_type_attributes): New function: Assign
3917         default attributes to newly defined type.
3918         (current_file_function_operand): New function: Return true if
3919         the symbol is a function which has already been compiled.
3920         (arm_is_longcall_p): New function: Return true if the
3921         indicated function should be called via a long call.
3922         (arm_get_strip_length): New function.  Returns number of
3923         prefix characters to be stripped from a function's name.
3924         (arm_strip_name_encoding): New function.  Strip prefix characters
3925         from a function's name.
3926
3927         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
3928         with 'call_cookie'.
3929         (SHORT_CALL_FAG_CHAR): Define.
3930         (LONG_CALL_FAG_CHAR): Define.
3931         (ENCODED_SHORT_CALL_ATTR_P): Define.
3932         (ENCODED_LONG_CALL_ATTR_P): Define.
3933         (ARM_NAME_ENCODING_LENGTHS): Define.
3934         (STRIP_NAME_ENCODING): Define.
3935         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
3936         (ARM_ENCODE_CALL_TYPE): Define.
3937         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
3938         (ARM_DECLARE_FUNCTION_SIZE): Define.
3939         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
3940
3941         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
3942         if a long call is needed.
3943         (call_value): Ditto.
3944         (call_symbol): Ditto.
3945
3946         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
3947         ARM_DECLARE_FUNCTION_SIZE.
3948
3949         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
3950         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
3951         (ARM_STRIP_NAME_ENCODING): Undefine.
3952         (STRIP_NAME_ENCODING): Undefine.
3953         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
3954         (ASM_DECLARE_FUNCTION_NAME): Ditto.
3955         (ASM_OUTPUT_COMMON): Ditto.
3956         (ASM_DECLARE_OBJECT_NAME): Ditto.
3957
3958         * config/arm/pe.c (arm_dllexport_name_p): Check for
3959         ARM_PE_FLAG_CHAR.
3960         (arm_dllimport_name_p): Ditto.
3961         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
3962         (arm_mark_dllimport): Ditto.
3963         
3964 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3965
3966         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
3967
3968 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
3969
3970         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
3971
3972 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
3973
3974         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
3975         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
3976         NO_BUILTIN_WCHAR_TYPE is not defined.
3977         (CPP_WCHAR_TYPE): Delete.
3978         * cccp.c (main): Don't change wchar_type if cplusplus.
3979         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
3980
3981 2000-02-28  Nick Clifton  <nickc@cygnus.com>
3982
3983         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
3984
3985 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
3986
3987         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
3988         (ASM_WEAKEN_LABEL): Define.
3989  
3990 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
3991
3992         * expr.c (store_constructor): Do not emit USE.
3993         * rtl.h (stupid_life_analysis): Remove.
3994
3995 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3996
3997         * function.c (number_blocks): Reset next_block_index based on
3998         what debugging format is used, not what is defined.
3999         
4000         * lcm.c: Minor reformatting throughout.
4001         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
4002         
4003         * toplev.c (rest_of_compilation): Account for time in
4004         optimize_mode_switching.
4005
4006         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
4007         if only marking labels.
4008
4009 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
4010
4011         * calls.c (expand_call): Attempt to combine stack adjustments with
4012         pending stack adjustments.
4013
4014 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4015
4016         * loop.c (reg_in_basic_block_p): Don't abort when falling through
4017         to the end of the function.
4018
4019 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
4020
4021         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
4022         blocks.
4023         * final.c (next_block_index): Remove.
4024         (max_block_depth): Likewise.
4025         (pending_blocks): Likewise.
4026         (init_final): Don't initialize them.
4027         (final_start_function): Don't set next_block_index.  Set up
4028         BLOCK_NUMBER.
4029         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
4030         * function.h (number_blocks): New function.
4031         * function.c (get_block_vector): New function.
4032         (identify_blocks): Use it.
4033         (reorder_blocks): Set NOTE_BLOCK.
4034         (number_blocks): New function.
4035         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
4036         * tree.h (BLOCK_NUMBER): New macro.
4037         (tree_block): Add block_num field.
4038         * dbxout.c (next_block_number): Remove.
4039         (dbxout_init): Don't set it.
4040         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
4041         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
4042         block numbers.
4043         * toplev.c (rest_of_compilation): Always call
4044         find_loop_tree_blocks.  Fix indentation.
4045         * dwarf2out.c (next_block_number): Remove.
4046         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
4047         to determine block numbers.
4048         (gen_inlined_subroutine_die): Likewise.
4049         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
4050         (decls_for_scope): Don't increment next_block_number.
4051         * dwarfout.c (next_block_number): Remove.
4052         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
4053         to determine block numbers. 
4054         (output_inlined_subroutine_die): Likewise.
4055         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
4056         (output_decls_for_scope): Don't increment next_block_number.
4057         * sdbout.c (next_block_number): Remove.
4058         (sdbout_block): Use BLOCK_NUMBER.
4059         (sdbout_begin_block): Simplify.
4060         * xcoffout.c (next_block_number): Remove.
4061         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
4062         (xcoffout_begin_block): Don't set next_block_number.
4063         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
4064         next_block_number.
4065         
4066 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4067
4068         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
4069         (expand_builtin_strcpy): Pass correct type to size_binop.
4070         (expand_builtin_strcmp): Likewise.
4071         Clean up conditional structure.
4072         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
4073         (complete_array_type): Don't use size_binop for MAXINDEX.
4074         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
4075         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
4076         (c_alignof): Use size_one_node.
4077         (build_unary_op): Pass arg of proper type to size_binop.
4078         (really_start_incremental_init, push_init_level): Use sizetype for
4079         constructor{,_bit,_unfilled}_index.
4080         (pop_init_label, output_init_element): Likewise.
4081         (output_pending_init_elements, process_init_element): Likewise.
4082         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
4083         * expr.c (store_expr): Use size_int.
4084         (store_constructor): Use proper types for size_binop args.
4085         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
4086         (expand_expr_unaligned): Likewise.
4087         (string_contant): Return object of sizetype.
4088         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
4089         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
4090         (ARGS_SIZE_TREE): Pass proper types to size_binop.
4091         * fold-const.c (int_const_binop): Refine when size_int is called.
4092         (fold_convert): Likewise.
4093         (size_int_wide): Rework to take KIND as arg, only take low order
4094         bits, handle new sizetype_tab datatype, and chain entries in
4095         size_table.
4096         (size_int_type_wide): New function.
4097         (size_binop): Validate types of arguments.
4098         (ssize_binop): Deleted.
4099         (size_diffop): New function.
4100         (extract_muldiv): Only fold division into multiplication for sizetypes.
4101         * function.c (assign_parms): Use size_diffop and make sure
4102         VAR field is of ssizetype; also pass proper type to size_binop.
4103         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
4104         (round_down): Deleted from here.
4105         * store-layout.c (sizetype_tab): Now an array.
4106         (sizetype_set, early_root_list): New variables.
4107         (variable_size): Use size_one_node.
4108         (round_up): Pass proper type to size_binop.
4109         (round_down): Moved to here and corrected as above.
4110         (layout_record): Pass proper arg types to size_binop.
4111         (layout_type): Likewise.
4112         If sizetype_set is zero, record the type just laid out.
4113         (make_unsigned_type): Don't call set_sizetype;
4114         (make_signed_type): Likewise; also, call fixup_signed_type.
4115         (initialize_sizetypes): New function.
4116         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
4117         set name of bitsizetype to "bit_size_type".
4118         Fix up type of sizes of all types made before call.
4119         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
4120         * tree.c (fix_sizetype): Deleted.
4121         (build_common_tree_nodes): Call initialize_sizetypes.
4122         (build_common_tree_nodes_2): Don't call fix_sizetype.
4123         * tree.h (TYPE_IS_SIZETYPE): New macro.
4124         (initialize_sizetype): New declaration.
4125         (enum size_type_kind): New type.
4126         (struct sizetype_tab): Deleted.
4127         (sizetype_tab): Now array; adjust sizetype macros.
4128         (size_diffop, size_int_type_wide): New functions.
4129         (size_int_wide): Change number of args and type; access macros changed.
4130         (ssize_int, sbitsize_int): New macros.
4131         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
4132         (ROUND_TYPE_SIZE_UNIT): New macro.
4133
4134 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
4135
4136         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
4137
4138 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4139
4140         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
4141         Mark as possibly unused.
4142
4143         * cse.c (cse_insn): Delete dead code involving tablejump.
4144         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
4145
4146         * Makefile.in (libcpp.a): Start by deleting it.
4147
4148 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4149
4150         * cpplib.h (enum file_change_code): Added rename_file.
4151         * cpplib.c (do_line): If a filename is given, set file_change to
4152         rename_file.
4153         (output_line_command): If file_change is rename_file, always
4154         output a # directive with the file name.
4155
4156         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
4157
4158 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
4159
4160         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
4161         when copying a PARM_DECL or RESULT_DECL.
4162
4163 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4164
4165         * fix-header.c (recognized_function): Also fix prototypes for
4166         functions taking "void".
4167
4168 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
4169
4170         * reload1.c (do_output_reload): Check reg_reloaded_valid before
4171         looking at reg_reloaded_contents.
4172
4173 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
4174
4175         * Makefile.in (STMP_FIXINC): New toggle.
4176         (LIBGCC2_DEPS): Delete all references.
4177         (stmp-headers): Delete target.  All references either deleted
4178         or changed to stmp-int-headers.
4179         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
4180         (LIBCPP_OBJS): Take out cppalloc.o.
4181         (cppalloc.o): Delete target.
4182         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
4183         (gen-protos, fix-header): Link with libiberty.a.
4184         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
4185         to empty.
4186
4187         * configure.in: Remove refs to strerror.
4188         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
4189         * system.h: Take out strerror stanza.
4190
4191         * cpperror.c (my_strerror): Delete function.
4192         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
4193         * cppmain.c (main): Call xmalloc_set_program_name first thing.
4194         * cppalloc.c: Delete file.
4195         * gen-protos.c: Don't provide xrealloc.
4196
4197         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
4198         xstrerror throughout.
4199
4200 2000-02-26  Bruce Korb  <bkorb@gnu.org>
4201
4202         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
4203         match for DOS headers, too.
4204         * fixinc/inclhack.sh,fixincl.x: Regenerate.
4205
4206 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
4207
4208         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
4209         is right for most ELF targets.
4210         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
4211         Let the default file use %U properly.
4212         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
4213         default.
4214
4215         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
4216         numbers.
4217
4218 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4219
4220         * toplev.c (documented_lang_options): Correct spelling error.
4221         (decode_d_option, decode_f_option, main): Likewise.
4222
4223         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
4224
4225         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
4226         to tell assembler it is permitted to expand large constants.
4227
4228 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
4229
4230         * protoize.c: (AUX_INFO_SUFFIX): New macro.
4231         (aux_info_suffix): Use.
4232         (SAVE_SUFFIX): New macro.
4233         (save_suffix): Use.
4234         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
4235         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
4236         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
4237
4238         * invoke.texi (Running Protoize): Update documentation.
4239
4240 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
4241
4242         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
4243
4244 2000-02-25  John Wehle  (john@feith.com)
4245
4246         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
4247
4248 2000-02-25  Anthony Green  <green@cygnus.com>
4249
4250         * toplev.c (rest_of_compilation): Rebuild jump labels if
4251         combine_instructions has created a new direct jump.
4252         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
4253         when appropriate.
4254         (combine_instructions): Call try_combine with new argument.
4255         Return non-null value when new direct jump instruction is created.
4256         * rtl.h: combine_instructions returns an int.
4257
4258 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
4259
4260         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
4261         jump when changing a computed jump into a jump to a known
4262         target.
4263
4264 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
4265
4266         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
4267         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
4268
4269         * i386.md (define_expand "clrstrsi"): Fix typo.
4270
4271 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
4272
4273         * rtl.texi: Fix typo.
4274
4275 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4276
4277         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
4278         UNITS_PER_WORD.  Change caller initial_elimination_offset.
4279         (rounded_frame_size): Take into account that argument pushed has
4280         changed.  Fix TARGET_ALIGN_DOUBLE problem.
4281
4282 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
4283
4284         * haifa-sched.c (schedule_block): Explain the real reason
4285         we delete REG_SAVE_NOTEs on the first insn of a block.
4286         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
4287
4288 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
4289
4290         * input.h (push_srcloc): New function.
4291         (pop_srcloc): Likewise.
4292         * toplev.c (push_srcloc): Define it.
4293         (pop_srcloc): Likewise.
4294
4295 2000-02-24  Richard Henderson  <rth@cygnus.com>
4296
4297         * flow.c (life_analysis): When collecting reg info, clear
4298         regs_ever_live.
4299
4300 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4301
4302         Fix bug exposed by reload.c no longer rounding the frame
4303         size to BIGGEST_ALIGNMENT:
4304         * sh.c (rounded_frame_size): New function.
4305         (sh_expand_prologue, sh_expand_epilogue): Use it.
4306         (initial_elimination_offset): Likewise.
4307
4308 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4309
4310         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
4311         * sh-protos.h (sh_need_epilogue): Declare.
4312         * sh.c (sh_need_epilogue_known): New static variable.
4313         (sh_need_epilogue): New function.
4314         (function_epilogue): Clear need_epilogue_known.
4315         * sh.md (return): Split into expander / insn pattern.
4316         Make the expander conditional on ! sh_need_epilogue ().
4317
4318 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
4319
4320         * machmode.h (get_mode_alignment): Declare.
4321         (GET_MODE_ALIGNMENT): Call it.
4322         * stor-layout.c (get_mode_alignment): New function. Make
4323         sure alignment is always power of 2.
4324
4325 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
4326
4327         * i386.h: Remove useless definition of "I386" and misleading
4328         comment above it.
4329
4330 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
4331
4332         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
4333         under which TREE_PERMANENT will be set.
4334         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
4335         build1): Use TREE_SET_PERMANENT.
4336         * print-tree.c (print_node): Don't report value of
4337         TREE_PERMANENT if ggc_p is true.
4338
4339         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
4340         decide whether to give a type a new alias set.
4341         * objc/objc-act.c (build_objc_string_object): Never copy the string.
4342         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
4343         of value of 'obstack'.
4344
4345
4346 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4347
4348         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
4349
4350 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4351
4352         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
4353         * cpplib.c (cpp_get_token): Produce them.
4354         * cppexp.c (cpp_lex): Handle them.
4355
4356 2000-02-23  Nick Clifton  <nickc@cygnus.com>
4357
4358         * config/arm/arm.c (arm_comp_type_attributes): Simply and
4359         comment tests on type attributes.
4360
4361 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4362
4363         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
4364         conform to documentation.
4365         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
4366         to check for special cases.
4367         * sh-protos.h (sh_loop_align): Declare.
4368         * sh.c (sh_loop_align): Define.
4369
4370 2000-02-22  Andrew Haley  <aph@cygnus.com>
4371
4372         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
4373         (SIZE_TYPE): Is 32 bits when using -mgp32.
4374         (PTRDIFF_TYPE): Ditto.
4375
4376 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4377
4378         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
4379
4380 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
4381
4382         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
4383         BIGGEST_FIELD_ALIGNMENT a constant.
4384
4385 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
4386
4387         * dwarf2out.c (output_line_info): Put the marker for the end of
4388         the line number info at the actual end.
4389         (gen_struct_or_union_type_die): Use decl_function_context 
4390         to check for local classes.
4391         * dwarfout.c (output_type): Likewise.
4392
4393 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
4394
4395         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
4396         for arguments with a mode, but no type.
4397         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
4398         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
4399         * pa/long_double.h: New file.
4400         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
4401         both have 128bit wide long doubles.
4402         * configure: Rebuilt.
4403
4404 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4405
4406         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
4407
4408         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
4409         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
4410         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
4411
4412         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
4413
4414         * integrate.c (compare_blocks, find_block): Likewise.
4415
4416         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
4417
4418         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
4419
4420         * stmt.c (stmt_status, set_file_and_line_for_stmt,
4421         expand_asm_operands): Likewise.
4422
4423 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
4424
4425         * predict.c (estimate_probability): Added the pointer heuristic to
4426         the collection of static branch predictors.
4427
4428 2000-02-21  Catherine Moore  <clm@cygnus.com>
4429
4430         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
4431         * invoke.texi (-mfix7000): Document.
4432
4433 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
4434
4435         * diagnostic.c (init_output_buffer): Make it possible to output at
4436         least 32 characters if we're given a too long prefix.
4437
4438 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
4439
4440         * varasm.c (initializer_constant_valid_p): Call
4441         lang_expand_constant to simplify the constant.
4442
4443 2000-02-20  Bruce Korb  <bkorb@gnu.org>
4444
4445         * fixinc/inclhack.def(stdio_va_list):
4446         typedef needs to be disabled.
4447         * fixinc/inclhack.sh: regen
4448         * fixinc/fixincl.x: regen
4449
4450 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
4451
4452         * print-rtl.c (print_rtx): Don't print addresses when
4453         flag_dump_unnumbered.
4454
4455 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4456
4457         * sparc.c (sparc_output_scratch_registers): Mark parameter with
4458         ATTRIBUTE_UNUSED.
4459         (sparc_va_arg, sparc_flat_output_function_prologue,
4460         sparc_flat_output_function_epilogue): Cast value to unsigned in
4461         comparison.
4462         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
4463         
4464         * sparc.md: Add default case in switch.
4465
4466 2000-02-19  Richard Henderson  <rth@cygnus.com>
4467
4468         * c-typeck.c (add_pending_init): Don't abort for multiple
4469         fields at the same offset.
4470         (pending_init_member): Test the correct member.
4471
4472 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4473
4474         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
4475         instead of SImode.
4476         (start_catch_handler) : Same.
4477
4478 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
4479
4480         * Makefile.in: Have flow.o depend on $(EXPR_H)
4481
4482 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4483
4484         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
4485         * c-decl.c (duplicate_decls, finish_enum): Likewise.
4486         (finish_decl): Remove -Wlarger-than code from here.
4487         * flags.h (id_clash_len): Now int.
4488         (larger_than_size): Now HOST_WIDE_INT.
4489         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
4490         Clean up checking to see if in table.
4491         (make_bit_field_ref): Remove extra parm to bitsize_int.
4492         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
4493         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
4494         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
4495         and for computing size of decl.
4496         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
4497         Move -Wlarger-than code to here.
4498         (layout_record): Remove extra arg to bitsize_int.
4499         Set TYPE_BINFO_SIZE_UNIT.
4500         (layout_union): Remove extra arg to bitsize_int.
4501         Use proper type for size of QUAL_UNION.
4502         (layout_type): Remove extra arg to bitsize_int.
4503         * toplev.c (id_clash_len): Now int.
4504         (larger_than_size): Now HOST_WIDE_INT.
4505         (decode_W_option): Clean up id-clash and larger-than- cases.
4506         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
4507         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
4508         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
4509         (struct tree_decl): New field size_unit.
4510         (size_int_wide): No HIGH operand; NUMBER is now signed.
4511         (size_int_2): Deleted.
4512         (size_int, bitsize_int): Don't use it and rework args.
4513         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
4514
4515 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
4516
4517         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
4518
4519 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
4520
4521         * invoke.texi (Warning Options): Add an explanation of why
4522         you might want the -Wfloat-equal flag.
4523
4524 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4525
4526         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
4527         * cppinit.c (new_pending_define): Add cast to avoid warning.
4528         * expmed.c (extract_bit_field): Likewise.
4529         * flow.c (enum reorder_skip_type): New type.
4530         (skip_insns_between_blcok): New it.
4531         Rework to avoid warning about possibly undefined variable.
4532         * function.c (assign_parms): Make thisparm_boundary unsigned.
4533         * genrecog.c (write_switch): Cast XWINT result to int.
4534         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
4535         * mips-tfile.c (init_file): Make two versions of FDR intializer:
4536         one for MIPS and one for Alpha.
4537         (get_tag, copy_object): Add casts to avoid warnings.
4538         * optabs.c (init_one_libfunc): Cast NAME to (char *).
4539         * reload.c (find_reloads): Make TYPE enum reload_type.
4540         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
4541         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
4542         * varasm.c (compare_constant_1): Add cast to avoid warning.
4543         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
4544         to (char *).
4545         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
4546         Cast switch operand of size to int.
4547         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
4548         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
4549         in unhandled case.
4550
4551 2000-02-18  Nick Clifton  <nickc@cygnus.com>
4552
4553         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
4554         anything for an alignment of zero.
4555
4556         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
4557         anything for an alignment of zero.
4558
4559 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
4560
4561         * gcc.texi (Bug Reporting): Refer to bugs.html.
4562         (Bug Lists): Likewise.
4563         * system.h (GCCBUGURL): New preprocessor define.
4564         * rtl.c (fancy_abort): Use it.
4565         * gcc.c (main): Likewise.
4566
4567 2000-02-18  Richard Henderson  <rth@cygnus.com>
4568
4569         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
4570         (life_analysis_1): Subsume into ...
4571         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
4572         Use update_life_info for the relaxation.
4573         (update_life_info): Update REG_BASIC_BLOCK for registers live on
4574         entry and regs_live_at_setjmp.
4575         (set_noop_p): Simplify.
4576         (notice_stack_pointer_modification_1): Renamed from s/_1//.
4577         (record_volatile_insns): Split into ...
4578         (delete_noop_moves): ... here,
4579         (notice_stack_pointer_modification): ... here,
4580         (insn_dead_p): ... and here.
4581         (propagate_block): Don't query INSN_VOLATILE.
4582         (mark_used_regs): Mind !PROP_REG_INFO.
4583         * toplev.c (rest_of_compilation): Call mark_constant_function here,
4584         not in life_analysis.
4585
4586 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
4587
4588         * loop.c (canonicalize_condition): New function,
4589         broken out of get_condition.
4590         (get_condition): Use it.
4591         * expr.h (canonicalize_condition): Prototype it.
4592
4593         * tree.h (tree_int_cst_msb): Declare.
4594         * tree.c (tree_int_cst_msb): New function.
4595
4596 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
4597
4598         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
4599         isn't set.
4600
4601         * invoke.texi (-fmessage-length=n): Document.
4602
4603 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
4604
4605         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
4606
4607 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
4608
4609         * function.c (thread_prologue_and_epilogue_insns): Put a line note
4610         after the prologue.
4611
4612 2000-02-17  Nick Clifton  <nickc@cygnus.com>
4613
4614         * config/arm/thumb.c: Replace includes of system headers with
4615         #include "system.h".
4616
4617 2000-02-16  Richard Henderson  <rth@cygnus.com>
4618
4619         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
4620         Add crtbeginS.o and crtendS.o.
4621         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
4622         (ENDFILE_SPEC): Use crtendS.o.
4623         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
4624
4625         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
4626         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
4627         shared and present.
4628         (__dso_handle): New variable.
4629         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
4630         bias to __CTOR_END__.
4631         
4632 2000-02-16  Richard Henderson  <rth@cygnus.com>
4633
4634         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
4635
4636 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
4637
4638         * longlong.h (__clz_tab): Declare as static to match definition.
4639
4640 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
4641         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
4642         (XREF_FILE_NAME): Define.
4643
4644         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
4645         (EH_FRAME_SECTION_ASM_OP): Define.
4646         (IDENT_ASM_OP): Define.
4647         (TEXT_SECTION_ASM_OP): Define.
4648         (CPP_SPEC): Define.
4649         (CTORS_SECTION_ASM_OP): Define.
4650         (CTOR_SECTION_FUNCTION): Use it.
4651         (DTORS_SECTION_ASM_OP): Define.
4652         (DTOR_SECTION_FUNCTION): Use it.
4653
4654 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
4655
4656         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
4657         NOTE_BASIC_BLOCK.
4658
4659         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
4660         debug_bb_n): New functions.
4661         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
4662         * basic-block.h: Prototype new functions.
4663
4664 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
4665
4666         * configure.in: Add support for avr target.
4667         * configure: Rebuilt.
4668
4669         * invoke.texi: Add AVR invocation docs.
4670         * install.texi: Add information about AVR.
4671         * md.texi: Add AVR constraint letters description.
4672         * extend.texi: Add description for AVR specific attributes.
4673
4674 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
4675
4676         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
4677
4678 2000-02-16  Nick Clifton  <nickc@cygnus.com>
4679
4680         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
4681         (make_insn_raw): Move RTL check here.
4682
4683 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4684
4685         * version.c: Include gansidecl.h and version.h.
4686
4687         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
4688         
4689         * configure.in (gcc_version): When setting, narrow search to
4690         lines containing `version_string'.
4691
4692         * Makefile.in (mainversion): Likewise. 
4693         (GCC_H): New variable.
4694         (gcc.h): Delete target.
4695         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
4696         (version.o): Depend on version.h.
4697         (dbxout.o): Don't depend on gcc.h.
4698
4699 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
4700                           Michael Meissner  <meissner@cygnus.com>
4701
4702         * md.texi (Simple Constraints): Add item about whitespace.
4703         * genoutput.c (strip_whitespace): New.
4704         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
4705         strip_whitespace for constraints.
4706         Test pointer using NULL, not 0.
4707
4708 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4709
4710         * cpplib.c (do_line): Pedwarn for #line > 32767.
4711
4712         * c-lex.c (readescape): Warn about '\x', but do not reject it.
4713
4714 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
4715
4716         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
4717         to default cpp spec.
4718         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
4719         * cpp.texi: Document __GNUC_PATCHLEVEL__.
4720         * cpp.1: Likewise.
4721
4722         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
4723         default spec.
4724
4725 2000-02-15  Denis Chertykov  <denisc@overta.ru>
4726
4727         * configure.in: Add support for avr target.
4728
4729 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4730
4731         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
4732         (sh_addr_diff_vec_mode): Don't declare.
4733         * sh.c (sh_addr_diff_vec_mode): Delete.
4734
4735 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4736
4737         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
4738
4739 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4740
4741         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
4742         (smulsi3_highpart_i): Name.
4743         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
4744         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
4745         (smulsi3_highpart, umulsi3_highpart): Likewise.
4746
4747         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
4748         correctly independent of endianness.
4749         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
4750         confuse the optimizers.
4751         (mulsidi3+1, umulsidi3+1): New define_split.
4752
4753 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
4754
4755         * config/sh/sh.md: Guard insn splits against illegal registers.
4756         * config/sh/sh.h: Correct comment about macros.
4757
4758 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4759                           Andrew MacLeod  <amacleod@cygnus.com>
4760
4761         * Makefile.in (lcm.o): Depend on insn-attr.h.
4762         * basic-block.h (optimize_mode_switching): Declare.
4763         * lcm.c (tm_p.h, insn-attr.h): #include.
4764         (seginfo, bb_info): New structs.
4765         (antic, transp, comp, delete, insert) : New file-scope static variables.
4766         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
4767         (reg_becomes_live, optimize_mode_switching): Likewise.
4768         * tm.texi: Add description of mode switching macros.
4769         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
4770
4771         * sh-protos.h (remove_dead_before_cse): Remove prototype.
4772         (fldi_ok, fpscr_set_from_mem): New prototypes.
4773         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
4774         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
4775         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
4776         (sh_flag_remove_dead_before_cse): Remove declaration.
4777         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
4778         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
4779         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
4780         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
4781         (barrier_align): Allow for JUMP_INSNS containing a parallel.
4782         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
4783         (fldi_ok): New function.
4784         (get_fpscr_rtx): Add fpscr_rtx as GC root.
4785         (emit_sf_insn): Only generate fpu switches when optimize < 1.
4786         (emit_df_insn): Likewise.
4787         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
4788         (sh_flag_remove_dead_before_cse): Delete.
4789         (get_free_reg, fpscr_set_from_mem): New functions.
4790         * sh.md (movdf, movsf): Remove no_new_pseudos code.
4791         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
4792
4793 2000-02-15  Loren Rittle  <ljrittle@acm.org>
4794
4795         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
4796
4797 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4798
4799         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
4800         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
4801
4802         * cccp.c: Include version.h and/or don't declare `version_string'.
4803         * collect2.c: Likewise.
4804         * alpha.c: Likewise.
4805         * arm/aof.h: Likewise.
4806         * arm/coff.h: Likewise.
4807         * arm/elf.h: Likewise.
4808         * arm/pe.h: Likewise.
4809         * arm/tcoff.h: Likewise.
4810         * arm/telf.h: Likewise.
4811         * arm/tpe.h: Likewise.
4812         * arm/vxarm.h: Likewise.
4813         * convex/convex.c: Likewise.
4814         * i386/dgux.c: Likewise.
4815         * i386/sun386.h: Likewise.
4816         * m88k/m88k.c: Likewise.
4817         * mcore/mcore-pe.h: Likewise.
4818         * mips/mips.h: Likewise.
4819         * romp/romp.h: Likewise.
4820         * sh/sh.c: Likewise.
4821         * cpphash.c: Likewise.
4822         * cppinit.c: Likewise.
4823         * dwarf2out.c: Likewise.
4824         * dwarfout.c: Likewise.
4825         * gcc.c: Likewise.
4826         * gcc.h: Likewise.
4827         * mips-tfile.c: Likewise.
4828         * protoize.c: Likewise.
4829         * toplev.c: Likewise.
4830         * tree.h: Likewise.
4831         
4832         * version.c (version_string): Constify a char*.
4833
4834         * version.h: New file.
4835
4836 2000-02-14  Nick Clifton  <nickc@cygnus.com>
4837
4838         * configure.in: Add mcore-elf and mcore-pe targets.
4839         * configure: Regenerate.
4840
4841         * NEWS: Add note that MCore port has been contributed.
4842
4843         * invoke.texi: Document command line switches for MCore port.
4844         * install.texi: Add MCore to list of supported targets.
4845
4846 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
4847
4848         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
4849         then we will need to import the frame handling functions.
4850         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
4851         to import the frames themselves.
4852
4853 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
4854                           Jason Eckhardt  <jle@cygnus.com>
4855
4856         * basic_block.h: Added prototype for reorder_basic_blocks.
4857         * toplev.c: Changes to add -freorder-blocks and graph dump after
4858         block reordering is done.
4859         * flow.c (reorder_block_def): New structure for use during block
4860         reordering.
4861         (REORDER_BLOCK_*): New macros to access members of above structure.
4862         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
4863         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
4864         functions for block reordering.
4865
4866 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
4867
4868         * gcc.texi (Passes): Fix typo.
4869         * md.texi (Standard Names): Ditto.
4870         * tm.texi (Storage Layout): Ditto.
4871
4872 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
4873
4874         * cpplib.c (do_define): Only free the old definition if it
4875         actually had one.
4876
4877 2000-02-13   Neil Booth  <NeilB@earthling.net>
4878
4879         * cppfiles.c (read_and_prescan): When emitting deferred
4880         newlines, test speccase[] again instead of checking each
4881         possible whitespace character in turn.  When we encounter \r,
4882         look behind for \n first, then ahead.
4883
4884 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
4885
4886         * cse.c (cse_altered): New internal flag.
4887         (cse_insn): Set it if we changed an insn.
4888         (cse_main): Clear cse_altered before each basic block.
4889         Only garbage collect if cse_altered is true afterward.
4890
4891 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4892
4893         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
4894
4895 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
4896
4897         * combine.c (simplify_comparison): Fix typo.
4898
4899 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
4900
4901         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
4902         consistently.
4903
4904 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4905
4906         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
4907         previously inserted node instead of root node.  Caller changed.
4908
4909 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4910
4911         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
4912
4913 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4914
4915         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
4916         __dereg_frame_dtor): Add prototype argument.
4917
4918         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
4919
4920         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
4921
4922         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
4923
4924         * gthr-vxworks.h (__gthread_once): Likewise.
4925
4926         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
4927
4928 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
4929
4930         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
4931         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
4932         stack pointer in functions w/o saved registers, output LEAVE more often
4933         on TARGET_USE_LEAVE machines.
4934
4935 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
4936
4937         * config/arm/arm.c (arm_init_cumulative_args); New function:
4938         Initlaise the CUMULATIE_ARGS strcuture for a function
4939         defintion. 
4940         (arm_function_arg): New function: Determine where to place a
4941         function's argument.  Also handles deciding the function's
4942         call cookie.
4943         (current_file_function_operand): New function: Return true if
4944         the symbol is a function which has already been compiled.
4945         (arm_is_long_call_p): New function: Return true if the
4946         indicated function should be called via a long call.
4947         (arm_valid_type_attribute_p): New function: Return true if the
4948         attribute is a valid, arm specific, attribute.
4949         (arm_comp_type_attribute): New function: Return true if the
4950         two types have compatable, arm specific, attributes.
4951
4952         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
4953         structure.
4954         (FUNCTION_ARG): Redefine to call arm_function_arg.
4955         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
4956         structure field.
4957         (INIT_CUMULATIVE_ARGS): Redefine to call
4958         arm_init_cumulative_args.
4959         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
4960         field. 
4961         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
4962         field. 
4963         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
4964         functions.
4965         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
4966         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
4967         (COMP_TYPE_ATTRIBUTES): Define.
4968
4969         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
4970         if a long call is needed.
4971         (call_value): Call arm_is_long_call_p to decide if a long call
4972         is needed.
4973         (call_symbol): Call arm_is_long_call_p to decide if a long call
4974         is needed.
4975
4976         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
4977
4978 2000-02-11  Denis Chertykov  <denisc@overta.ru>
4979
4980         * README.AVR: New file with information about the avr ports.
4981         * config/avr: New directory with avr port files.
4982
4983 2000-02-11  Andreas Jaeger  <aj@suse.de>
4984
4985         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
4986
4987 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
4988
4989         * cpphash.c: Fix formatting, update commentary.
4990         (dump_definition): Take three separate arguments instead of a
4991         MACRODEF structure argument.
4992         * cpphash.h: Update prototype of dump_definition.
4993         * cppinit.c (cpp_finish): Update call of dump_definition.
4994
4995         * cpplib.c (do_define): Always create new hash entry with
4996         T_MACRO type.  Remove redundant check for redefinition of
4997         poisoned identifier.  Update call of dump_definition.
4998         (do_undef): Don't call check_macro_name.  Rename sym_length to
4999         len.
5000         (do_error, do_warning): Don't use copy_rest_of_line or
5001         SKIP_WHITE_SPACE.
5002         (do_warning): Don't use pedwarn for the actual warning,
5003         only the notice about its not being in the standard.  (Fixes
5004         bug with #warning in system headers.)
5005         (do_ident): Stricter argument checking - accept only a single
5006         string after #ident.  Also, macro-expand the line.
5007         (do_xifdef): Use cpp_defined.  De-obfuscate.
5008
5009         (do_pragma): Split out specific pragma handling to separate
5010         functions.  Use get_directive_token.  Update commentary.  Do
5011         not pass on #pragma once or #pragma poison to the front end.
5012         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
5013         do_pragma_default): New.
5014
5015 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
5016
5017         * jump.c (jump_optimize_1): The first operand in a relational
5018         can be a CONST_INT.
5019         * optabs.c (emit_conditional_move): Handle relationals which
5020         have a known true/false result.
5021
5022 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
5023
5024         * function.c (thread_prologue_and_epilogue_insns): Don't insert
5025         a RETURN insn into a block which already ends with a jump.
5026
5027 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
5028
5029         * haifa-sched.c (BUF_LEN): Increase a lot.
5030
5031 2000-02-11  Nick Clifton  <nickc@cygnus.com>
5032
5033         * configure.in: Add tm_p_file specification for thumb targets.
5034         * configure: Regenerate.
5035
5036         * config/arm/thumb-protos.h: New file: Prototypes for exported
5037         functions defined in thumb.c.
5038
5039 2000-02-11  Robert Lipe  <robertl@sco.com>
5040
5041         * Makefile.in (bootstrap-lean): Remove additional files.
5042         (bootstrap2-lean): Likewise.
5043         (VOL_FILES): List of files for above.
5044
5045 2000-02-11  Nathan Sidwell  <nathan@acm.org>
5046
5047         * cpphash.c (special_symbol): Remove spurious argument to
5048         cpp_lookup.
5049
5050 2000-02-11  Joel Sherrill (joel@OARcorp.com>
5051
5052         * configure.in: (i*86-*-rtems*): Swapped elf and coff
5053         stanzas.
5054         * configure: Rebuilt.
5055
5056 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
5057         
5058         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
5059
5060 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
5061
5062         * pa.c, pa.h: Remove trigraph sequences within comments.
5063
5064 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
5065
5066         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
5067
5068 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
5069
5070         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
5071
5072 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5073         
5074         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
5075
5076 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5077
5078         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
5079         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
5080         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
5081         (ASM_FILE_END): Use c4x_file_end.
5082         * config/c4x/c4x.c (c4x_global_label): New function.
5083         (c4x_external_ref, c4x_file_end): Likewise.
5084
5085         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
5086         (c4x_external_ref, c4x_end_file): Likewise.
5087
5088 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
5089
5090         * cppexp.c: Don't include cpphash.h.
5091         (parse_charconst, cpp_lex): Use cpp_defined.
5092         (cpp_lex): Use get_directive_token throughout.  Remove
5093         unnecessary cases from switch.  Move assertion-handling code
5094         down to OTHER case.
5095         (cpp_parse_expr): If we see '+' or '-', check the context to
5096         determine if they are unary or binary operators.  Streamline
5097         the jumps a bit.  Do not call skip_rest_of_line.
5098
5099         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
5100         static.  Export get_directive_token.  Update commentary.
5101         (cpp_defined): New function.
5102         (do_define): Remove reference to T_PCSTRING.  Call
5103         free_definition to release memory for old definition, when
5104         redefining a macro.
5105         (eval_if_expression): Set only_seen_white to 0 before calling
5106         cpp_parse_expr.  Call skip_rest_of_line after it returns.
5107         (cpp_read_check_assertion): Don't preserve a pointer into the
5108         token buffer across a call to cpp_get_token.
5109
5110         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
5111         * cppfiles.c (redundant_include_p): Use cpp_defined.
5112         * cpphash.c (free_definition): New function.
5113         (delete_macro): Use it.  Update commentary.
5114         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
5115         free_definition.
5116         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
5117         from enum node_type.  Prototype cpp_defined and get_directive_token.
5118         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
5119
5120         * fix-header.c (check_macro_names): Use cpp_defined.
5121         (read_scan_file): Set inhibit_warnings and inhibit_errors in
5122         the options structure.
5123
5124 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5125
5126         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
5127
5128 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
5129
5130         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
5131         rather than die->die_tag.
5132
5133 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5134
5135         * combine.c (make_extraction, force_to_mode): Avoid warning on
5136         mixed-signedness conditionals.
5137         (make_field_assignment, nonzero_bits): Likewise.
5138         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
5139         (store_split_bit_field, extract_split_bit_field): Likewise.
5140         (extract_fixed_bit_field, store_bit_field, 
5141         * expr.c: Change alignment to be unsigned everywhere.
5142         (move_by_pieces, store_constructor_field, store_constructor): 
5143         Alignment parm is unsigned.
5144         (emit_block_move, emit_group_load, emit_group_store): Likewise.
5145         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
5146         (do_compare_rtx_and_jump): Likewise.
5147         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
5148         Compare align with GET_MODE_ALIGNMENT.
5149         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
5150         (get_inner_reference): Likewise.
5151         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
5152         (expand_assignment): Local vars for alignment now unsigned.
5153         (store_constructor, store_field, expand_expr, do_jump): Likewise.
5154         (do_compare_and_jump): Likewise.
5155         (store_field): Call new function expr_align.
5156         * expr.h (emit_block_move, emit_group_load, emit_group_store):
5157         Alignment arg now unsigned.
5158         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
5159         (do_compare_rtx_and_jump, store_bit_field): Likewise.
5160         (extract_bit_field): Likewise.
5161         * fold-const.c (add_double): Add cast to eliminate signedness warning.
5162         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
5163         (get_best_mode): Alignment arg is unsigned.
5164         * rtl.h (move_by_pieces): Likewise.
5165         * store-layout.c (maximum_field_alignment, set_alignment):
5166         Now unsigned.
5167         (layout_decl): Alignment arg is now unsigned.
5168         Remove unneeded casts.
5169         (layout_record, layout_union, layout_type): Remove unneeded casts.
5170         Local alignment variables now unsigned.
5171         (get_best_mode): Alignment arg now unsigned.
5172         * tree.c (expr_align): New function.
5173         * tree.h (expr_align): Likewise.
5174         (maximum_field_alignment, set_alignment): Now unsigned.
5175         (get_inner_reference): Alignment argument is now pointer to unsigned.
5176         * varasm.c (assemble_variable): Add cast to eliminate warning.
5177
5178 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
5179
5180         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
5181         then store directly into op0.
5182
5183         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
5184         the CALL_INSN, and emit the note immediately after it.
5185
5186 2000-02-10  Nick Clifton  <nickc@cygnus.com>
5187
5188         * config/arm/thumb.md (epilogue): Include a (return) in the
5189         generated insn, and emit it using emit_jump_insn not
5190         emit_insn. 
5191
5192 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
5193
5194         * function.c (assign_temp): Change zero-sized arrays to size 1.
5195         * integrate.c (expand_inline_function): Do not update
5196         stack_alignment_needed
5197         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
5198         add some sanity checking, remove optimization for function with
5199         zero frame size.
5200
5201 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5202
5203         * flow.c (mark_regs_live_at_end): Delete unused variables.
5204
5205         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
5206
5207         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
5208         in macro FRAME_GROWS_DOWNWARD.
5209
5210         * stmt.c (expand_end_bindings): Delete unused variable.
5211
5212         * unroll.c (iteration_info): Mark parameter `loop' with
5213         ATTRIBUTE_UNUSED.
5214
5215 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5216
5217         * fixinc/server.c (load_data): Return NULL if the marker line is
5218         not found.
5219         (run_shell): If load_data returns NULL, retry the command once, in
5220         a new shell.
5221
5222         * configure: Rebuilt.
5223
5224 2000-02-09  Bruce Korb  <bkorb@gnu.org>
5225
5226         * gcc/fixincludes:  ** DELETED **
5227         * gcc/fixcpp:  ** DELETED **
5228         * gcc/fixinc-nt.sed:  ** DELETED **
5229         * gcc/just-fixinc:  ** DELETED **
5230         * gcc/Makefile.in:  Removed out-dated commentary
5231         * gcc/configure.in: Removed fast-fixincludes disablement.
5232         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
5233
5234 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
5235         * function.c (thread_prologue_and_epilogue_insns): Uncomment
5236         last change.
5237
5238 2000-02-09  Richard Henderson  <rth@cygnus.com>
5239
5240         * jump.c (delete_insn): Don't delete user labels at -O0.
5241
5242 2000-02-09  Robert Lipe  <robertl@sco.com>
5243
5244         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
5245         Don't link with HOST_LIBS. 
5246
5247 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
5248
5249         * configure.in: Correct --help text for --with-dwarf2.
5250         Put tm-dwarf2.h after other tm files, if it's requested.
5251         * configure: Regenerate.
5252         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
5253         defining it.
5254
5255 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
5256
5257         * cpplib.h: Provide HASHNODE typedef and forward decl of
5258         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
5259         DEFINITION, struct hashnode, struct macrodef, struct
5260         definition, scan_decls prototype, default defn of
5261         INCLUDE_LEN_FUDGE moved elsewhere.
5262
5263         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
5264         definition, and struct hashnode moved here. Remove the unused
5265         'predefined' field from struct definition.  Replace the 'args'
5266         union with its sole member.  All users updated (cpphash.c).
5267         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
5268         multiple include guard.
5269
5270         * cpphash.c (hashf): Make static; use better algorithm; drop
5271         HASHSIZE parameter; return an unsigned int.
5272         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
5273         used. Calculate HASHSIZE modulus here.
5274         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
5275         here.
5276         (create_definition): Drop PREDEFINITION parameter.
5277         * cpplib.c (do_define): Don't calculate a hash value here.
5278         Don't pass (keyword == NULL) to create_definition.
5279
5280         * scan.h: Prototype scan_decls here.
5281         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
5282         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
5283         callers of cpp_lookup and cpp_install updated.
5284         
5285         * cpphash.c (macarg): Hoist all the flag diddling out of the
5286         function...
5287         (macroexpand): ... and out of the loop that calls macarg.
5288         Skip over the initial paren before macro arguments with
5289         cpp_get_non_space_token; point may be some distance before
5290         that paren.  Abort if it's not there.
5291
5292         * cpplib.c (parse_clear_mark): Delete function.
5293         (parse_set_mark, parse_goto_mark): Make static.
5294         (ACTIVE_MARK_P): New macro.
5295         (skip_block_comment, skip_line_comment): Do not bump the line
5296         if ACTIVE_MARK_P is true.
5297         (cpp_pop_buffer): The buffer to be popped may not have an
5298         active mark.
5299         (cpp_get_token): When looking for the initial paren before
5300         macro arguments, only set a mark in a file buffer, Always
5301         return to that mark before proceeding to call macroexpand or
5302         return a NAME token.
5303
5304         * cpplib.h: Remove prototypes of parse_set_mark,
5305         parse_clear_mark, parse_goto_mark.
5306         (struct cpp_options): Rename 'put_out_comments' to
5307         'discard_comments' and invert its sense.
5308         * cppinit.c, cpphash.c, cpplib.c: All users of
5309         put_out_comments changed to use discard_comments, with
5310         opposite sense.
5311
5312 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
5313
5314         * function.c (thread_prologue_and_epilogue_insns): Don't delete
5315         the edge from a block that both jumps and falls through to the
5316         fallthru block.
5317
5318 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
5319
5320         * config/arm/arm.md (movsi): In PIC mode, make sure that a
5321         constant source address is legitimate.
5322
5323 2000-02-09  Philip Blundell  <pb@futuretv.com>
5324
5325         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
5326         correctly.
5327
5328         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
5329         generating PIC.
5330         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
5331
5332 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
5333
5334         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
5335         ends with a newline and a NUL.  Don't be so clever manipulating
5336         strings.
5337
5338 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
5339
5340         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
5341         not to BIGGEST_ALIGNMENT.
5342
5343 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
5344
5345         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
5346         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
5347         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
5348         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
5349         * frame.c (execute_cfa_insn): Handle 
5350         DW_CFA_GNU_negative_offset_extended.
5351
5352 2000-02-08  Richard Henderson  <rth@cygnus.com>
5353
5354         * flow.c (tidy_fallthru_edges): Split out from ...
5355         (delete_unreachable_blocks): ... here.
5356         (find_basic_blocks): Use it.
5357
5358 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5359
5360         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
5361
5362 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
5363
5364         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
5365         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
5366         (fix-header.o): Don't depend on cpphash.h.
5367
5368         * scan.c (hashstr): New function. 
5369         * scan.h: Prototype it.
5370         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
5371         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
5372         hashstr.  Report hash table statistics.  Add private     
5373         definition of xrealloc.
5374
5375 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5376
5377         * i386.h (TARGET_SWITCHES): Fix typo in option name.
5378
5379 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
5380
5381         * function.c (thread_prologue_and_epilogue_insns): Don't replace
5382         jumps with returns unless they are jumps to the fallthru block.
5383
5384 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
5385
5386         * i386.md (addqi3_cc): Fix contraints.
5387
5388 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5389
5390         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
5391
5392 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
5393
5394         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
5395         carriage return after a macro name.
5396
5397 2000-02-07  Fred Fish  <fnf@be.com>
5398
5399         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
5400         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
5401
5402 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
5403
5404         * cppfiles.c (deps_output): Count spacers in deps_column.
5405
5406 2000-02-07  Neil Booth  <NeilB@earthling.net>
5407
5408         * cppinit.c (initialize_dependency_output): If there is no
5409         suffix, don't try to look for known suffixes.  Use strrchr.
5410         (cpp_start_read): Remove duplicate initialization.
5411
5412 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
5413
5414         * calls.c (compute_argument_block_size): New argument
5415         preferred_stack_boundary.
5416         (expand_call): update cfun->preferred_stack_boundary, update call of
5417         compute_argument_block_size
5418         (emit_library_call): Increate cfun->preferred_stack_boundary
5419         to PREFERRED_STACK_BOUNDARY
5420         (emit_library_call_value): Likewise.
5421         * explow.c (allocate_dynamic_stack_spave): Likewise.
5422         * function.c (prepare_function_start): Set
5423         cfun->preferred_stack_boundary
5424         * function.h (struct function): Add preferred_stack_boundary field.
5425         * integrate.c (expand_inline_function): Update
5426         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
5427         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
5428         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
5429
5430 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
5431
5432         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
5433         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
5434         cpp_pedwarn, cpp_pedwarn_with_line,
5435         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
5436         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
5437         v_cpp_error_with_line, v_cpp_warning_with_line,
5438         cpp_message_from_errno, cpp_perror_with_name): Delete.
5439
5440         * cpperror.c (cpp_print_containing_files): Take starting
5441         buffer as argument.
5442         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
5443         (v_cpp_message): Now called directly by all entry points.
5444         Remove -1 case.
5445         (cpp_pfatal_with_name, cpp_message): Delete.
5446         (cpp_notice_from_errno, cpp_ice): New functions.
5447         (cpp_notice): Is now for reporting error conditions, just
5448         without an associated file.
5449         (cpp_error, cpp_error_with_line): Don't do anything if
5450         opts->inhibit_errors is on.
5451         (cpp_pedwarn_with_file_and_line): Take column argument also.
5452
5453         * cpplib.h: Update prototypes of exported functions.
5454         (struct cpp_options): Add inhibit_errors.
5455
5456         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
5457         non-error messages.  Include intl.h.
5458
5459         * cppinit.c, cppmain.c: Likewise.  Also, use
5460         cpp_notice_from_errno instead of cpp_perror_with_name or
5461         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
5462
5463         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
5464         report internal errors.
5465
5466         * cpplib.c (do_define): Switch bcopy to memcpy.
5467         Give cpp_pedwarn_with_file_and_line a dummy column argument.
5468
5469         * cpplib.c (copy_rest_of_line): Revert previous change: don't
5470         bail out early if we hit a line comment.
5471
5472 2000-02-06  Richard Henderson  <rth@cygnus.com>
5473
5474         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
5475         * basic-block.h: Declare them.
5476         * emit-rtl.h (active_insn_p): New.
5477         (next_active_insn, prev_active_insn): Use it.
5478         * rtl.h: Declare it.
5479         * function.c (emit_return_into_block): New.
5480         (thread_prologue_and_epilogue_insns): Insert return insns instead
5481         of epilogues when possible.
5482         * jump.c (jump_optimize_1): Remove code to insert a return insn
5483         on the fallthru to the exit block.
5484
5485         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
5486         and for non-empty stack frames.
5487         * i386.md (return): Expand to return-pop as needed.
5488
5489 2000-02-06  Richard Henderson  <rth@cygnus.com>
5490
5491         * simplify-rtx.c (simplify_relational_operation): Canonicalize
5492         constant to op1 for testing.
5493
5494 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5495
5496         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
5497         (fixuns_truncqfqi2): Use it.
5498
5499 2000-02-06  Richard Henderson  <rth@cygnus.com>
5500
5501         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
5502         as a TYPE_LEA insn.
5503
5504         * i386.md (widening and peepholes): Mask the constant instead of
5505         using gen_lowpart.
5506
5507 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
5508
5509         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
5510         input pointer before possibly branching off to the backslash
5511         code.
5512         * cpphash.c (macroexpand): Correctly delete \r escapes when
5513         stringifying parameters.
5514         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
5515         if we can; bail out early if we hit a line comment.
5516         (handle_directive): Treat '# 123' in an .S file just like
5517         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
5518         Return 1 for '# not_a_directive'.
5519         (get_directive_token): Pop macro buffers here, so that
5520         cpp_get_token can't sneakily move past a newline.
5521         Add sanity checks. 
5522         (cpp_get_token): goto randomchar if handle_directive returns 0.
5523
5524         * cppalloc.c: Update copyright.
5525         * cpplib.c: Merge all the static function prototypes into one
5526         block.
5527         * cpplib.h: Remove #if 0 block.
5528
5529         * cpperror.c: Remove #ifdef EMACS block.
5530         * cppmain.c: Likewise.
5531         * cpphash.c: Remove #if 0 blocks.
5532         * cppinit.c: Remove #if 0 blocks, and the -lint option.
5533         * cpplib.c: Remove #if 0 blocks and code referencing
5534         pcp_inside_if or for_lint.  Remove duplicate error message.
5535         Fix error messages for #else after #else or #elif.  Reformat.
5536         Remove archaic TODO list.
5537         * cpplib.h: Remove pcp_inside_if and for_lint flags.
5538
5539 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
5540
5541         * i386/osf1elf.h: Add missing backslash to multiline string.
5542
5543 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5544
5545         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
5546
5547 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5548
5549         * Makefile.in (c-common.o): Depend on $(EXPR_H).
5550
5551         * c-common.c: Include expr.h.
5552
5553         * c-pragma.c (mark_align_stack): Add prototype.
5554
5555         * caller-save.c (add_stored_regs): Likewise.
5556
5557         * combine.c (record_promoted_value): Likewise.
5558
5559         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
5560         Likewise.
5561
5562         * cppinit.c (new_pending_define): Likewise.
5563
5564         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
5565
5566         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
5567         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
5568         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
5569         class_scope_p): Likewise.
5570
5571         * dwarf2out.h (dwarf2out_set_demangle_name_func,
5572         dwarf2out_add_library_unit_info): Likewise.
5573
5574         * ggc.h (ggc_page_print_statistics): Likewise.
5575
5576         * haifa-sched.c (propagate_deps): Likewise.
5577
5578         * reg-stack.c (next_flags_user, record_label_references): Likewise.
5579
5580         * rtl.h (set_stack_check_libfunc): Likewise.
5581
5582         * toplev.h (set_fatal_function): Likewise.
5583
5584         * toplev.c (set_fatal_function): Delete prototype.
5585         
5586         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
5587         
5588 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
5589
5590         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
5591         (FUNC_END): Likewise.
5592
5593 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5594
5595         * caller-save.c: Include tm_p.h.
5596
5597 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5598
5599         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
5600
5601 2000-02-04  Neil Booth  <NeilB@earthling.net>
5602
5603         * cccp.c (main): Check 'dir' for a NULL pointer before passing
5604         it to strcmp.
5605
5606 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
5607
5608         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
5609         * genflags.c: Use the max_operand_1 logic from genemit.c to
5610         calculate how many arguments gen_insn prototypes have.  Remove
5611         NO_MD_PROTOTYPES ifdefs from the generated file.
5612         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
5613         file.  Cast gen_insn initializers to insn_gen_fn.
5614         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
5615         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
5616
5617 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5618
5619         * fixinc/Makefile.in (HDR): Add machname.h.
5620         (clean): Likewise.
5621
5622 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5623
5624         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
5625         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
5626         (c4x_cpu_version): Ditto.
5627         * config/c4x/c4x-protos.h: ... here.
5628
5629 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
5630
5631         * dwarf2out.c (add_abstract_origin_attribute): Don't call
5632         gen_abstract_function on our context if we're a nested function.
5633
5634 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5635
5636         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
5637         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
5638
5639 2000-02-04  Bruce Korb  <bkorb@gnu.org>
5640
5641         * fixinc/genfixes(machname.h):
5642         Move the functionality from gen-machine.h into this file.
5643         UNdef MN_NAME_PAT if there are no names to change.
5644         Also, be a little kinder when AutoGen is not present.
5645
5646         * fixinc/Makefile.in(machname.h):
5647         Change the generation rule to use genfixes.
5648
5649         * fixinc/fixfixes.c(machine_name):
5650         machine_name_fix's functionality now dependent upon whether
5651         MN_NAME_PAT is defined.
5652
5653         * fixinc/fixtests.c(machine_name):
5654         ditto.
5655
5656         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
5657         of MN_NAME_PAT.
5658
5659         * fixinc/fixlib.h(mn_get_regexps):
5660         ditto
5661
5662         * fixinc/gen-machine.h: DELETED
5663
5664 2000-02-04  Jan Hubicka  <jh@suse.cz>
5665             Richard Henderson  <rth@cygnus.com>
5666
5667         * i386.c (SAVE_REGS_FIRST): Remove.
5668         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
5669         (ix86_compute_frame_size): Likewise.
5670         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
5671         (ix86_emit_restore_regs): Remove.
5672         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
5673         when a frame pointer is in use.
5674         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
5675         instead of pop to restore a register when profitable; emit leave
5676         when profitable.
5677         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
5678         as a TYPE_LEA insn.
5679         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
5680         * i386.md (prologue_allocate_stack): Remove.
5681         (epilogue_deallocate_stack): Remove.
5682         (pro_epilogue_adjust_stack): New.
5683
5684 2000-02-04  Richard Henderson  <rth@cygnus.com>
5685
5686         * function.c (diddle_return_value): Rework to use a callback function.
5687         Use current_function_return_rtx if it's been set up.
5688         (do_clobber_return_reg, clobber_return_register): New.
5689         (do_use_return_reg, use_return_register): New.
5690         (expand_function_end): Use them.
5691         * stmt.c (expand_null_return): Likewise.
5692         * function.h: Declare them.
5693         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
5694         (mark_reg): Change arguments as appropriate for callback.
5695         * integrate.c (expand_inline_function): Revert 19 Jan change.
5696
5697 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5698
5699         * tm.texi (Values in Registers): Fix typo: "fo" "for".
5700         (Misc): Say the scheduler, not the Haifa scheduler.
5701
5702 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
5703
5704         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
5705         when in_mem is set.  Update all callers.
5706
5707 2000-02-04  Richard Henderson  <rth@cygnus.com>
5708
5709         * i386/openbsd.h (INT_ASM_OP): Define.
5710
5711 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5712
5713         * tm.texi: Fix various typos.
5714
5715 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
5716
5717         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
5718         (MD_STARTFILE_PREFIX_1): New macro.
5719
5720 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
5721
5722         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
5723         destination when needed.
5724         (strmovsi, strsetsi): New expander.
5725         (strmovsi_1, strsetsi_1): New pattern.
5726         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
5727         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
5728         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
5729         * invoke.texi (align-stringops, inline-all-stringops): Document.
5730
5731 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
5732
5733         * i386/netbsd.h (INT_ASM_OP): Define.
5734
5735 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
5736
5737         * cpplib.h (cpp_reader): Add new flag, no_directives.
5738         * cpphash.c (macarg): Set it.
5739         * cpplib.c (handle_directive): If no_directives is on and we
5740         find a directive, issue an error and discard the line.
5741
5742 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
5743
5744         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
5745         FP constants.  Add ! TARGET_FPU check for FP constants.
5746
5747 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
5748         
5749         * flow.c (find_basic_blocks): Don't kill label_value_list
5750         here.
5751         (cleanup_cfg): Kill it here.
5752
5753 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5754
5755         * expr.c (store_field): Ensure ALIGN is no stricter than the
5756         alignment of EXP.
5757
5758 2000-02-02  Richard Henderson  <rth@cygnus.com>
5759
5760         * jump.c (delete_insn): Partially revert 19 Jan change; 
5761         don't convert unused code labels to notes at -O0.
5762
5763 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5764
5765         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
5766         split_all_insns to recreate REG_LABEL notes for flow2 pass.
5767
5768 2000-02-01  Richard Henderson  <rth@cygnus.com>
5769
5770         * i386.c (general_no_elim_operand): New.
5771         (nonmemory_no_elim_operand): New.
5772         (ix86_expand_move): Copy eliminable operands before a push.
5773         * i386-protos.h: Declare new functions.
5774         * i386.h (CAN_ELIMINATE): Simplify.
5775         (PREDICATE_CODES): Update.
5776         * i386.md (push insns): Don't allow eliminable register operands.
5777
5778 2000-02-01  Richard Henderson  <rth@cygnus.com>
5779
5780         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
5781         replace BLKmode with DECL_RTL's mode.
5782
5783 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
5784
5785         * frame.c (find_fde): Convert for loop to do-while so compiler
5786         sees it's always executed at least once.
5787         * libgcc2.c (BBINBUFSIZE): Kill.
5788         (__bb_init_prg): Use fgets.
5789         (__bb_exit_trace_func): Don't paste strings.
5790         * unroll.c (unroll_loop): Initialize unroll_type, not
5791         unroll_number, and tweak logic to match.
5792
5793         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
5794         all failure paths.
5795         (ix86_flags_dependant): Likewise.  Disentangle control flow.
5796         (ix86_sched_reorder): Break guts out to
5797         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
5798         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
5799         any possible use.
5800
5801         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
5802         use string concatenation.  Don't save and restore esi.
5803
5804         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
5805         (machname.h): Remove script to separate file.  Use two-step
5806         sequence so target is not created if script fails.
5807         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
5808         identifiers are defined.
5809         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
5810         an empty string, machine_name doesn't need to do anything at
5811         all.
5812         (is_cxx_header): Add more cases to regexp.
5813         * fixinc/fixlib.h: Update prototype.
5814         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
5815         mn_get_regexps.
5816         * fixinc/fixincl.c: Define NO_BOGOSITY.
5817
5818         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
5819         (hp_sysfile): Add missing comma.
5820         (math_exception): Put the wrapper ifdefs at the beginning and
5821         the end of the file.
5822         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
5823
5824 2000-02-01  Richard Henderson  <rth@cygnus.com>
5825
5826         * sparc.c (fp_zero_operand): Turn into a normal predicate.
5827         Use CONST0_RTX.  Update all callers.
5828         * sparc.h, sparc-protos.h: Update accordingly.
5829         * sparc.md (fp mov insns): Use fp_zero_operand directly
5830         where applicable.
5831
5832 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5833
5834         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
5835         example.
5836
5837 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5838
5839         * Makefile.in (specs.ready): New target.
5840         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
5841
5842 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5843
5844         * fixinc.irix: Use unique filenames for writing into /tmp,
5845         * fixinc.ptx: Likewise.
5846         * fixinc.sco: Likewise.
5847         * fixinc.svr4: Likewise.
5848         * fixinc.winnt: Likewise.
5849
5850 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5851
5852         * tsystem.h: New file.
5853
5854         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
5855         s-crtS): Depend on tsystem.h.
5856
5857         * crtstuff.c: Include tsystem.h.
5858         * frame.c: Likewise.
5859         * libgcc2.c: Likewise.
5860
5861 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
5862
5863         * builtins.c (expand_builtin_memset): Expand for variable sized
5864         lengths too.
5865
5866 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
5867
5868         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
5869         on ABI.
5870
5871 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5872
5873         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
5874
5875         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
5876
5877 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
5878
5879         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
5880         case 3->2 combining (combining with splitting) in which 2 is CC0
5881         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
5882         checked at the begining of the function with the aid of calling 
5883         function 'can_combine_p'. 
5884
5885 2000-01-31  Dave Brolley  <brolley@redhat.com>
5886
5887         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
5888
5889 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
5890
5891         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
5892         new label.
5893
5894 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5895
5896         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
5897         
5898         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
5899         PROTO -> PARAMS.
5900
5901 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
5902
5903         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
5904         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
5905         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
5906         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
5907         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
5908         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
5909         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
5910         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
5911         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
5912         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
5913         
5914         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
5915         Add %(cpp_cpu) to CPP_SPEC.
5916
5917         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
5918         Add %(cc1_cpu) to CC1_SPEC.
5919
5920 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
5921
5922         * c-decl.c (c_decode_option): Accept optional numeric argument to
5923         -Wformat and set warn_format.
5924         * c-common.c: Don't emit warning about non-constant printf format
5925         string unless warn_format > 1.
5926
5927 2000-01-30  Richard Henderson  <rth@cygnus.com>
5928
5929         * alpha.md (return_internal): Allow after reload only.
5930
5931 2000-01-30  Richard Henderson  <rth@cygnus.com>
5932
5933         * i386.c (ix86_compute_frame_size): Omit padding1 if the
5934         local frame size is zero.
5935
5936 2000-01-30  Richard Henderson  <rth@cygnus.com>
5937
5938         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
5939         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
5940         * alpha.md (return): Turn into an expander.
5941         (return_internal): Don't use $26.
5942         (epilogue): Emit the return insn.
5943
5944 2000-01-30  Richard Henderson  <rth@cygnus.com>
5945
5946         * alpha.md (negtf2, abstf2): Fix word order thinko.
5947         (extendsftf2): New.
5948         (trunctfsf2): Avoid intermediate rounding errors.
5949
5950 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
5951
5952         * cppfiles.c (find_position): Drop 'colp' argument, return the
5953         new line base.
5954         (read_and_prescan): Adjust to match.  Don't ever manipulate
5955         line or line_base except via find_position.
5956
5957 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
5958
5959         * c-parse.in: Apply Ulrich's changes from c-parse.y.
5960         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
5961         Regenerate.
5962
5963 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
5964
5965         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
5966         just print "<command line>".  If 'filename' is null or an
5967         empty string, print "<stdin>" for the filename.
5968         * cpplib.c (do_define): Don't print the 'location of the
5969         previous definition' message if we're still parsing the
5970         command line.
5971         (cpp_pedwarn_with_file_and_line): Always call
5972         cpp_file_line_for_message.
5973
5974 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
5975
5976         * flow.c (mark_regs_live_at_end): Fix typo.
5977
5978 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
5979
5980         * c-common.c: Adjust variable names, comments, help strings to c99.
5981         * c-lex.c: Likewise.
5982         * c-parse.y: Likewise.
5983         * c-tree.h: Likewise.
5984         * cccp.c: Likewise.
5985         * cpplib.h: Likewise.
5986         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
5987         * cppinit.c: Likewise.
5988
5989 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5990
5991         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
5992         * c4x.c: Define the optab rtx values.
5993         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
5994         (c4x_emit_libcall): Use new optab rtx values.
5995         (c4x_emit_libcall3): Likewise.
5996         (c4x_emit_libcall_mulhi): Likewise.
5997         * c4x-protos.h: Add prototypes for optab rtx values and change
5998         prototypes for above c4x_emit_libcall functions.
5999
6000 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6001
6002         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
6003         syntax is used.
6004         (c4x_function_prologue): Use regnames intead of float_reg_names when
6005         TI syntax is used.
6006         (c4x_function_epilogue): Likewise.
6007         (c4x_print_operand): Likewise.
6008         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
6009         * c4x.md (set_high): Disable for TARGET_TI.
6010
6011 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6012
6013         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
6014         of framepointer + constant to ADDR_REGS class.
6015         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
6016         * c4x.c (std_or_reg_operand): New function.
6017         * c4x-protos.h (std_or_reg_operand): Prototype it.
6018
6019 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6020
6021         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
6022                 object names as libgcc2.c.
6023         * libgcc.S: Use newly defined names.
6024
6025 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
6026         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
6027         function.
6028         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
6029         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
6030         (FLOW_LOOP_LAST_BLOCK): Likewise.
6031
6032 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6033
6034         * basic-block.h (struct loop): New fields 'first' and 'last'.
6035         * flow.c (flow_loops_find): Compute loop->first and loop->last.
6036         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
6037         and loop->last to check for NOTE_INSN_LOOP_END.
6038
6039 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
6040
6041         * predict.c (estimate_probability): Use the new FIRST and LAST fields
6042         of the loop descriptor rather than HEADER and LATCH. Also added
6043         missing break statements as well making some coding style modifications
6044         as suggested by Michael Hayes.
6045
6046 2000-01-28  Richard Henderson  <rth@cygnus.com>
6047
6048         * flow.c (find_basic_blocks): Remove do_cleanup argument.
6049         Break out that code ...
6050         (cleanup_cfg): ... here.
6051         (commit_one_edge_insertion): Detect a return instruction being
6052         emitted to an edge.  Emit a barrier following; clear fallthru.
6053         (commit_edge_insertions): Verify CFG consistency.
6054         * function.c (expand_function_start): Kill unused variable.
6055         (expand_function_end): Likewise.
6056         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
6057         to insert the epilogue.
6058
6059         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
6060         (delete_null_pointer_checks): Likewise.
6061         * output.h: Likewise.
6062         * reg-stack.c (reg_to_stack): Likewise.
6063         * toplev.c (rest_of_compilation): Likewise.  Run
6064         thread_prologue_and_epilogue_insns after rebuilding the CFG.
6065
6066 2000-01-28  Richard Henderson  <rth@cygnus.com>
6067
6068         * Makefile.in (flow.o): Revert 24 Jan change.
6069         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
6070         FUNCTION_VALUE result to DECL_RESULT's mode.
6071
6072         * haifa-sched.c (schedule_insns): Don't recompute reg info
6073         after reload.
6074
6075 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
6076
6077         * configure.in: Make --enable-cpplib the default.
6078         * configure: Regenerate.
6079         * gcc.dg/990119-1.c: No longer expected to fail.
6080
6081 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
6082
6083         * jump.c (jump_optimize_1): Delete an optimization that is also done
6084         by merge_blocks in flow.
6085
6086 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6087
6088         * diagnostic.c (build_message_string, output_printf,
6089         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
6090         (build_location_prefix): Fix non-literal format string.
6091
6092 2000-01-27  Richard Henderson  <rth@cygnus.com>
6093
6094         * alpha.md (trunctfsf2): New.
6095
6096 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
6097
6098         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
6099
6100 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
6101
6102         * cppinit.c (cpp_handle_option): Recognize C++ comments under
6103         -std=gnu89.
6104         * cpplib.c (skip_block_comment, skip_line_comment): Split code
6105         out of...
6106         (skip_comment) ... here.  Permit C++ comments in system
6107         headers always.  Warn about C++ comments in user code under
6108         -std=gnu89 -pedantic.
6109         (copy_comment): Use skip_comment.
6110         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
6111         return EOF.
6112         (consider_directive_while_skipping, do_else, do_endif): Call
6113         validate_else unconditionally.
6114         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
6115         text after the conditional in a system header.
6116         * cpplib.h (struct cpp_buffer): Add flag
6117         warned_cplusplus_comments.
6118
6119 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
6120
6121         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
6122         Use unshare_all_rtl_1.
6123         (unshare_all_rtl_again): New function.
6124         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
6125
6126         * function.c (purge_addressof_1): Use unshare_all_rtl_again
6127         rather than resetting the 'used' flags ourself.
6128
6129         * toplev.c (rest_of_compilation): Add current_function_decl
6130         to the unshare_all_rtl call.
6131         * tree.h: Prototype unshare_all_rtl.
6132         * rtl.h: Prototype unshare_all_rtl_again here.
6133
6134 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
6135
6136         * genoutput.c (output_prologue): Include ggc.h in generated
6137         files.
6138         * Makefile.in (insn-output.o): Depends on ggc.h.
6139
6140 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
6141             Hans-Peter Nilsson  <hp@bitrange.com>
6142
6143         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
6144         Remove redundant include of xm-ns32k.h.
6145         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
6146         Remove redundant include of xm-ns32k.h.
6147         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
6148         Remove redundant include of xm-ns32k.h.
6149         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
6150
6151         * ns32k/ns32k.h: Update comment on multiply-add instructions.
6152         (TARGET_SWITCHES): Add documentation strings.
6153         (DWARF_FRAME_REGNUM): Override default definition.
6154         (REG_CLASS_CONTENTS): Add comments.
6155         (SUBSET_P): Format to reduce line length.
6156         (SMALL_REGISTER_CLASSES): Make a run time option.
6157         (GO_IF_NONINDEXED_ADDRESS): Reformat.
6158         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
6159         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
6160         (regclass_map): fix typo in comment.
6161         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
6162         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
6163         (trace, reg_or_mem_operand): Delete, unused function.
6164         (calc_address_cost): Small offsets are cheaper than large ones.
6165         (expand_block_move): Generate more efficient code when bytes is a
6166         known at compile time.
6167         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
6168         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
6169         instead of reg_or_mem_operand.
6170
6171         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
6172         not general_operand.  Similarly use "=rm" or stricter, not "=g".
6173         For input operands, use stricter constraints than "g" if not
6174         general_operand.  Similarly use stricter predicate than
6175         "general_operand" when stricter constraints than "g" are present,
6176         except for matching constraints.
6177         (movstrsi): Use "memory_operand" for operands 0 and 1.
6178         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
6179         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
6180         not reg_or_mem_operand.
6181         (udivmoddisi4): Ditto.
6182         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
6183         Use nonimmediate_operand for operand 3, not register_operand.
6184         (udivmoddiqi4_internal): Use register_operand for operand 1, not
6185         reg_or_mem_operand.
6186
6187 2000-01-27  Fred Fish  <fnf@be.com>
6188
6189         * gthr-posix.h: Fix typo; compatibily -> compatibility.
6190         * gthr-single.h: Likewise.
6191         * gthr-solaris.h: Likewise.
6192         * gthr-vxworks.h: Likewise.
6193         * gthr-win32.h: Likewise.
6194         * gthr.h: Likewise.
6195
6196 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
6197
6198         * cppinit.c: Add " (cpplib)" to end of string printed by
6199         -v / --version.
6200
6201 2000-01-27  Richard Henderson  <rth@cygnus.com>
6202
6203         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
6204         testing for a signed comparison.
6205         (alpha_emit_floatuns): New.
6206         * alpha-protos.h: Declare it.
6207         * alpha.md (floatunsdisf2, floatunsdidf2): New.
6208         (extendsfdf2): Tidy.
6209
6210 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
6211
6212         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
6213         no -g option specifying debugging format, default to -gstabs+.
6214
6215 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
6216
6217         * calls.c (special_function_p): New argument fork_or_exec.
6218         (expand_call): When profile_arc_flag is set and the function
6219         is in the fork_or_exec group, call __bb_fork_func first.
6220         * libgcc2.c, _bb module (__bb_fork_func): New function.
6221         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
6222         output file.
6223         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
6224         * tree.h (special_function_p): Update prototype.
6225
6226 2000-01-26  Richard Henderson  <rth@cygnus.com>
6227
6228         * alpha.c (alpha_split_tfmode_pair): New.
6229         * alpha-protos.h: Declare it.
6230         * alpha.md (abstf2, negtf2): New.
6231         (movtf insn): Add input G constraint.
6232         (movtf splitter): Use alpha_split_tfmode_pair.
6233
6234 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6235
6236         * i386/cygwin.h: PROTO -> PARAMS.
6237
6238 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
6239
6240         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
6241         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
6242         using _Qp_cmp/_Q_cmp and testing the return value.
6243         (print_operand): Call reverse_condition_maybe_unordered if
6244         we are handling CCFPmode or CCFPEmode.
6245         Handle ORDERED, UN* and LTGT comparisons.
6246         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
6247         if not TARGET_HARD_QUAD.
6248         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
6249         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
6250         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
6251         Adjust gen_b* calls so that they reflect return comparison of
6252         sparc_emit_float_lib_cmp.
6253
6254 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6255
6256         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
6257         incoming operands array is large enough for one more operand.
6258         (alpha_emit_xfloating_arith): Likewise.
6259
6260 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
6261
6262         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
6263         file with one line and no trailing newline.
6264         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
6265         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
6266         checking if the match is on the line.
6267         * fixinc/gnu-regex.c: Provide regerror not __regerror.
6268
6269 2000-01-25  Richard Henderson  <rth@cygnus.com>
6270
6271         * sparc.c (output_cbranch): Fix accidental squashing of the
6272         fp branch pre-delay nop.
6273
6274 2000-01-25  Richard Henderson  <rth@cygnus.com>
6275
6276         * tree.def (UNNE_EXPR): Remove.
6277         * c-typeck.c (build_binary_op): Don't handle it.
6278         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
6279
6280         * rtl.def (UNNE): Remove.
6281         (LTGT): Add.
6282         * jump.c (reverse_condition): Update accordingly.
6283         (swap_condition): Likewise.
6284         (comparison_dominates_p): Handle unordered comparisons.
6285         (reverse_condition_maybe_unordered): New.
6286         * rtl.h (reverse_condition_maybe_unordered): Declare.
6287
6288         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
6289         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
6290         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
6291         * sparc.md (bltgt): New.
6292
6293 2000-01-25  Nick Clifton  <nickc@redhat.com>
6294
6295         * emit-rtl.c (emit_insn): Only check machine class insns for
6296         improper emission of a RETURN.
6297
6298 2000-01-25  Richard Henderson  <rth@cygnus.com>
6299
6300         * Makefile.in (flow.o): Depend on $(EXPR_H).
6301         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
6302         duplicate the structure of diddle_return_value for keeping regs live.
6303
6304 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6305
6306         * loop.c (current_loop_info): Delete.
6307         (consec_sets_invariant_p): Add loop argument, update callers.
6308         (get_condition_for_loop): Likewise.
6309         (count_nonfixed_reads, update_giv_derive): Likewise.
6310         (simplify_giv_expr, general_induction_var): Likewise.
6311         (consec_sets_giv, recombine_givs): Likewise.
6312         (move_movables): Delete loop_start and loop_end arguments,
6313         add loop argument, and update callers.
6314         (find_mem_givs, check_final_value): Likewise.
6315         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
6316         (loop_invariant_p): Rename from invariant_p, add loop argument, and
6317         update callers.
6318         (basic_induction_var): Add loop argument, delete loop_level argument,
6319         and update callers.
6320         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
6321         add loop argument, and update callers.
6322         (find_splittable_regs, find_splittable_givs): Likewise.
6323         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
6324         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
6325         (biv_total_increment): Delete loop_start and loop_end arguments;
6326         update callers.
6327         (precondition_loop_p): Delete loop_start and loop_info arguments;
6328         update callers.
6329         * loop.h (get_condition_for_loop): Add loop argument.
6330         (biv_total_increment): Delete loop_start and loop_end arguments.
6331         (precondition_loop_p): Delete loop_start and loop_info arguments;
6332         add loop argument.
6333         (final_biv_value): Delete loop_start and loop_end arguments;
6334         add loop argument.
6335         (final_giv_value, back_branch_in_range_p): Likewise.
6336
6337 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
6338
6339         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
6340
6341 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
6342
6343         * Makefile.in (c-gperf.h) : Change the "See" pointer to
6344         point to the new "generated_files" doc.
6345
6346 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
6347
6348         * config/fp-bit.c (_unord_f2): Fix typo.
6349
6350 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
6351
6352         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
6353         c-typeck.c, objc/objc-act.c: Remove all references to obstack
6354         functions obsoleted by GC, such as push_obstacks_nochange,
6355         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
6356         and code which existed only to decide whether or not to call
6357         them.  Remove now-unused NESTED argument from start_function;
6358         all callers changed.  Do not change behavior based on ggc_p.
6359         The use of the ixp_obstack in c-iterate.c and the util_obstack
6360         in objc/objc-act.c remain; these are not obsoleted by garbage
6361         collection.
6362         * c-tree.h: Update prototype for start_function.
6363
6364         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
6365
6366 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
6367
6368         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
6369         mips16.
6370
6371 2000-01-25  Richard Henderson  <rth@cygnus.com>
6372
6373         * sparc-protos.h (select_cc_mode): Declare.
6374         * sparc.c (select_cc_mode): New.  Handle unordered compares.
6375         (output_cbranch): Always reverse via code change.  Handle
6376         unordered compares.  Factor tests and string updates.
6377         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
6378         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
6379         * sparc.md (bunordered, bordered): New.
6380         (bungt, bunlt, buneq, bunge, bunle): New.
6381
6382 2000-01-25  Richard Henderson  <rth@cygnus.com>
6383
6384         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
6385         * ggc-common.c (ggc_add_rtx_varray_root): New.
6386         (ggc_mark_rtx_varray): New.
6387         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
6388         functions down below ggc_mark_foo.
6389         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
6390
6391 2000-01-25  Richard Henderson  <rth@cygnus.com>
6392
6393         * alpha.c (secondary_reload_class): Don't allocate a secondary
6394         for integral mode memories into FLOAT_REGS.  Rearrange the more
6395         complicated memory expression inward.
6396
6397 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
6398
6399         * inclhack.def: Fixes to play nicer with FreeBSD, and
6400         corrections to comments.
6401         (cxx_unready): Add select expression.
6402         (irix_sockaddr): Add bypass expression.
6403         (machine_ansi_h_va_list): New fix.
6404         (stdio_va_list): No need to edit _BSD_VA_LIST_.
6405         Split out addition of "#include <stdarg.h>" to...
6406         (stdio_stdarg_h): ... here.
6407         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
6408         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
6409         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
6410         size_t.
6411         (ultrix_ifdef): Tighten up select expression.
6412
6413         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
6414         re_ct and max_mach to avoid use of shell.  Make printed names
6415         match names in inclhack.def.  Use static copyright date.
6416         Don't count c_test and test expressions as requiring regex_t
6417         slots.  Add some commentary.
6418         * inclhack.tpl: Do not include the 'This script contains N
6419         fixup scripts' line if PROGRAM is defined.  Use static
6420         copyright date.
6421
6422 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
6423
6424         * dwarf2out.c: include "varray.h", not dyn-string.h.
6425         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
6426         (addr_const_to_string, addr_to_string): Lose.
6427         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
6428         (struct dw_val_struct): val_addr is now an rtx.
6429         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
6430         (used_rtx_varray): New varray.
6431         (dwarf2out_init): Initialize it.
6432         (save_rtx): New fn.
6433         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
6434         addr_to_string.
6435         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
6436         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
6437         * Makefile.in (dwarf2out.o): Update dependencies.
6438
6439 2000-01-24  Richard Henderson  <rth@cygnus.com>
6440
6441         * i386.c (i386_dwarf_output_addr_const): New.
6442         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
6443
6444         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
6445         if defined.
6446         * dwarfout.c (output_mem_loc_descriptor): Likewise.
6447         * i386.c (i386_simplify_dwarf_addr): New.
6448         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
6449
6450 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
6451
6452         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
6453         TYPE_STUB_DECL is NULL.
6454
6455 2000-01-24  Richard Henderson  <rth@cygnus.com>
6456
6457         * builtins.c (expand_tree_builtin): Move ...
6458         * c-common.c (expand_tree_builtin): ... here.
6459
6460 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6461
6462         * loop.h (LOOP_INFO): New accessor macro.
6463         * basic-block.h (struct loop): Rename field `info' to `aux'.
6464         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
6465         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
6466         * unroll.c (loop_iterations, unroll_loop): Likewise.
6467
6468 2000-01-24  Christopher Faylor <cgf@cygnus.com>
6469
6470         * config/i386/t-cygwin: Accomodate new winsup directory layout
6471         when searching for include files.
6472
6473 2000-01-24  Richard Henderson  <rth@cygnus.com>
6474
6475         * rtl.def: Add unordered fp comparisions.
6476         * tree.def: Likewise.
6477         * tree.h: Add ISO C 9x unordered fp comparision builtins.
6478
6479         * builtins.c (expand_tree_builtin): New function.
6480         * c-typeck.c (build_function_call): Use it.
6481         (build_binary_op): Support unordered compares.
6482         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
6483
6484         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
6485         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
6486         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
6487         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
6488         * jump.c (reverse_condition): Don't abort for UNLE etc, but
6489         return UNKNOWN.
6490         (swap_condition): Handle unordered compares.
6491         (thread_jumps): Check can_reverse before reversing.
6492         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
6493         reversed for FP.
6494
6495         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
6496         setcc is present before acking for cmp_optab.  Update all callers.
6497         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
6498         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
6499         * expr.c (expand_expr): Likewise.  Support unordered compares.
6500         (do_jump, do_store_flag): Likewise.
6501         * expr.h (enum libfunc_index): Add unordered compares.
6502
6503         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
6504         (DPBIT_FUNCS): Add _unord_df.
6505         * config/fp-bit.c (_unord_f2): New.
6506         * fp-test.c (main): Try unordered compare builtins.
6507
6508         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
6509         * alpha.c (alpha_comparison_operator): Check mode properly.
6510         (alpha_swapped_comparison_operator): Likewise.
6511         (signed_comparison_operator): Likewise.
6512         (alpha_fp_comparison_operator): New.
6513         (alpha_emit_conditional_branch): Handle unordered compares.
6514         * alpha.h (PREDICATE_CODES): Update.
6515         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
6516         (bunordered, bordered): New.
6517
6518 2000-01-24  Richard Henderson  <rth@cygnus.com>
6519
6520         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
6521         * alpha.md (movtf): New expander, insn, and splitter.
6522
6523 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
6524
6525         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
6526         dead registers.
6527
6528 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
6529
6530         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
6531         (FIXED_REGISTERS, CALL_USED_REGISTERS,
6532          REG_ALLOC_ORDER): Add frame pointer
6533         (FRAME_POINTER_REGNUM): Set to 20
6534         (HARD_FRAME_POINTER_REGNUM): New macro.
6535         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
6536         to HARD_FRAME_POINTER.
6537         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
6538         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
6539         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
6540         (HI_REGISTER_NAMES): Add "frame".
6541         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
6542         (debug_reg): Handle FRAME_POINTER_REGNUM.
6543         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
6544         GENERAL_REGS and INDEX_REGS.
6545         * i386.c (SAVED_REGS_FIRST): new macro.
6546         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
6547         (ix86_decompose_address, memory_address_length): Likewise.
6548         (regclass_map): Add frame pointer.
6549         (call_insn_operand): Handle frame_pointer_rtx.
6550         (reg_no_sp_operand): Likewise.
6551         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
6552         (print_operand, legitimize_pic_address): Fix formating.
6553         (ix86_compute_frame_size): Make static, update prototype, new
6554         parameters padding1, padding2, use ix86_nsaved_regs, use
6555         stack_alignment_needed.
6556         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
6557         to HARD_FRAME_POINTER_REGNUM conversions.
6558         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
6559         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
6560         (print_reg): Abort on FRAME_POINTER_REGNUM
6561
6562 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
6563
6564         * i386.h (PREDICATE_CODES): Add aligned_operand.
6565         * i386.c (aligned_operand): New function.
6566         (ix86_aligned_p): Kill.
6567         * i386.md (movhi_1): Emit mov for aligned operands.
6568         (promoting peep2s): Use aligned_operand.
6569
6570 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
6571
6572         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
6573         expression to allow underscores in macro names.
6574         (fix_char_macro_defines): Increment scanning pointer.
6575
6576 2000-01-23  Richard Henderson  <rth@cygnus.com>
6577
6578         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
6579         * alpha/osf5.h: New file.
6580         * configure.in (alpha-*-osf5): Add it to tm_file.
6581
6582         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
6583
6584         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
6585         (alpha_emit_xfloating_cvt, function_arg): Declare.
6586         * alpha.c (alpha_emit_conditional_branch): Call
6587         alpha_emit_xfloating_compare for TFmode compares.
6588         (alpha_lookup_xfloating_lib_func): New.
6589         (alpha_compute_xfloating_mode_arg): New.
6590         (alpha_emit_xfloating_libcall): New.
6591         (alpha_emit_xfloating_arith): New.
6592         (alpha_emit_xfloating_compare): New.
6593         (alpha_emit_xfloating_cvt): New.
6594         (print_operand): Add default abort case.
6595         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
6596         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
6597         (BIGGEST_ALIGNMENT): Increase to 128 bits.
6598         (RETURN_IN_MEMORY): True for TF/TCmode.
6599         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
6600         (FUNCTION_ARG): Move to function_arg.
6601         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
6602         (ASM_OUTPUT_LONG_DOUBLE): New.
6603         (ASM_OUTPUT_DOUBLE): Always output bits.
6604         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
6605         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
6606         (extenddftf2, trunctfdf2): New.
6607
6608 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6609
6610         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
6611         * config/sparc/sol2.h: ... here.
6612
6613 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6614
6615         * basic-block.h (struct loops): New field `levels'.
6616         * flow.c (flow_loops_level_compute): Traverse all outer loops.
6617         (flow_loop_level_compute): Initialise level to 1.
6618         (flow_loops_find): Set loops->levels.
6619         (flow_loops_dump): Print loops->levels.
6620
6621 2000-01-23  Richard Henderson  <rth@cygnus.com>
6622
6623         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
6624         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
6625
6626 2000-01-23  Richard Henderson  <rth@cygnus.com>
6627
6628         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
6629         * i386.h (DBX_REGISTER_NUMBER): Use them.
6630         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
6631         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
6632         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
6633         * i386/sequent.h: Kill incorrect comment.
6634
6635 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
6636
6637         * ggc-page.c (struct page_entry): Make `context_depth' an
6638         `unsigned short'.
6639         (struct globals): Likewise.
6640
6641 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
6642
6643         * loop.c (check_dbra_loop): When checking a loop for
6644         reversability, check the source of any stores to ensure
6645         they don't depend on an initial value.
6646
6647 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6648
6649         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
6650
6651 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
6652
6653         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
6654         'pz_scan' into scope of entire function.  Only affects
6655         compiles with -DDEBUG.
6656
6657 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
6658
6659         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
6660         section naming to that prior to 2000-01-07 patch.
6661         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
6662         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
6663         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
6664         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
6665         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
6666
6667 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
6668
6669         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
6670         constant.
6671
6672 2000-01-21  Jim Wilson  <wilson@cygnus.com>
6673
6674         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
6675         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
6676
6677 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
6678
6679         * cpphash.c (change_newlines): Delete function.
6680         (struct argdata): Delete 'newlines' and 'use_count' fields.
6681         (macroexpand): Remove code referencing those fields.
6682
6683 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6684
6685         * loop.c (loops_info): New variable.
6686         (loop_optimize): Allocate loops->array and free it on exit.
6687         Allocate memory for loops_info and assign to each loop,
6688         replacing alloca.
6689         (find_and_verify_loops): Do not allocate loops->array.
6690
6691 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
6692
6693         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
6694
6695 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
6696
6697         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
6698         pseudos if expanded after first flow.
6699         (movdi_pic_label_ref): Likewise.
6700
6701 2000-01-20  Richard Henderson  <rth@cygnus.com>
6702
6703         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
6704
6705 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
6706
6707         * Makefile.in (fixinc.sh): Depend on specs.
6708         * fixinc/Makefile.in: Add rule to create machname.h.
6709         (fixlib.o): Depend on machname.h.
6710         * fixinc/fixtests.c (machine_name): New test.
6711         * fixinc/fixfixes.c (machine_name): New fix.
6712         * fixinc/fixlib.c (mn_get_regexps): New helper function for
6713         the machine_name test and fix.
6714         * fixinc/fixlib.h: Prototype it.
6715         * fixinc/inclhack.def (machine_name): Use the C test and fix.
6716         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
6717
6718         * gcc.c (do_spec_1) [case P]: Take care not to create
6719         identifiers with three leading or trailing underscores.
6720
6721         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
6722         (fixincl): Don't specify libraries twice on link line.
6723         (gnu-regex.o): Remove special rule.
6724         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
6725         defined by config.h.  Do not define _REGEX_RE_COMP.
6726         (regcomp): Allocate and initialize a fastmap.
6727         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
6728
6729 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
6730
6731         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
6732
6733 2000-01-19  Richard Henderson  <rth@cygnus.com>
6734
6735         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
6736         arguments with BB.  Update all callers.  Tidy line wrapping.
6737
6738 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
6739
6740         * emit-rtl.c (try_split): Return last_insn if we split the
6741         last_insn.
6742
6743 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
6744
6745         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
6746         (ix86_initial_elimination_offset): Declare.
6747         * i386.c (ix86_nsaved_regs): Break out from ...
6748         (ix86_can_use_return_insn_p): ... here.
6749         (ix86_emit_save_regs): Break out from ...
6750         (ix86_expand_prologue): ... here.
6751         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
6752         out from ...
6753         (ix86_expand_epilogue): ... here.
6754         (ix86_compute_frame_size): Make static, add prototype.
6755         (ix86_initial_elimination_offset): Break out from ...
6756         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
6757
6758 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6759
6760         * recog.h (OUT_FCN): Delete.
6761
6762         * vax.md: Call `get_insn_template' instead of OUT_FCN.
6763
6764 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6765
6766         * cppalloc.c: PROTO -> PARAMS.
6767         * cpperror.c: Likewise.
6768         * cppfiles.c: Likewise.
6769         * cpplib.c: Likewise.
6770         * cpplib.h: Likewise.
6771
6772         * config/arm/arm-protos.h: PROTO -> PARAMS.
6773         * config/arm/arm.c: Likewise.
6774         * config/c4x/c4x.c: Likewise.
6775         * config/fr30/fr30-protos.h: Likewise.
6776         * config/nextstep.c: Likewise.
6777         * config/pa/pa.c: Likewise.
6778         * config/pj/pj.c: Likewise.
6779         * config/rs6000/rs6000.c: Likewise.
6780         * config/v850/v850-protos.h: Likewise.
6781         * config/v850/v850.c: Likewise.
6782
6783 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6784
6785         * i370-protos.h: New file.
6786
6787         * i370.c: Include tm_p.h.  Fix compile time warnings.
6788
6789         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
6790         warnings.
6791
6792         * i370.md: Likewise.
6793
6794 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6795
6796         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
6797         (target_isinf, target_isnan, eisnan): Mark parameter with
6798         ATTRIBUTE_UNUSED.
6799         (eiisinf): Wrap in INFINITY.
6800         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
6801         (ibmtoe): Remove unused variable `rndsav'.
6802
6803 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6804
6805         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
6806         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
6807
6808 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
6809
6810         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
6811         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
6812         (fix_char_macro_defines, fix_char_macro_uses): New functions.
6813
6814         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
6815         Recognize Emacs mode markers also.
6816         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
6817         C++ comments in C++ headers.  Call is_cxx_header only if
6818         necessary.
6819
6820         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
6821         bypass for ncurses.
6822         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
6823         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
6824         ... these, which use the new C fixes.
6825         (math_exception): Escape literal '+' in bypass expression.
6826
6827         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
6828         Regenerate.
6829
6830 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
6831
6832         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
6833         inside the MEM.
6834
6835 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6836
6837         * loop.c (loop_optimize): Allocate loop_info structure for each loop
6838         prior to calling scan_loop.
6839
6840 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6841
6842         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
6843         (split_branches, calc_live_regs): Likewise.
6844
6845 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6846
6847         * sh.md (fpu_single, fp_mode): New attributes.
6848
6849 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6850
6851         * loop.c (current_loop_info): Renamed from loop_info_data
6852         and changed to a pointer.
6853         (loop_optimize): Allocate loop_info structure for each loop
6854         and initialise to zero.
6855         (scan_loop): Set current_loop_info.
6856
6857         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
6858         on iteration_var.
6859
6860 2000-01-19  Richard Henderson  <rth@cygnus.com>
6861
6862         * stupid.c: Die die die.
6863         * Makefile.in (OBJS): Remove stupid.o.
6864         (stupid.o): Likewise.
6865
6866         * except.c (emit_eh_context): Don't emit USEs for stupid.
6867         * explow.c (probe_stack_range): Likewise.
6868         * flags.h (obey_regdecls): Remove.
6869         * flow.c (find_basic_blocks): Don't run try_merge_blocks
6870         when not optimizing.
6871         (life_analysis): Limit data collection when not optimizing.
6872         (mark_regs_live_at_end): Always mark the return value registers.
6873         (mark_used_regs): Remove dummy RETURN case.
6874         (print_rtl_with_bb): Don't consult obey_regdecls.
6875         * function.c (use_variable, use_variable_after): Remove.
6876         (assign_parms): Consult optimize not obey_regdecls.
6877         (expand_function_start): Don't emit USEs for stupid.
6878         (expand_function_end): Likewise.
6879         * global.c (build_insn_chain): Export.
6880         * integrate.c (expand_inline_function): Kill return-value USE
6881         handling code.
6882         * jump.c (jump_optimize_1): Do simple jump optimizations and
6883         dead code elimination.
6884         (calculate_can_reach_end): Remove check_deleted argument.
6885         (delete_insn): Patch out insns even when not optimizing.
6886         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
6887         * rtl.h (use_variable, use_variable_after): Remove declarations.
6888         (build_insn_chain): Declare.
6889         * stmt.c (expand_value_return): Don't emit USEs for stupid.
6890         (expand_end_bindings): Likewise.
6891         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
6892         * toplev.c (obey_regdecls): Remove.
6893         (rest_of_compilation): Don't set it.  Kill stupid in favour of
6894         flow1, local-alloc, and reload.
6895         (main): Don't set obey_regdecls.
6896
6897         * config/nextstep.c (handle_pragma): Likewise.
6898
6899         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
6900
6901         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
6902
6903 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6904
6905         * alpha-protos.h: PROTO -> PARAMS.
6906         * alpha.c: Likewise.
6907         * elf.h: Likewise.
6908         * h8300.c: Likewise.
6909         * i386-protos.h: Likewise.
6910         * i386.c: Likewise.
6911         * m32r-protos.h: Likewise.
6912         * m32r.c: Likewise.
6913         * mips.c: Likewise.
6914         * mips.md: Likewise.
6915         * gmon-sol2.c: Likewise.
6916         * sparc.c: Likewise.
6917
6918 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6919
6920         * ns32k-protos.h: New file.
6921
6922         * ns32k.c: Fix compile time warnings.
6923
6924         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
6925         warnings.
6926
6927         * ns32k.md: Likewise.
6928
6929 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6930
6931         * vax-protos.h: New file.
6932
6933         * vax.c: Fix compile time warnings.
6934
6935         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
6936         warnings.
6937
6938         * vax.md: Likewise.
6939
6940         * vaxv.md: Likewise.
6941
6942 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6943
6944         * romp-protos.h: New file.
6945
6946         * romp.c: Fix compile time warnings.
6947
6948         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
6949         warnings.
6950
6951         * romp.md: Likewise.
6952
6953 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6954
6955         * we32k-protos.h: New file.
6956
6957         * we32k.c: Fix compile time warnings.
6958
6959         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
6960         warnings.
6961
6962 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6963
6964         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
6965
6966         * except.c (eh_regs): Likewise.
6967
6968         * final.c (output_operand): Likewise.
6969
6970         * fold-const.c (target_isinf, target_isnan): Likewise.
6971
6972 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
6973
6974         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
6975         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
6976
6977         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
6978         when optimize_size.
6979         (clrstrsi): Rewrite.
6980         (strsethi, strsetqi): New expanders.
6981         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
6982         (cmpstrsi): Emit compare insn before cmpstrsi_1
6983         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
6984         (strlensi_1): Likewise.
6985         (cmpstrsi_1): Likewise; do not output compare.
6986         (strlen expander): Do not unroll when optimizing for size.
6987         (*subsi3_carry): Rename to subsi3_carry
6988         (addqi3_cc): New pattern.
6989         * i386.h (processor_costs): Add move_ratio field.
6990         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
6991         * i386.c (*_cost): Set move_ratio.
6992         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
6993         (x86_expand_strlensi_1): Rewrite the main loop.
6994
6995 2000-01-17  Richard Henderson  <rth@cygnus.com>
6996
6997         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
6998         * cse.c (find_comparison_args, fold_rtx): Likewise.
6999         * integrate.c (subst_constants): Likewise.
7000         * loop.c (get_condition): Likewise.
7001
7002         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
7003
7004         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
7005
7006 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7007
7008         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
7009         (RESTORE_WARN_FLAGS): Unpack it.
7010         Change semantic type of extension to ttype.
7011         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
7012         * c-parse.y, c-parse.c, objc/objc-parse.y,
7013         objc/objc-parse.c: Regenerate.
7014
7015 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
7016
7017         * fixinc/fixlib.c: Add copyright notice.
7018         (compile_re): New function.
7019         * fixinc/fixlib.h: Prototype compile_re.
7020
7021         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
7022         Use compile_re to compile regular expressions.
7023
7024         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
7025         where the pattern matched.
7026
7027         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
7028         use 'replace'.
7029         (ultrix_ansi_compat): Likewise.
7030         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
7031         add egrep test.
7032         (interactv_add2, interactv_add3): Delete.
7033         (x11_sprintf): Don't use filename glob.
7034         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
7035         Regenerate.
7036
7037 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7038
7039         * print-rtl.c: PROTO -> PARAMS.
7040         * real.c: Likewise.
7041         * reg-stack.c: Likewise.
7042         * resource.c: Likewise.
7043         * sdbout.h: Likewise.
7044         * simplify-rtx.c: Likewise.
7045         * stor-layout.c: Likewise.
7046         * stupid.c: Likewise.
7047         * xcoffout.c: Likewise.
7048         * xcoffout.h: Likewise.
7049
7050 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7051
7052         * toplev.c: PROTO -> PARAMS.
7053         * toplev.h: Likewise.
7054         * tree.c: Likewise.
7055         * tree.h: Likewise.
7056         * unroll.c: Likewise.
7057         * varasm.c: Likewise.
7058         * varray.c: Likewise.
7059         * varray.h: Likewise.
7060
7061 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7062
7063         * reload.c: PROTO -> PARAMS.
7064         * reload.h: Likewise.
7065         * reload1.c: Likewise.
7066         * reorg.c: Likewise.
7067         * resource.h: Likewise.
7068         * rtl.c: Likewise.
7069         * rtl.h: Likewise.
7070         * rtlanal.c: Likewise.
7071         * sbitmap.h: Likewise.
7072         * sdbout.c: Likewise.
7073         * stack.h: Likewise.
7074         * stmt.c: Likewise.
7075         * system.h: Likewise.
7076
7077 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7078
7079         * machmode.h: PROTO -> PARAMS.
7080         * mbchar.h: Likewise.
7081         * mips-tdump.c: Likewise.
7082         * mips-tfile.c: Likewise.
7083         * optabs.c: Likewise.
7084         * output.h: Likewise.
7085         * prefix.c: Likewise.
7086         * profile.c: Likewise.
7087         * protoize.c: Likewise.
7088         * real.h: Likewise.
7089         * recog.c: Likewise.
7090         * recog.h: Likewise.
7091         * regclass.c: Likewise.
7092         * regmove.c: Likewise.
7093         * regs.h: Likewise.
7094
7095 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7096
7097         * ggc-common.c: PROTO -> PARAMS.
7098         * ggc-page.c: Likewise.
7099         * ggc-simple.c: Likewise.
7100         * ggc.h: Likewise.
7101         * global.c: Likewise.
7102         * graph.c: Likewise.
7103         * gthr-win32.h: Likewise.
7104         * haifa-sched.c: Likewise.
7105         * halfpic.h: Likewise.
7106         * integrate.c: Likewise.
7107         * integrate.h: Likewise.
7108         * jump.c: Likewise.
7109         * lcm.c: Likewise.
7110         * local-alloc.c: Likewise.
7111         * loop.c: Likewise.
7112         * loop.h: Likewise.
7113
7114 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7115
7116         * genattr.c: PROTO -> PARAMS.
7117         * genattrtab.c: Likewise.
7118         * gencheck.c: Likewise.
7119         * gencodes.c: Likewise.
7120         * genconfig.c: Likewise.
7121         * genemit.c: Likewise.
7122         * genextract.c: Likewise.
7123         * genflags.c: Likewise.
7124         * gengenrtl.c: Likewise.
7125         * genopinit.c: Likewise.
7126         * genoutput.c: Likewise.
7127         * genpeep.c: Likewise.
7128         * genrecog.c: Likewise.
7129
7130 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
7131
7132         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
7133
7134 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7135
7136         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
7137         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
7138         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
7139         * configure, config.in: Rebuilt.
7140
7141 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
7142
7143         * config/i386/i386.md: Add peephole to merge successive stack
7144         adjusts.
7145
7146 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
7147
7148         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
7149         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
7150         when walking backwards to find all the parameter loads when
7151         the basic block ends in a call.
7152
7153 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7154
7155         * loop.c (this_loop_info): Delete.
7156         (uid_loop): Add in place of uid_loop_num.  All uses updated.
7157         (loop_number_exit_count): Delete and replace with entry in loop
7158         structure.  All uses updated.
7159         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
7160         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
7161         (loop_outer_loop): Likewise.
7162         (loop_invalid, loop_number_exit_labels): Likewise.
7163         (loop_used_count_register): Delete and replace with entry in
7164         loop_info structure.
7165         (find_and_verify_loops): Add loops argument.
7166         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
7167         loop_end, etc. arguments with loop structure pointer.  All callers
7168         changed.
7169         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
7170         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
7171         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
7172         (insert_bct): Likewise.
7173         (basic_induction_var): New argument level.
7174         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
7175         vtop, and cont.  Add used_count_register.
7176         (uid_loop): Delete declaration.
7177         (loop_number_exit_count): Likewise.
7178         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
7179         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
7180         (loop_outer_loop, loop_used_count_register): Likewise.
7181         (loop_invalid, loop_number_exit_labels): Likewise.
7182         (unroll_loop): Replace loop_start and loop_end arguments
7183         with loop structure pointer.
7184         (loop_precondition_p, loop_iterations): Likewise.
7185         Include basic-block.h.
7186         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
7187         with loop structure pointer.
7188         (loop_precondition_p, loop_iterations): Likewise.
7189         * basic-block.h (struct loop): New entries vtop, cont,
7190         cont_dominator, start, end, top, scan_start, exit_labels,
7191         exit_count.
7192         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
7193
7194 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7195
7196         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
7197
7198 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
7199
7200         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
7201
7202 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7203
7204         * pdp11-protos.h: New file.
7205
7206         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
7207         time warnings.
7208
7209         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
7210         warnings.
7211
7212         * pdp11.md: Likewise.
7213
7214         * 2bsd.h: Likewise.
7215
7216 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7217
7218         * mn10300-protos.h: New file.
7219
7220         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
7221         time warnings.
7222
7223         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
7224         warnings.
7225
7226         * mn10300.md: Likewise.
7227
7228 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7229
7230         * mn10200-protos.h: New file.
7231
7232         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
7233         time warnings.
7234
7235         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
7236         warnings.
7237
7238         * mn10200.md: Likewise.
7239
7240 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7241
7242         * h8300-protos.h: New file.
7243
7244         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
7245         time warnings.
7246
7247         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
7248         warnings.
7249
7250         * h8300.md: Likewise.
7251
7252 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7253
7254         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
7255         (asm_emit_uninitialised): Likewise.
7256
7257 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
7258
7259         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
7260         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
7261
7262 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
7263
7264         * config/mips/mips.c (override_options): Don't turn on extra
7265         alignment for mips16.
7266
7267 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
7268
7269         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
7270         eabi, and make sure queued POSTINCREMENT rtl is emitted at
7271         the right point.
7272
7273 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
7274
7275         * builtins.c (PAD_VARARGS_DOWN): Define.
7276         (std_expand_builtin_va_arg): Use the above macro.
7277         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
7278         * tm.texi (Register Arguments): Document the above macro.
7279
7280 2000-01-14  Nick Clifton  <nickc@cygnus.com>
7281
7282         * emit-rtl.c (emit_insn): If checking is enabled, make sure
7283         that this function has not been used to emit a jump
7284         instruction.
7285
7286         * jump.c (return_jump_1): Cope with being passed a null rtx.
7287
7288 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7289
7290         * eh-common.h: PROTO -> PARAMS.
7291         * emit-rtl.c: Likewise.
7292         * errors.c: Likewise.
7293         * errors.h: Likewise.
7294         * except.c: Likewise.
7295         * except.h: Likewise.
7296         * explow.c: Likewise.
7297         * expmed.c: Likewise.
7298         * expr.c: Likewise.
7299         * expr.h: Likewise.
7300         * final.c: Likewise.
7301         * fix-header.c: Likewise.
7302         * flow.c: Likewise.
7303         * fold-const.c: Likewise.
7304         * function.c: Likewise.
7305         * function.h: Likewise.
7306         * gcc.c: Likewise.
7307         * gcov-io.h: Likewise.
7308         * gcov.c: Likewise.
7309         * gcse.c: Likewise.
7310
7311 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7312
7313         * sh-protos.h: New file.
7314
7315         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
7316         Add static prototypes.  Fix compile time warnings.
7317
7318         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
7319         * sh.md: Likewise.
7320         * elf.h: Likewise.
7321
7322 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7323
7324         * arc-protos.h: New file.
7325
7326         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
7327         time warnings.
7328
7329         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
7330         warnings.
7331
7332         * arc.md: Likewise.
7333
7334 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7335
7336         * dsp16xx-protos.h: New file.
7337
7338         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
7339         time warnings.
7340
7341         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
7342         warnings.
7343
7344         * dsp16xx.md: Likewise.
7345
7346 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7347
7348         * convex-protos.h: New file.
7349
7350         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
7351         time warnings.
7352
7353         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
7354         warnings.
7355
7356 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7357
7358         * elxsi-protos.h: New file.
7359
7360         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
7361         time warnings.
7362
7363         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
7364         warnings.
7365
7366         * elxsi.md: Likewise.
7367
7368 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
7369
7370         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
7371         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
7372         match the comment for MIPS16.
7373
7374 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
7375
7376         * flow.c (split_edge): Do not call set_block_for_insn if we
7377         do not have a basic_block_for_insn structure.
7378
7379         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
7380         and destination functions are 32bit aligned within the trampoline.
7381         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
7382         (TRAMPOLINE_ALIGNMENT): Define.
7383
7384         * cse.c (cse_insn): When changing (set (pc) (reg)) to
7385         (set (pc) (label_ref)), verify the change creates a valid insn.
7386
7387         * fr30.c (call_operand): Tighten and rework to match rules for
7388         call RTL expressions.
7389         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
7390         * fr30.md (call patterns): Improve constraints.
7391
7392 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
7393
7394         * fr30.c (fr30_expand_epilogue): Revert last change.
7395         Use emit_jump_insn for the return insn.
7396
7397 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
7398                           Stan Cox  <scox@cygnus.com>
7399
7400         * predict.c: New file. Preliminary infrastructure work for static
7401         branch prediction and basic block reordering.
7402         * basic-block.h: Add prototype for estimate_probability.
7403         * Makefile.in: Add rules for predict.o.
7404
7405 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
7406
7407         * fixincludes (va_list): Use __not_va_list__ for the dummy.
7408         * fixinc/*: Likewise.
7409
7410 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7411
7412         * cccp.c: PROTO -> PARAMS.
7413         * cexp.y: Likewise.
7414         * collect2.c: Likewise.
7415         * combine.c: Likewise.
7416         * convert.h: Likewise.
7417         * cse.c: Likewise.
7418         * dbxout.c: Likewise.
7419         * dbxout.h: Likewise.
7420         * diagnostic.c: Likewise.
7421         * doprint.c: Likewise.
7422         * dwarf2out.c: Likewise.
7423         * dwarf2out.h: Likewise.
7424         * dwarfout.c: Likewise.
7425         * dwarfout.h: Likewise.
7426         * dyn-string.h: Likewise.
7427
7428 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7429
7430         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
7431         macro conditionals guarding use.
7432
7433         * dwarf2out.c: Include "tm_p.h".
7434
7435         * function.c (locate_and_pad_parm): Mark parameter with
7436         ATTRIBUTE_UNUSED.
7437         (expand_function_end): Likewise for variable `context'.
7438
7439         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
7440
7441 2000-01-13  Nick Clifton  <nickc@cygnus.com>
7442
7443         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
7444         register to prevent compile time warnings.
7445
7446 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
7447
7448         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
7449         to avoid -Wtraditional warning.
7450
7451 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7452
7453         * 1750a-protos.h: New file.
7454
7455         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
7456         time warnings.
7457
7458         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
7459         warnings.
7460
7461         * 1750a.md: Likewise.
7462
7463 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7464
7465         * a29k-protos.h: New file.
7466
7467         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
7468         time warnings.
7469
7470         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
7471         warnings.
7472
7473 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7474
7475         * clipper-protos.h: New file.
7476
7477         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
7478         time warnings.
7479
7480         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
7481         warnings.
7482
7483 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7484
7485         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
7486
7487 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
7488
7489         * configure.in (--enable-new-gxx-abi): New option.
7490         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
7491         * Makefile.in (GXX_ABI_FLAG): New variable.
7492         * configure: Regenerate.
7493
7494 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7495
7496         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
7497         * tm.texi (FORCE_STRUCT_BLK): Document.
7498         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
7499
7500 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
7501
7502         * config/ns32k/ns32k.md: Revert Jan 9 change.
7503
7504         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
7505         to a mode-test, if the predicate is address_operand.
7506
7507 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
7508
7509         * combine.c (if_then_else_cond): Be careful about what kinds
7510         of RTL expressions are passed to operand_subword.
7511
7512         * flow.c (split_edge): If we have to insert a new jump, make
7513         sure to associate it with a basic block.
7514
7515         * flow.c (commit_one_edge_insertion): A block with one successor
7516         can end in a JUMP_INSN that is not a simplejump.
7517
7518 2000-01-12  Robert Lipe  <robertl@sco.com>
7519
7520         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
7521         (BUILD_VA_LIST_TYPE): Define.
7522         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
7523         with crtstuff.c.
7524
7525 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
7526
7527         * cccp.c (do_pragma): Add cast to (char *).
7528
7529 2000-01-12  Richard Henderson  <rth@cygnus.com>
7530             Fred Fish  <fnf@be.com>
7531             Jason Merrill  <jason@cygnus.com>
7532
7533         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
7534         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
7535         * i386/beos-elf.h, i386/beos-pe.h: New files.
7536
7537         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
7538         * cross-make (SYSTEM_HEADER_DIR): Define using
7539         CROSS_SYSTEM_HEADER_DIR.
7540
7541         * gcc.c (LIBRARY_PATH_ENV): Provide default.
7542         (process_command): Use it.
7543         (main): Likewise.  Kill trailing = from env vars.
7544         (build_search_list): Put it back.
7545         * collect2.c (main): Use LIBRARY_PATH_ENV.
7546
7547         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
7548         * toplev.c: Use NEED_DECLARATION_ENVIRON.
7549
7550         * tm.texi (Frame Layout): Document SMALL_STACK.
7551         * c-common.c (c_common_nodes_and_builtins): Check it.
7552
7553         * system.h: Undef alloca after including glibc's <stdlib.h>,
7554         if USE_C_ALLOCA is defined.
7555
7556         * gcc.c (set_input): New fn.
7557         (main): After all input files are compiled, reset the input file
7558         info to the first.
7559
7560         * aclocal.m4 (rindex, index): If already defined, don't attempt
7561         to redefine.
7562
7563         * ginclude/varargs.h: (__va_list__): Define ifndef.
7564         * ginclude/stdarg.h: Likewise.
7565
7566         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
7567         instead of unsigned char.
7568
7569         * hash.h (true, false, boolean): Undef before enum.
7570
7571         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
7572         proper type of "HOST_WIDE_INT *", rather than their natural type of
7573         "unsigned HOST_WIDE_INT *".
7574
7575 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7576
7577         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
7578
7579         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
7580
7581         * regclass.c (choose_hard_reg_mode): Likewise.
7582
7583         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
7584
7585         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
7586
7587 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7588
7589         * c-common.c: PROTO -> PARAMS.
7590         * c-common.h: Likewise.
7591         * c-decl.c: Likewise.
7592         * c-iterate.c: Likewise.
7593         * c-lang.c: Likewise.
7594         * c-lex.c: Likewise.
7595         * c-lex.h: Likewise.
7596         * c-parse.in: Likewise.
7597         * c-pragma.c: Likewise.
7598         * c-pragma.h: Likewise.
7599         * c-tree.h: Likewise.
7600         * c-typeck.c: Likewise.
7601         * objc/objc-act.c: Likewise.
7602         * objc/objc-act.h: Likewise.
7603
7604 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7605
7606         * m88k-protos.h: New file.
7607
7608         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
7609         time warnings.
7610
7611         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
7612
7613         * m88k.md: Likewise.
7614
7615         * tekXD88.h: Likewise.
7616
7617 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7618
7619         * m68k-protos.h: New file.
7620
7621         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
7622         time warnings.
7623
7624         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
7625
7626         * mot3300.h: Likewise.
7627
7628 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
7629
7630         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
7631         extract_bitlst.
7632         (extract_bitlist): Declare bitlen.
7633
7634 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
7635
7636         * cccp.c: Accept and ignore -lang-fortran.
7637
7638         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
7639         qualifiers don't match at any level of pointerness.
7640
7641 2000-01-12  Robert Lipe  <robertl@sco.com>
7642
7643         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
7644
7645 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
7646
7647         * reload1.c (reload_reg_unavailable): New static variable.
7648         (reload_reg_free_p): Test it.
7649         (reload_reg_free_for_value_p): Test it instead of
7650         reload_reg_used.
7651         (choose_reload_regs_init): Compute it.
7652
7653 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
7654
7655         * reorg.c (fill_slots_from_thread): Check modified_in_p
7656         before replacing.
7657
7658 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
7659
7660         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
7661         these nodes even if INTERNALS is not set.
7662
7663 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
7664
7665         * gcse.c (delete_null_pointer_checks_1): Cope when
7666         get_condition cannot determine the condition.
7667
7668 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
7669
7670         * toplev.h (set_message_length): Declare.
7671
7672         * diagnostic.c (obstack_chunk_alloc): Define macro.
7673         (obstack_chunk_free): Likewise.
7674         (struct output_buffer): New data structure.
7675         (vmessage): Remove.
7676         (output_maximum_width): New variable.
7677         (doing_line_wrapping, set_message_length, init_output_buffer,
7678         get_output_prefix, output_space_left, emit_output_prefix,
7679         output_newline, output_append, output_puts, dump_output,
7680         vbuild_message_string, build_message_string, build_location_prefix,
7681         voutput_notice, output_printf, line_wrapper_printf,
7682         vline_wrapper_message_with_location):  New functions. Implement
7683         automatic line wrapping.
7684         (v_message_with_decl): Make it handle automatic line wrapping.
7685         (v_error_with_file_and_line): Likewise.
7686         (v_warning_with_file_and_line): Likewise.
7687         (announce_function): Likewise.
7688         (default_print_error_function): Likewise.
7689
7690 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
7691
7692         * cpplib.h (struct cpp_options): Change lang_asm to char.
7693         Add lang_fortran.
7694         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
7695         done in cpp_handle_option now.
7696         (initialize_builtins): Take out special case code used only by
7697         __STDC_VERSION__.
7698         (cpp_handle_option): Turn off trigraphs and trigraph warnings
7699         if -traditional.  Recognize -lang-fortran and set
7700         lang_fortran, also turn off cplusplus_comments.
7701         (print_help): Document -lang-fortran.
7702         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
7703         lang_asm. Ignore all directives other than `# 123 "file"' if
7704         CPP_PREPROCESSED.
7705         (cpp_get_token): If -traditional, don't recognize directives
7706         unless the # is in column 1.
7707         (parse_string): If lang_fortran or lang_asm, silently
7708         terminate strings ('' or "") at end of line.
7709         Remove unnecessary braces.
7710
7711 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7712             Richard Henderson  <rth@cygnus.com>
7713
7714         * resource.c (mark_referenced_resources): Mark a set strict_low_part
7715         as used.
7716         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
7717         strict_low_part when possible.
7718
7719 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7720
7721         * alias.c: PROTO -> PARAMS.
7722         * basic-block.h: Likewise.
7723         * bitmap.c: Likewise.
7724         * bitmap.h: Likewise.
7725         * builtins.c: Likewise.
7726         * c-aux-info.c: Likewise.
7727         * caller-save.c: Likewise.
7728         * calls.c: Likewise.
7729
7730 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7731
7732         * Makefile.in (toplev.o): Depend on regs.h.
7733
7734         * output.h (tdesc_section): Prototype.
7735
7736         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
7737
7738         * sdbout.c: Include "tm_p.h".
7739
7740         * toplev.c: Include "regs.h".
7741
7742 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
7743
7744         * unroll.c (unroll_loop): Add EH support.
7745
7746 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7747
7748         * pa-protos.h: New file.
7749
7750         * pa.c: Include recog.h and tm_p.h.
7751         (compute_zdepwi_operands, compute_movstrsi_length,
7752         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
7753         find_addr_reg, import_milli): Add static prototypes.
7754         (pa_cpu_string, pa_arch_string): Constify a char*.
7755         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
7756         (read_only_operand): Add argument `mode'.
7757         (singlemove_string, output_move_double, output_fp_move_double,
7758         output_block_move, output_and, output_ior, output_ascii,
7759         remove_useless_addtr_insns, milli_names, output_mul_insn,
7760         output_div_insn, output_mod_insn, output_arg_descriptor,
7761         output_cbranch, output_bb, output_bvb, output_dbra, ,
7762         output_millicode_call, output_call, hppa_encode_label,
7763         output_parallel_movb, output_parallel_addb): Constify a char*.
7764         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
7765         (output_parallel_addb): Remove extra arg to `constrain_operands'
7766
7767         * pa.h:  Move all prototypes to pa-protos.h.
7768         (pa_cpu_string, pa_arch_string): Constify a char*.
7769         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
7770
7771         * pa.md: Call `function_label_operand' with mode argument.
7772         Likewise for `read_only_operand'.
7773         Fix nesting of parens in call to `symbolic_operand'.
7774
7775 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7776
7777         * i860-protos.h: New file.
7778
7779         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
7780         time warnings.
7781
7782         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
7783
7784         * i860.md: Likewise.
7785
7786 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
7787
7788         * i386.md (movstrsi expander): Rewrite.
7789         (movstrsi_1 insn): Deleted.
7790         (strmovhi, strmovqi expander): New expanders.
7791         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
7792         * i386.c (x86_single_stringop): New global variable.
7793         * i386.h (x86_single_stringop): Declare.
7794         (TARGET_SINGLE_STRINGOP): New macro.
7795
7796 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
7797
7798         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
7799         integer vararg POSTINCREMENT before the destination of the jump
7800         for the hard fp case.
7801         (function_arg_pass_by_reference): Pass a copy of CUM to
7802         FUNCTION_ARG.
7803
7804         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
7805         for CONSTANT_ADDRESS_P above while loop for subreg.
7806
7807 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
7808
7809         * flow.c (propagate_block): When a prologue/epilogue insn
7810         is marked dead, unconditionally clear libcall_is_dead and
7811         insn_is_dead, and only dump rtl if warnings aren't being
7812         suppressed.
7813
7814 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
7815
7816         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
7817         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
7818         (FIXED_REGISTERS): Set dirflag as fixed.
7819         (CALL_USED_REGISTERS): Set dirflag as used.
7820         (REG_ALLOC_ORDER): Set dirflag as last one.
7821         (DIRFLAG_REG): New macro.
7822         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
7823         (HI_REGISTER_NAMES): Add dirflag.
7824         (DEBUF_PRINT_REG): Handle dirflag.
7825         * i386.md (type attribute): New cld and str types.
7826         (length_opcode attribute): Set cld and str to 1.
7827         (memory attribute): Set str to unknown - it is not clear from the
7828         patterns.
7829         (pent_np function unit): Prefixed string operations takes 12 cycles
7830         minimally; cld takes 2 cycles.
7831         (ppro_uops attribute): Str is "many" and cld is "few".
7832         (ppro_p0 unit): Handle cld here.
7833         (k6_alux unit): Handle cld and str types.
7834         (k6_load unit): It is ocupied by str opcodes.
7835         (k6_store unit): It is ocupied by str opcodes.
7836         (athlon_decode): Str is vector decoded.
7837         (athlon_ieu): Handle str and cld.
7838         (cld pattern): New.
7839         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
7840         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
7841         cmpstrsi_nz_1 insn): Do not output cld instruction
7842
7843 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
7844
7845         * gcc.texi (G++ and GCC): Add Java and Chill.
7846         (Bug Critera): Don't list languages.
7847
7848         * gcc.texi (Incompatibilities): No longer claim most C compilers
7849         are K&R.
7850
7851         * gcc.texi (G++ and GCC): Update other front-ends list.
7852
7853 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
7854
7855         * i386.c (ix86_expand_setcc): Fix typo.
7856         (ix86_expand_movcc): Similarly.
7857
7858         * Band-aid until haifa's bitset implementation is nuked.
7859         * haifa-sched.c (extract_bitlst): New parameter for size of the
7860         bitset in bits.  All callers changed.  Avoid looking at undefined
7861         bits in the bitset.
7862         (edgeset_bitsize): New variable.
7863         (schedule_region): Initialize edgeset_bitsize.
7864
7865 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7866
7867         * Makefile.in (optabs.o): Depend on real.h
7868         (resource.o): Depend on insn-attr.h
7869
7870         * builtins.c (result_vector): Wrap prototype in macro conditions
7871         governing definition and use.
7872
7873         * c-common.c: Include tm_p.h.
7874
7875         * c-lex.c: Likewise.
7876
7877         * elfos.h: Constify a char*.
7878
7879         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
7880         (get_attr_length, shorten_branches, profile_after_prologue): Mark
7881         parameter with ATTRIBUTE_UNUSED.
7882
7883         * fold-const.c (exact_real_inverse): Wrap variable `i' in
7884         CHECK_FLOAT_VALUE.
7885
7886         * haifa-sched.c (schedule_insns): Mark parameter with
7887         ATTRIBUTE_UNUSED.
7888
7889         * optabs.c: Include real.h.
7890
7891         * real.h (ereal_atof): Add prototype arguments.
7892
7893         * resource.c: Include insn-attr.h.
7894
7895         * sdbout.c (sdbout_queue_anonymous_type,
7896         sdbout_dequeue_anonymous_types): Wrap in macro
7897         SDB_ALLOW_FORWARD_REFERENCES.
7898         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
7899         ATTRIBUTE_UNUSED.
7900
7901         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
7902
7903         * stupid.c: Include tm_p.h.
7904
7905         * tree.c (real_value_from_int_cst): Mark parameter with
7906         ATTRIBUTE_UNUSED.
7907
7908 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7909
7910         * i960-protos.h: New file.
7911
7912         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
7913         time warnings.
7914
7915         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
7916
7917 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7918
7919         * combine.c (expand_field_assignment): Do not discard SUBREGs
7920         while computing nonzero_bits.
7921
7922 2000-01-09  Nick Clifton  <nickc@cygnus.com>
7923
7924         * config/arm/arm.c: Fix compile time warnings about signed vs
7925         unsigned constants.
7926         * config/arm/arm.h: Fix compile time warnings about signed vs
7927         unsigned constants.
7928
7929 2000-01-09  Philip Blundell  <philb@gnu.org>
7930
7931         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
7932         than `ldm' with only one register.
7933         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
7934         only one register.
7935
7936         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
7937         clobbered.
7938
7939 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
7940
7941         * config/ns32k/ns32k.md (load or push effective address): Operand 1
7942         must have SImode.
7943
7944 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7945
7946         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
7947         assignment used as truth value.
7948
7949         * function.c (assign_temp): Mark parameter `dont_promote' with
7950         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
7951         PROMOTE_FOR_CALL_ONLY.
7952
7953         * genrecog.c (write_subroutine): Mark variable `operands' with
7954         ATTRIBUTE_UNUSED.
7955
7956         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
7957         ATTRIBUTE_UNUSED.
7958
7959         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
7960         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
7961
7962         * toplev.c (note_deferral_of_defined_inline_function): Likewise
7963         for `decl'.
7964
7965 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7966
7967         * config/c4x.h: Tidy up comments.
7968         * config/c4x.c: Likewise.
7969
7970 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
7971
7972         * fold-const.c (lshift_double, rshift_double): Handle
7973         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
7974
7975 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7976
7977         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
7978         in prepare_function_start().
7979
7980 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
7981
7982         * config/v850/v850.c (expand_epilogue): Interrupt functions no
7983         longer allocate extra stack for function calls.
7984
7985 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7986
7987         * config/c4x/c4x.md (*subqf3_set): Fix typo.
7988
7989 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7990
7991         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
7992
7993 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
7994
7995         * rs6000.c (processor_target_table): Add power3 as alias for 630.
7996         * aix43.h: Revert Aug 2 change.
7997         (HAS_INIT_SECTION): Define, not visible yet.
7998         (LD_INIT_SWITCH): Define, not visible yet.
7999         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
8000
8001         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
8002
8003         * collect2.c (main): Expand ld2 size further.
8004         (export_object_lst): Cast assignment to avoid warning.
8005         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
8006         (scan_prog_file, COFF): Do not collect initialization or
8007         finalization functions generated for entire shared object if
8008         init/fini support present.
8009
8010 2000-01-07  Nick Clifton  <nickc@cygnus.com>
8011
8012         * config/elfos.h: Tidy up formatting of marcos.  Make sure
8013         that .section directives are always prefixed by a tab.
8014
8015         * config/svr4.h: Add #include "elfos.h" and remove duplicate
8016         definitions.
8017
8018 2000-01-07  Matt Austern  <austern@sgi.com>
8019
8020         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
8021         expon.
8022
8023 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
8024
8025         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
8026         crtstuff.c.
8027         (crtbegin.o, s-crtS): Likewise.
8028
8029 2000-01-06  Richard Henderson  <rth@cygnus.com>
8030
8031         * alpha.md (adddi_2+1): Limit offset such that it will be
8032         loadable with a single ldah+lda pair.
8033         (adddi_2+2): Explicitly fail split if we can't make it work.
8034
8035 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
8036
8037         * protoize.c: Conditionally include unistd.h.
8038         (IS_SAME_PATH_CHAR): New macro.
8039         (IS_SAME_PATH): New macro.
8040         (CPLUS_FILE_SUFFIX): New macro.
8041         (cplus_suffix): New static variable.
8042         (is_abspath): New static function.
8043         (in_system_include_dir): Handle DOS style pathnames.
8044         (file_could_be_converted): Likewise.
8045         (file_normally_convertible): Likewise.
8046         (directory_specified_p): Likewise.
8047         (file_excluded_p): Likewise.
8048         (abspath): Likewise.
8049         (shortpath): Likewise.
8050         (referenced_file_is_newer): Likewise.
8051         (save_def_or_dec): Likewise.
8052         (do_processing): Likewise.
8053         (main): Likewise.
8054         (edit_file): Likewise. Use rename instead of link.
8055         (rename_c_file): Likewise. Don't rename syscalls file.
8056         (munge_compile_params): Define null device for DOS based systems.
8057         (process_aux_info_file): Use binary mode if appliable.
8058         (edit_file): Likewise.
8059         * invoke.texi (Running Protoize): Document C++ suffixes used.
8060
8061         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
8062         IS_DIR_SEPARATOR macros.
8063         * collect2.c: Likewise.
8064         * cppinit.c: Likewise.
8065         * dwarf2out.c: Likewise.
8066         * gcc.c: Likewise.
8067         * gcov.c: Likewise.
8068         * prefix.c: Likewise.
8069         * rtl.c: Likewise.
8070         * toplev.c: Likewise.
8071         * system.h: And move to here.
8072
8073         * prefix.c (update_path): Fix typo in variable name.
8074
8075 2000-01-06  Richard Henderson  <rth@cygnus.com>
8076
8077         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
8078         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
8079         (count_reg_sets_1, count_reg_references): Likewise.
8080         (flow_loops_level_compute): Start counting actual loop depth at 1.
8081         (flow_loops_find): Likewise.
8082         * local-alloc.c (update_equiv_regs): Likewise.
8083         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
8084
8085 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
8086
8087         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
8088         FIRST_PSEUDO_REGISTER
8089         * dwarf2out.c: Don't include frame.h
8090         * dwarfout.c: Likewise
8091         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
8092         frame.h
8093
8094 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
8095
8096         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
8097         dead registers.
8098
8099         * i386.c (movsf splitter): Fix typo in my last checkin.
8100
8101 2000-01-05  Nick Clifton  <nickc@cygnus.com>
8102
8103         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
8104         own definition of this macro.
8105         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
8106         flag_data_sections or UNIQUE_SECTION_P are true.
8107
8108         * tm.texi (UNIQUE_SECTION): Document that it can be called for
8109         unitialised data decls.
8110
8111         * config/i386/winnt.c (i386_pe_unique_section): Cope with
8112         being called for uninitialised data.
8113
8114         * config/i386/interix.c (i386_pe_unique_section): Cope with
8115         being called for uninitialised data.
8116
8117         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
8118         for uninitialised data.
8119
8120         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
8121         for uninitialised data.
8122
8123         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
8124         for uninitialised data.
8125
8126         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
8127         (UNIQUE_SECTION_P): Always generate a unique section if
8128         flag_data_sections is true.
8129         (UNIQUE_SECTION): Also generate unique sections for
8130         uninitialised data.
8131         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
8132         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
8133         named_section().
8134
8135 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8136
8137         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
8138         SI, or DI.
8139
8140 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8141
8142         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
8143         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
8144         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
8145         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
8146         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
8147
8148         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
8149
8150 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
8151
8152         * c-decl.c (finish_enum): Simplify code to determine minimum and
8153         maximum values of the enum, and calculate the type.  Remove check
8154         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
8155         the DECL_INITIAL of each enumeration constant with a copy converted
8156         to the enumeration type.  When updating variant types, don't bother
8157         updating the type itself.
8158
8159         * c-typeck.c (build_binary_op): Simplify conditional expressions
8160         when weeding out spurious signed-unsigned warnings.  Add new
8161         spurious warning category: if the unsigned quantity is an enum
8162         and its maximum value fits in signed_type(result_type).  Update
8163         commentary.
8164         (build_conditional_expr): Warn here if one alternative is signed
8165         and the other is unsigned.
8166
8167 2000-01-05  Nick Clifton  <nickc@cygnus.com>
8168
8169         * config/fr30/fr30.h: Remove extraneous comments.
8170
8171 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
8172
8173         * reload1.c (choose_reload_regs): When disabling a reload, also
8174         set reload_spill_index to -1.
8175
8176 2000-01-04  Joel Sherrill (joel@OARcorp.com>
8177
8178         * configure.in (m68*-*-rtemscoff*): New target, formal name for
8179         old m68*-*-rtems*.
8180         (m68*-*-rtemself*): New target.
8181         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
8182         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
8183         (sparc*-*-rtemself*): New target.
8184         (sparc*-*-rtems*): Now elf not a.out.
8185         * config/i386/rtems.h: Include config/rtems.h.
8186         * config/i386/rtemself.h: Include config/rtems.h.
8187         * config/i960/rtems.h: Include config/rtems.h.
8188         * config/m68k/rtems.h: Include config/rtems.h.
8189         * config/m68k/rtemself.h: Include config/rtems.h.
8190         * config/mips/rtems64.h: Include config/rtems.h.
8191         * config/pa/rtems.h: Include config/rtems.h.
8192         * config/rs6000/rtems.h: Include config/rtems.h.
8193         * config/sh/rtems.h: Include config/rtems.h.
8194         * config/sh/rtemself.h: Include config/rtems.h.
8195         * config/sparc/rtems.h: Include config/rtems.h.
8196         * config/sparc/rtemself.h: Include config/rtems.h
8197
8198 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
8199
8200         * final.c (shorten_branches): Correctly compute length of
8201         asms without operands.
8202
8203 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
8204
8205         * configure.in: Add pj target.
8206         * configure: Regenerate.
8207         * config/pj: New directory.
8208         * config/pj/lib1funcs.S: New file.
8209         * config/pj/linux.h: New file.
8210         * config/pj/pj.c: New file.
8211         * config/pj/pj.md: New file.
8212         * config/pj/pjl.h: New file.
8213         * config/pj/t-pj: New file.
8214         * config/pj/xm-pj.h: New file
8215
8216 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
8217
8218         * toplev.c (rest_of_compilation): Run shorten-branches before
8219         reg-stack for now.
8220
8221 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8222
8223         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
8224         macros so that they're consistent with their names.
8225         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
8226         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
8227
8228 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8229
8230         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
8231         modified inadvertently.
8232
8233 2000-01-04  Joel Sherrill <joel@OARcorp.com>
8234
8235         * configure.in (v850*-*-rtems*): New target.
8236         * configure: Regenerate.
8237         * config/v850/rtems.h: New file.
8238
8239 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
8240
8241         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
8242         (__gthread_key_create): Likewise.
8243         (__gthread_key_dtor):  Likewise.
8244         (__gthread_once): Fix logic.
8245         (__gthread_key_delete): Cast away constness.
8246
8247         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
8248         * invoke.texi: Document.
8249         * i386/mingw32.h (CPP_SPEC): Use.
8250         (LIBGCC_SPEC): Likewise.
8251         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
8252
8253 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
8254
8255         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
8256         (HANDLE_PRAGMA_PACK): Undefine.
8257         (SLOW_UNALIGNED_ACCESS): Define.
8258
8259 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
8260
8261         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
8262         to default definition.
8263         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
8264         (store_fixed_bit_field): Call macro with word_mode and alignment.
8265         (extract_bit_field): Call macro with relevant mode and alignment.
8266         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
8267         to default definition.
8268         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
8269         and alignment.
8270         (move_by_pieces_ninsns): Likewise.
8271         (clear_by_pieces): Likewise.
8272         (emit_push_insn): Likewise.
8273         (store_field): Call macro with relevant mode and alignment.
8274         (expand_expr): Likewise.
8275         (expand_expr_unaligned): Likewise.
8276
8277         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
8278         (SLOW_UNALIGNED_ACCESS): Define.
8279         (CASE_VECTOR_MODE): Always use 32-bit offsets.
8280         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
8281         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
8282         (toc_section): Likewise and .toc pseudo-op.
8283         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
8284         64-bit mode.
8285         (TEXT_SECTION_ASM_OP): Likewise.
8286         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
8287         32-bit offsets.
8288
8289         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
8290         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
8291         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
8292         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
8293         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
8294
8295 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
8296
8297         * regclass.c: Revert my Jan 4 change to loop cost computation.
8298
8299 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
8300
8301         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
8302         compilation.
8303
8304 2000-01-04  Stan Cox  <scox@cygnus.com>
8305
8306         * haifa-sched.c (build_control_flow): Change unreachable simple
8307         loop test to check if current block has only one predecessor.
8308         (find_rgns): Initialize degree.  Use dest as degree index, not src.
8309
8310 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8311
8312         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
8313
8314         * calls.c (expand_call): Likewise for
8315         `old_stack_arg_under_construction'.
8316
8317         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
8318
8319         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
8320         `save_constant'.
8321
8322         * gcc.c (execute): Likewise for `ut' and `st'.
8323
8324         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
8325
8326         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
8327
8328         * jump.c (jump_optimize_1): Likewise for `temp2'.
8329
8330         * local-alloc.c (block_alloc): Likewise for `r1'.
8331
8332         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
8333
8334         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
8335         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
8336
8337         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
8338         and `set2'.
8339
8340         * reload.c (find_reloads): Likewise for `goal_alternative_number'
8341         and `goal_earlyclobber'.
8342
8343         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
8344
8345         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
8346
8347         * stupid.c (stupid_life_analysis): Likewise for `chain'.
8348
8349         * unroll.c (copy_loop_body): Likewise for `copy'.
8350
8351         * varasm.c (output_constructor): Likewise for `byte'.
8352
8353 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
8354
8355         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
8356         all FP constants for constant->reg moves.
8357         (ix86_split_to_parts): Try to convert memory address into immediate
8358         when available in the constant pool.
8359         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
8360         moves.
8361         (LEGITIMATE_CONSTANT_P): Return 1.
8362         * i386.md (pushsf): New splitter to convert constant pool memory
8363         reference to immediate.
8364         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
8365         reload.
8366
8367 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
8368
8369         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
8370         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
8371         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
8372         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
8373         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
8374
8375 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
8376
8377         * ginclude/stdbool.h:  Support compilation as C++.
8378
8379 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8380
8381         * fold-const.c (make_range): Don't try to reverse an unbounded range.
8382
8383 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
8384
8385         * regclass.c (regclass): Properly compute loop_cost.  Adjust
8386         comments.
8387
8388         * regclass.c: Fix minor whitespace problems.
8389
8390 2000-01-03  Anthony Green  <green@cygnus.com>
8391
8392         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
8393         Restore the pic register if required.
8394
8395 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
8396
8397         * c-common.c (format_char_info): Update comment.
8398         (check_format_info): Recognize 'z' modifier in the same way 'Z'
8399         was recognized.  Emit warning for formats new in ISO C99 only
8400         if flag_isoc9x is not set.
8401
8402 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
8403
8404         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
8405
8406 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
8407
8408         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
8409         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
8410         (make_compound_operation): Choose cheaper alternative between
8411         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
8412
8413         * regclass.c (op_costs): Remove global variable.
8414         (record_reg_classes): New parameter "op_costs" and "reg_pref".
8415         (record_operand_costs): Break out from ...
8416         (scan_one_insn): ... here.
8417         (dump_regclass): Make dumps nicer.
8418         (regclass): Dump preferrences choosed and changes done during passes.
8419
8420 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
8421
8422         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
8423
8424 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
8425
8426         * config/sparc/sparc.c (gen_df_reg): New function.
8427         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
8428         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
8429         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
8430         movtf_cc_reg_sp64+1): Use it.
8431
8432 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
8433
8434         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
8435         copied LABEL_DECLs.
8436
8437 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8438
8439         * config/i386/i386.c (ix86_expand_unary_operator): Function
8440         definition made void.
8441         (ix86_expand_binary_operator): Update outdated preceding comment.
8442         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
8443         prototype.
8444
8445         * config/i386/i386.c (override_options): Fix option-name typo.
8446
8447 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
8448
8449         * system.h (CEIL): Define.
8450         * builtins.c (CEIL): Remove.
8451         * expmed.c (CEIL): Likewise.
8452         * expr.c (CEIL): Likewise.
8453         * stor-layout.c (CEIL): Likewise.
8454
8455 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8456
8457         * expr.c (store_constructor_field): Fix typo introduced with last
8458         gcc2 merge.
8459
8460 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
8461
8462         * tree.h (BINFO_N_BASETYPES): New macro.
8463
8464 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
8465
8466         * expmed.c (emit_store_flag): Prevent losing a pending stack
8467         adjust the same way we prevent losing queued increments.
8468
8469 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8470
8471         * function.c (update_temp_slot_address): Handle case where sum of
8472         temporary address plus offset in register is a valid address.
8473
8474 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
8475
8476         * genrecog.c (change_state) Corrected typo.
8477
8478 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8479
8480         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
8481         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
8482         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
8483
8484 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
8485
8486         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
8487         case, expand GT comparisons correctly.  Fix a comment before this
8488         part of the code.
8489
8490 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
8491
8492         * dwarfout.c: Include "frame.h"
8493         * dwarf2out.c: Likewise.
8494         * Makefile.in (dwarfout.o): Depend on frame.h
8495         (dwarf2out.o): Likewise.
8496
8497 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
8498
8499         Restore i386 binary compatibility in Dwarf EH info.
8500         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
8501         value of FIRST_PSEUDO_REGISTER.
8502         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
8503         (struct frame_state): Use DWARF_FRAME_REGISTERS.
8504         * dwarfout.c (output_reg_number): Ditto.
8505         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
8506         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
8507
8508 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
8509
8510         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
8511         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
8512         (<hack>_RE_CT): not needed
8513         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
8514         rewritten to scan the file text once only
8515         "template<..." test added
8516         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
8517         (is_cxx_header): declaration added
8518         * fixinc/fixtests.c(is_cxx_header): removed
8519         (apply_fix_p_t): removed
8520         (double_slash_test): is_cxx_header is only called once now
8521         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
8522         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
8523         within the templates.
8524         The borken spelling of "broken" was fixed.
8525         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
8526         The default level depends on FIXINC_DEBUG.
8527
8528 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8529
8530         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
8531         Otherwise provide a declaration for atexit.
8532         (init_dummy): Make sure dummy call to atexit is nevertheless
8533         called with correct number of args.
8534
8535         * frame.c: Update comments referring to other files.
8536
8537         * libgcc2.c: Likewise.
8538
8539 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8540
8541         * cse.c (free_element, get_element): Remove unused prototypes.
8542
8543         * fold-const.c (extract_muldiv): Initialize variables `op0' and
8544         `op1'.
8545
8546         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
8547         `else' clauses.
8548
8549 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
8550
8551         * configure.in,configure: case arm for mn10200-*-* now sets
8552         float_format=i32 so that float.h will correctly claim "double"
8553         to be 32 bits. Ran autoconf to generate configure from .in file.
8554
8555 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
8556
8557         * pa.md (conditional zero): If op1 is a register, force it into
8558         the same register as op0.
8559
8560 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
8561
8562         * tree.h (BINFO_BASETYPES): Improve documentation.
8563
8564 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8565
8566         * configure.in (--enable-checking): Use a more portable `for'
8567         loop syntax.
8568
8569 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8570
8571         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
8572         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
8573
8574         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
8575         Delete files.
8576
8577         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
8578         Delete descriptions.
8579
8580         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
8581         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
8582         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
8583         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
8584         xm-svr4.h: Remove all instances of sys_siglist handling.
8585
8586 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
8587
8588         * config/sparc/sparc.md (cmp_zero_qi,
8589         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
8590         cmp_zero_extendqidi2_andcc_set): New patterns.
8591
8592 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
8593
8594         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
8595         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
8596         (fpgnulib.c, xfgnulib.c): Add rules.
8597         * m68k/t-mot3300-gas: Likewise.
8598
8599 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
8600
8601         * configure.in: Avoid [[ by using test and changequote.  Add
8602         changequote required by 1999-12-14 change.
8603         * configure: Rebuild.
8604
8605 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
8606
8607         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
8608
8609 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
8610
8611         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
8612         * flow.c (find_use_as_address): Likewise.
8613         * function.c (fixup_var_refs_1): Likewise.
8614         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
8615         * jump.c (invert_exp, redirect_exp): Likewise.
8616         * loop.c (replace_call_address): Likewise.
8617         (count_nonfixed_reads): Likewise.
8618         * rtlanal.c (modified_between_p): Likewise.
8619         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
8620         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
8621         * unroll.c (remap_split_bivs): Likewise.
8622
8623 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8624
8625         * diagnostic.c (v_message_with_decl): Use .* format specifier
8626         instead of building the format specifier width manually.
8627
8628         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
8629         determining whether to provide a prototype.  Remove the
8630         sys_siglist clause in the conditional.
8631
8632 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8633
8634         * fold-const.c (operand_equal_p): Use memcmp to compare string
8635         constants.
8636         Suggested by D. J. Bernstein
8637
8638 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
8639
8640         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
8641         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
8642         compiling libgcc2.
8643         * config/mips/mips.h (TARGET_64BIT): Likewise.
8644         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
8645         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
8646         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
8647         dsps.  Give routines proper names if SI/DI modes are not used.
8648         * longlong.h: Use DWunion instead of DIunion.
8649
8650 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
8651
8652         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
8653         GC_CHECKING, GC_ALWAYS_COLLECT.
8654         * configure.in: Allow --enable-checking with an argument
8655         listing check modes to enable.
8656         * config.in, configure: Rebuilt.
8657         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
8658         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
8659         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
8660         ENABLE_GC_ALWAYS_COLLECT.
8661         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
8662         throughout.
8663         * tree.h, tree.c: Change ENABLE_CHECKING to
8664         ENABLE_TREE_CHECKING throughout.
8665
8666 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8667
8668         * fold-const.c (fold_truthop): Properly check for FP RHS.
8669
8670 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
8671
8672         * toplev.h (note_deferall_of_defined_inline_function): Declare.
8673         * toplev.c (note_deferral_of_defined_inline_function): New
8674         function, split out from ...
8675         (rest_of_compilation): ... here.  Use it.
8676
8677 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8678
8679         * expr.c (store_constructor): Don't call clear_storage if size is
8680         variable.
8681
8682 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8683
8684         * Makefile.in (toplev.o): Depend on loop.h.
8685
8686         * dwarfout.c: Include tm_p.h.
8687
8688         * emit-rtl.c (restore_emit_status): Mark parameter with
8689         ATTRIBUTE_UNUSED.
8690
8691         * final.c (final_scan_insn): Likewise.
8692
8693         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
8694         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
8695         flow_depth_first_order_compute, flow_loop_pre_header_find,
8696         flow_loop_tree_node_add, flow_loops_tree_build,
8697         flow_loop_level_compute, flow_loops_level_compute,
8698         flow_loop_outside_edge_p): Add prototypes.
8699         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
8700
8701         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
8702         Mark with ATTRIBUTE_NORETURN.
8703
8704         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
8705
8706         * local-alloc.c (no_conflict_p): Likewise.
8707
8708         * loop.c (insert_bct): Hide definitions of variables with hidden
8709         usage.
8710         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
8711
8712         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
8713         with ATTRIBUTE_UNUSED.
8714         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
8715         (reg_scan): Likewise.
8716
8717         * reload.c (find_reloads): Remove unused variables `changed'.
8718
8719         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
8720         away const-ness.
8721         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
8722         Remove unused variable `insn'.
8723
8724         * toplev.c: Include loop.h.
8725         (report_file_and_line): Remove unnecessary prototype.
8726
8727         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
8728
8729         * unroll.c (biv_total_increment): Likewise.
8730
8731 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8732
8733         * reload1.c (emit_input_reload_insns): Restore old behaviour
8734         wrt. 'special' reloads.
8735
8736 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
8737
8738         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
8739         hash.h.  (cse.c): Don't depend on hashtab.h.
8740
8741         * cse.c: Don't include hashtab.h.
8742         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
8743         of dead functions.
8744         * ggc-simple.c: Don't include hash.h.
8745
8746 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
8747
8748         * dwarf2out.c (add_abstract_origin_attribute): Call
8749         gen_abstract_function on our function context.
8750
8751 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
8752
8753         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
8754
8755 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8756
8757         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
8758         case in switch.
8759
8760 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8761
8762         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
8763         constraints to "a!r".
8764
8765 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
8766
8767         * Makefile.in (calls.o): Depend on function.h.
8768         (alias.o): Likewise.
8769
8770 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
8771
8772         * reload1.c (emit_reload_insns): Break out code and variables into...
8773         (input_reload_insns, other_input_address_reload_insns,
8774         other_input_reload_insns, input_address_reload_insns,
8775         inpaddr_address_reload_insns, output_reload_insns,
8776         output_address_reload_insns, outaddr_address_reload_insns,
8777         operand_reload_insns, other_operand_reload_insns,
8778         other_output_reload_insns): ... new static variables, and...
8779         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
8780         do_output_reload): ... new functions.
8781
8782 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8783
8784         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
8785
8786 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8787
8788         * md.texi: Add c4x constraints documentation.
8789
8790 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8791
8792         * config/i386/dgux.c (struct option): Rename to
8793         lang_independent_option.
8794         (struct m_options): Add description field.
8795         (output_options): Rename option type, add sep declaration, output
8796         ix86_cpu_string and ix86_arch_string only if set.
8797         (output_file_start): Rename option type.
8798
8799 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
8800
8801         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
8802         stmp-int-hdrs.
8803         (libgcc2.a): Similarly.
8804
8805 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
8806
8807         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
8808         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
8809         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
8810
8811 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
8812
8813         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
8814         Remove redundant initialization of "frexpon" and "expon".
8815
8816 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8817
8818         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
8819
8820         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
8821         (store_constructor_field, expand_expr): Pass new arg.
8822
8823 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
8824
8825         * Makefile.in (explow.o): Depend on function.h.
8826
8827         * stor-layout.c (set_sizetype): Fix typo.
8828
8829 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
8830
8831         * function.c (cfun): Renamed from current_function.  All users
8832         changed.
8833         * function.h (cfun): Rename declaration as well.
8834
8835         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
8836         to be of type regset_head, not regset.  All users changed by adding
8837         address operator.
8838         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
8839
8840 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8841
8842         * config/c4x/rtems.h: New file.
8843
8844 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
8845
8846         * reload1.c (spill_failure): Take class of failed reload as argument
8847         and print it.  Caller changed.
8848
8849 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8850
8851         * rs6000.h (SUBTARGET_DEFAULT): New macro.
8852         (TARGET_SWITCHES): Allow subtargets to default switches.
8853         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
8854
8855 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
8856
8857         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
8858         in a main program.
8859
8860 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
8861
8862         * cccp.c (main): Define __STDC_VERSION__ as necessary.
8863         * cppinit.c (cpp_handle_option): Likewise.
8864
8865         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
8866         determine when to define.
8867
8868 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
8869
8870         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
8871         cmove with mismatched test and data modes.
8872
8873 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
8874
8875         * c-typeck.c (c_expand_start_case): Don't warn for long switch
8876         in system headers.
8877
8878 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8879
8880         * alias.c: Minor reformatting.
8881         * flow.c: Likewise.
8882         * regs.h: Likewise.
8883         * stor-layout.c: Likewise.
8884         * fold-const.c: Likewise.
8885         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
8886         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
8887         not arg itself.
8888         (size_int_wide): Cache nodes even if garbage collecting.
8889         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
8890         of SAVE_EXPR has no side effects.
8891         * cse.c: Move a comment.
8892         * tree.c: Minor reformatting.
8893         (int_size_in_bytes): Return -1 if constant overflows.
8894
8895 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8896
8897         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
8898
8899 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
8900
8901         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
8902         after any change to c-parse.in, even if objc-parse.y didn't
8903         change.  Oops.
8904
8905 1999-12-18  David S. Miller  <davem@redhat.com>
8906
8907         * toplev.c (rest_of_compilation): Restore BLOCK tree
8908         reconstruction and branch shortening changes lost in
8909         December 18th change.
8910
8911 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
8912
8913         * config/arm/linux-elf.h: Change all instances of
8914         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
8915         * config/arm/uclinux-elf.h: Likewise.
8916
8917 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
8918
8919         * toplev.c (notice, vmessage, v_message_with_file_and_line,
8920         v_message_with_decl, file_and_line_for_asm,
8921         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
8922         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
8923         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
8924         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
8925         pfatal_with_name, fatal_io_error, need_error_newline,
8926         last_error_function, last_error_tick, announce_function,
8927         default_print_error_function, print_error_function,
8928         report_error_function, fnotice, error_with_file_and_line,
8929         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
8930         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
8931         warning_with_decl, warning_for_asm, warning, pedwarn,
8932         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
8933         diagnostic.c
8934         (compile_file): Use fnotice instead of notice.  Adjust call.
8935
8936         * diagnostic.c: New file.
8937
8938         * Makefile.in (OBJS): Include diagnostic.o
8939         (diagnostic.o): Define dependence.
8940
8941 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8942
8943         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
8944         Tweak formatting.
8945
8946 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8947
8948         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
8949
8950 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
8951
8952         * fixtests.c (is_cxx_header): New fn, split out of
8953         double_slash_test.
8954         (else_endif_label): Allow "#endif // comment" in C++ headers,
8955         as determined by is_cxx_header.
8956         * fixfixes.c (else_endif_label_fix): Update comment.
8957         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
8958         a tty.
8959         * genfixes: Correct double thinko in commandline parsing.
8960         * hackshell.tpl: Generate correct sh syntax for bypass
8961         entries.
8962
8963         * inclhack.def (all): Whenever an inserted preprocessor
8964         conditional is split over multiple lines, use double
8965         backslashes in this file so the fixed header will be readable.
8966
8967         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
8968         and add bypass entry for correct version of this header.
8969         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
8970         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
8971
8972         (hpux8_bogus_inlines): New fix, split from...
8973         (ultrix_atof_param) ... here.
8974         (math_expression): Add bypass entry keyed to glibc comment
8975         indicating the problem has been dealt with; disable
8976         unnecessary sed operations; update commentary.
8977         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
8978         add select and bypass entries, simplify shell operation.
8979         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
8980
8981         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
8982          ultrix_atof_param): Add select entry.
8983         (stdio_va_list, sunos_mather_decl): Add bypass entry.
8984         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
8985         comments with the fixes they describe.
8986
8987         * c-parse.in (string action): Do not warn about ANSI string
8988         concatenation in system headers.  Affects C parser only.
8989         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
8990
8991 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
8992
8993         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
8994         compiling libgcc2 the macro depends always on arch cpp defines.
8995
8996 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
8997
8998         * loop.c (insert_loop_mem): Don't record MEMs from inside
8999         EXPR_LISTs.
9000
9001 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
9002
9003         * regclass.c (regclass): Do not use flowgraph when not optimizing.
9004
9005         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
9006         notes too, create one when replacement failed, attempt to simplify
9007         resulting notes.
9008         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
9009         or REG_EQUIV notes.
9010
9011 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
9012
9013         * crtstuff.c (__dso_handle): Declare.
9014         (__cxa_finalize): Likewise.
9015         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
9016         non-NULL.
9017
9018         * invoke.texi: Document -fuse-cxa-atexit.
9019
9020         * tree.h (ptr_type_node): Document.
9021         (const_ptr_type_node): Likewise.
9022
9023 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9024
9025         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
9026         (optimize_reg_copy_2): Likewise.
9027         (optimize_reg_copy_3): Likewise.
9028         (fixup_match_2): Likewise.
9029         (regmove_optimize): Likewise.
9030         (fixup_match_1): Liekwise.
9031
9032         * i386.md (HI to SImode promoting splitters): Rewrite.
9033         (pushsf mem peep2): New.
9034         (testhi to andhi peep2): Remove.
9035         * i386.h (x86_promote_QImode): New.
9036         (TARGET_PROMOTE_QImode): New.
9037         (PREDICATE_CODES): Add promotable_binary_operator.
9038         * i386.c (x86_promote_QImode0: New.
9039         (promotable_binary_operator): New.
9040         * i386-protos.h (promotable_binary_operator): New.
9041
9042         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
9043         condition.
9044         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
9045
9046 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
9047
9048         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
9049         * function.c (insert_block_after_note): Remove.
9050         (retrofit_block): Likewise.
9051         (identify_blocks): Fix indentation.
9052         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
9053         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
9054         * function.h (insert_block_after_note): Remove prototype.
9055         (retrofit_block): Likewise.
9056         * integrate.c (expand_inline_function): Don't call
9057         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
9058         just expand_start_bindings.  Use the block_map to remap old
9059         NOTE_BLOCKs to new ones.
9060         (integrate_decl_tree): Keep track of remapped blocks.
9061         * integrate.h (struct inline_remap): Add block_map.
9062         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
9063         NOTE_BLOCK on the notes.
9064         (expand_start_bindings): Rename to ...
9065         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
9066         (expand_end_bindings): Set NOTE_BLOCK.
9067         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
9068         reconstruct the BLOCK tree.
9069         * tree.h (expand_start_bindings): Macroize.  Call ...
9070         (expand_start_bindings_and_block): New function.
9071
9072 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
9073
9074         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
9075         to match the format.
9076
9077 1999-12-16  David S. Miller  <davem@redhat.com>
9078
9079         * expr.c (emit_move_insn_1): Only emit clobbers if one of
9080         the outputs is a SUBREG.
9081         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
9082         change.
9083
9084         * config/sparc/sparc.c (epilogue_renumber): Add default case
9085         to switch stmt.
9086
9087 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9088
9089         * toplev.c (rest_of_compilation): Run branch shortening after
9090         reg-stack.
9091
9092         * regclass.c (loop_depth): Remove
9093         (scan_one_insn): Do not handle LOOP_NOTE insns.
9094         (regclass): Go through basic blocks and set loop_cost
9095
9096 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
9097
9098         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
9099
9100 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9101
9102         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
9103         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
9104         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
9105
9106 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
9107
9108         * loop.c (insert_loop_mem): Ignore memory clobbers.
9109
9110         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
9111         to (OP A B).
9112
9113 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
9114
9115         * profile.c: Remove redundant #include "output.h".
9116
9117         * h8300.md (HImode preinc peephole): Fix typo.
9118
9119 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
9120
9121         * function.c (retrofit_block): Abort if we don't find a suitable insn.
9122         (insert_block_after_note): Abort if we don't have a previous block.
9123         Remove FN parameter.
9124         * function.h: Adjust.
9125
9126 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
9127
9128         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
9129         argument more than once.
9130
9131 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
9132
9133         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
9134
9135 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
9136
9137         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
9138
9139 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9140
9141         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
9142         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
9143         update stack_alignment_needed.
9144         (prepare_function_start): Initialize stack_alignment_needed
9145         * function.h (struct function): Add field stack_alignment_needed.
9146
9147 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9148
9149         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
9150         Handle live_throughout / dead_or_set instead of live_before /
9151         live_after.
9152         (save_call_clobbered_regs): Get register livenessinformation from
9153         chain->live_throughout.
9154         (add_stored_regs): New function.
9155         (insert_restore, insert_save): Add restored / saved registers to
9156         dead_or_set.
9157         * global.c (reg_dies): New parameter chain.
9158         (reg_becomes_live): Third parameter is regs_set now.
9159         Changed all callers.
9160         (reg_dies): New parameter chain.  Changed all callers.
9161         (build_insn_chain): Set live_throughout instead of
9162         live_before / live_after.
9163         * reload.h (struct insn_chain): Replace members live_before /
9164         live_after with live_throughout / dead_or_set.
9165         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
9166         instead of live_before / live_after.
9167         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
9168         (order_regs_for_reload, find_reg, finish_spills): Likewise.
9169         (choose_reload_regs_init): Likewise.
9170         * stupid.c (current_chain, find_clobbered_regs): Delete.
9171         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
9172         instead of chain->live_before / chain->live_after.
9173         (mark_hard_ref): New function.
9174         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
9175
9176 1999-12-15  David S. Miller  <davem@redhat.com>
9177
9178         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
9179
9180 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9181
9182         * flow.c (calculate_loop_depth): Make global, remove prototype,
9183         rewrite to use new loop infrastructure.
9184         (find_basic_block): Remove calculate_loop_depth call.
9185         * toplev.c (rest_of_compilation): Call find_basic_block.
9186         * output.h (calculate_loop_depth): Declare.
9187
9188         * flow.c (dump_flow_info): Dump loop_depth.
9189         (flow_loops_nodes_find): Increase loop_depth for basic block in the
9190         body.
9191         (flow_loops_find): Initialize the loop_depth for each basic block.
9192
9193 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
9194
9195         * tree.c (decl_function_context): Handle virtual functions.
9196
9197         * tlink.c (scan_linker_output): Don't look in demangled name when
9198         looking for linker output keywords.
9199
9200         * dwarfout.c (output_type): We can defer namespace-scope classes.
9201
9202 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
9203
9204         * regclass.c (record_reg_classes): Update comment for merging
9205         register class preferences in reg->reg copies.  Tighten conditions
9206         for merging register class preferences in reg->reg copies.
9207
9208 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
9209
9210         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
9211
9212 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
9213
9214         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
9215         (INIT_SECTION_ASM_OP): Delete.
9216         (FINI_SECTION_ASM_OP): Delete.
9217         (STARTFILE_SPEC): Define to hold just crtbegin.o.
9218
9219 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
9220
9221         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
9222         the abstract origin wasn't emitted.
9223
9224         * dwarf2out.c (class_scope_p): New fn.
9225         (gen_subprogram_die): Use it.
9226         (gen_variable_die): Use it.  Tweak logic.
9227         (gen_struct_or_union_type_die): Check context_die to determine
9228         if we're function-local.
9229         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
9230
9231 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
9232
9233         * loop.c (check_dbra_loop): Can't reverse a biv that has
9234         maybe_multiple set.
9235
9236 1999-12-14  Nick Clifton  <nickc@cygnus.com>
9237
9238         * config/arm/arm.c: Add support for -mcpu=arm720 command line
9239         switch.
9240
9241 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9242
9243         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
9244         for givs made from biv increments.
9245
9246 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
9247
9248         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
9249         * alpha.c (override_options): Recognize -mcpu=ev67.
9250         * alpha.h (CPP_CPU_EV67_SPEC): New.
9251         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
9252         (EXTRA_SPECS): Update.
9253
9254 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
9255
9256         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
9257         appropriate for -lang-c89 and -std=*.
9258         * cppinit.c (cpp_handle_option): Likewise.
9259         (new_pending_define): New, split out from cpp_handle_option.
9260         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
9261         or enable trigraphs for -ansi/-std=*.
9262
9263         * ginclude/stdarg.h (__va_copy): New.
9264         (va_copy): Don't define for C89.
9265
9266 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
9267
9268         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
9269         for long long multiply-accumulate.
9270
9271 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9272
9273         * regclass.c (scan_one_insn): Set loop_cost to 1 when
9274         optimizing for size.
9275
9276 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
9277
9278         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
9279         if something changed.  Back out that part of yesterday's changes.
9280
9281         * loop.c (loop_max_reg): New static variable.
9282         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
9283         max_reg_num.
9284         (scan_loop): Call reg_scan_update whenever we may have added new
9285         registers, and update loop_max_reg.
9286
9287 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9288
9289         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
9290         when source does not die.
9291
9292         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
9293
9294 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
9295
9296         * config/sparc/linux64.h (TARGET_LIVE_G0,
9297         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
9298         variants on Linux.
9299         * config/sparc/linux.h (TARGET_LIVE_G0,
9300         TARGET_BROKEN_SAVERESTORE): Likewise.
9301         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
9302         TARGET_BROKEN_SAVERESTORE): Likewise.
9303
9304         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
9305         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
9306         not %g2.
9307         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
9308         as sparc64 block profiling register.
9309         * config/sparc/sparc.c (sparc_override_options): Allow block
9310         profiling with -m32.
9311         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
9312         profiling register.
9313         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
9314         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
9315         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
9316
9317         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
9318         for sparc64.
9319         * config/sparc/sparc.h: Likewise.
9320         * config/sparc/xm-sysv4-64.h: Likewise.
9321         * config/float-sparc.h: Likewise.
9322         * glimits.h: Likewise.
9323         * longlong.h: Likewise.
9324
9325         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
9326         (ASM_IDENTIFY_GCC): Remove.
9327
9328 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
9329
9330         * combine.c (combine_simplify_rtx): Don't make shared rtl.
9331         (simplify_logical): Likewise.
9332
9333 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
9334
9335         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
9336         * cppfiles.c (INO_T_EQ): Likewise.
9337
9338 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
9339
9340         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
9341         * i386/mingw32.h (LIB_SPEC): Likewise.
9342         (STARTFILE_SPEC): Likewise.
9343         * i386/uwin.h (LIB_SPEC): Likewise.
9344         (STARTFILE_SPEC): Likewise.
9345
9346         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
9347         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
9348
9349 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
9350
9351         * combine.c (combine_simplify_rtx): Fix order of checks for
9352         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
9353
9354 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
9355
9356         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
9357         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
9358
9359 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
9360
9361         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
9362         defined.
9363         * regclass.c (inv_reg_alloc_order): New array.
9364         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
9365
9366         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
9367         counted_for_groups, counted_for_nongroups.  Add fields rld and
9368         n_reloads.
9369         * reload.c (push_secondary_reload): Don't set nongroup field of
9370         new reloads.
9371         (push_reload): Likewise.
9372         (find_reloads): Delete code to compute nongroup fields.
9373         * reload1.c (reload_insn_firstobj): New static variable.
9374         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
9375         users changed.
9376         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
9377         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
9378         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
9379         functions.
9380         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
9381         functions.
9382         (struct hard_reg_n_uses): Deleted.
9383         (potential_reload_regs): Deleted.
9384         (init_reload): Initialize spilled_pseudos and pseudos_counted.
9385         (reload): Don't try to allocate reload registers if we already know
9386         we have to make another pass.  Call select_reload_regs.  Free memory
9387         starting with reload_firstobj when starting another pass.
9388         Don't allocate spilled_pseudos.
9389         (calculate_needs_all_insns): Call copy_reloads for an insn that
9390         needs reloads; don't call calculate_needs.
9391         (spill_cost): New static array.
9392         (used_spill_regs_local): New static variable.
9393         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
9394         to compute potential_reload_regs.
9395         (find_reload_regs): Completely rewritten to use find_reg.
9396         (allocate_reload_reg): Don't test counted_for_groups or
9397         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
9398         all cllers changed.
9399         (choose_reload_regs): Add fallback code that uses the existing
9400         register allocation from find_reload_regs.
9401
9402 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
9403
9404         * flow.c (create_edge_list): Cast xmalloc return value.
9405
9406 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
9407
9408         * doprnt.c: Remove incorrect comment closure.
9409
9410         * cse.c: Fix a few minor whitespace goofs.
9411
9412 1999-12-13  Don Bowman  <don@pixstream.com>
9413
9414         * mips/vxworks.h: Fix problem with comment termination.
9415         (EXTRA_SECTIONS): Add in_sbss.
9416         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
9417
9418 1999-12-12  David S. Miller  <davem@redhat.com>
9419
9420         * cse.c (struct cse_reg_info): Add hash_next member,
9421         reorder rest of struct for better packing on 64-bit
9422         hosts.
9423         (cse_reg_info_tree): Kill.
9424         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
9425         REGHASH_FN): New custom pow2 hash mechanism.
9426         (NBUCKETS): Kill.
9427         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
9428         use a pow2 hash table.
9429         (get_cse_reg_info): Rework to use new REGHASH.
9430         (new_basic_block): Likewise, use HASH_SIZE, and inline
9431         free_element call.
9432         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
9433         and inline free_element call.
9434         (lookup_as_function, insert, flush_hash_table, invalidate,
9435         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
9436         invalidate_for_call, use_related_value, find_comparison_args,
9437         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
9438         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
9439         get_element): Kill.
9440
9441 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
9442
9443         * cse.c (cse_basic_block): Free qty_table consistently.
9444
9445 1999-12-12  David S. Miller  <davem@redhat.com>
9446             Jakub Jelinek    <jakub@redhat.com>
9447
9448         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
9449         SUBREGs by hand, gen the appropriate hard reg directly.
9450         (movtf reg/mem split): Likewise and alter_subreg on destination
9451         if necessary.
9452         (movtf mem/reg split): Similarly.
9453         (movdf_cc_sp64): Rename from hidden pattern.
9454         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
9455         (movtf_cc_sp64, following split): New pattern and splitter.
9456         (movdf_cc_reg_sp64): Rename from hidden pattern.
9457         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
9458         TARGET_HARD_QUAD.
9459         (movtf_cc_reg_sp64, following split): New pattern and splitter.
9460
9461 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
9462
9463         * loop.c (load_mems): Don't hoist written floating point mem
9464         if -ffloat-store.
9465
9466 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
9467
9468         * except.h (struct eh_queue): Add `next' pointer.
9469         (struct eh_status): Make x_ehqueue a pointer.
9470         (push_ehqueue):  Declare.
9471         (pop_ehqueue): Likewise.
9472         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
9473         pointer.
9474         (expand_fixup_region_end): Likewise.
9475         (expand_leftover_cleanups): Likewise.
9476         (push_ehqueue): Define.
9477         (pop_ehqueue): Likewise.
9478         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
9479         than doing it inline.
9480         (expand_start_all_catch):  Adjust now that ehqueue is a
9481         pointer.
9482         (mark_eh_queue): Mark all level of the queue.
9483         (mark_eh_status):  Adjust now that ehqueue is a
9484         pointer.
9485         (init_eh_for_function): Allocate ehqueue.
9486         (free_eh_status): Free it.
9487         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
9488         expansion for a fixup.
9489
9490 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9491
9492         * gthr-single.h (__gthread_active_p): Add prototype arguments.
9493
9494         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
9495         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
9496         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
9497         function_ptr, getpagesize, __enable_execute_stack,
9498         __enable_execute_stack, __clear_insn_cache,
9499         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
9500         _cleanup, _exit, __default_terminate, __terminate_func,
9501         __terminate, __empty, __throw, new_eh_context,
9502         eh_context_initialize, eh_context_static, eh_context_specific,
9503         get_eh_context, __get_eh_context, __get_eh_info,
9504         init_reg_size_table, eh_threads_initialize,
9505         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
9506         __unwinding_cleanup, throw_helper, __throw, __rethrow,
9507         __pure_virtual): Add prototype arguments.
9508         (__bb_exit_func): Cast a sizeof to long when comparing against one.
9509         Cast a signed value to unsigned long when comparing against one.
9510         (new_eh_context): Wrap in _GTHREADS macro.
9511         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
9512         declaration.
9513         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
9514         (throw_helper): Initialize variables `handler_p' and `pc_p'.
9515
9516 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9517
9518         * combine.c (record_promoted_value): Remove unused variable
9519         `links2'.
9520
9521         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
9522
9523         * global.c (record_conflicts): Likewise for `j'.
9524
9525         * genoutput.c (output_insn_data): Don't unnecessarily cast away
9526         const-ness.
9527
9528 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9529
9530         * i386-protos.h (output_387_binary_op, output_fix_trunc,
9531         output_fp_compare): Constify a char*.
9532
9533         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
9534         static prototypes.
9535         (override_options, ix86_comp_type_attributes, print_operand,
9536         output_387_binary_op, output_fix_trunc, output_fp_compare):
9537         Constify a char*.
9538         (ix86_sched_reorder): Mark parameter `clock_var' with
9539         ATTRIBUTE_UNUSED.
9540
9541         * i386.h (DEBUG_PRINT_REG): Constify a char*.
9542
9543 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
9544
9545         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
9546         operand, for use in the Java front-end.
9547
9548 1999-12-10  Ben Collins  <bcollins@debian.org>
9549
9550         * configure.in: Fix typo for "-64" in 64bit as check.
9551         * configure: Rebuilt.
9552
9553 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
9554
9555         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
9556         appropriate.
9557
9558 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9559
9560         * c-parse.in (string): With -Wtraditional, warn if ANSI string
9561         concatenation is utilized.
9562
9563         * invoke.texi (-Wtraditional): Document it.
9564
9565 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9566
9567         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
9568         Cast a ptrdiff_t to long and pass it to printf with %ld.
9569
9570 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
9571
9572         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
9573         68881, we have no 68881 registers at all.
9574         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
9575         value in a 68881 register if it is available.
9576
9577 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
9578
9579         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
9580         for long long multiply-accumulate.
9581
9582 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
9583
9584         * loop.c (insert_loop_mem): Undo last change.
9585
9586 1999-12-10  David S. Miller  <davem@redhat.com>
9587
9588         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
9589         New functions.
9590         * config/sparc/sparc-protos.h: Add them.
9591         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
9592         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
9593         constraints which use those helpers.
9594         (EXTRA_CONSTRAINT): Use this new macro.
9595         * md.texi: Update sparc target constraints documentation.
9596         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
9597         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
9598         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
9599         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
9600         (movsf high/lo_sum split): Rework for new patterns.
9601         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
9602
9603 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
9604
9605         * c-common.c (c_common_nodes_and_builtins):
9606         Create __builtin_ptrdiff_t and __builtin_size_t.
9607
9608 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
9609
9610         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
9611
9612 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9613
9614         * regclass.c (globalize_reg): Re-instate test that allows
9615         fixed registers to be declared as a variable even after functions
9616         are defined.
9617
9618 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9619
9620         * i386.md (cpu attribute): Add "athlon".
9621         (athlon_decode): New attribute.
9622         (Athlon scheduling units definitions): New.
9623         (fcmp and shld patterns): Set athlon_decode to "vector".
9624         * i386.c (athlon_cost): New.
9625         (m_ATHLON): New.
9626         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
9627         x86_use_sahf): Set for Athlon.
9628         (x86_use_fiop): Unset for Athlon.
9629         (override_options): Define Athlon alignments and "athlon" name.
9630         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
9631         * i386.h (TARGET_ATHLON): New.
9632         (enum processor_type): Add PROCESSOR_ATHLON.
9633         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
9634         for CPU_DEFAULT==5
9635         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
9636
9637 1999-12-09  Andreas Jaeger  <aj@suse.de>
9638
9639         * loop.c (record_biv): Declare parameter as int.
9640
9641         * config/i386/i386-protos.h: Declare long_memory_operand.
9642
9643 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
9644
9645         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
9646         EXPR_WITH_FILE_LOCATION.
9647
9648 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
9649
9650         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
9651         in expander.
9652
9653         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
9654
9655         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
9656         updating code.
9657
9658 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
9659
9660         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
9661         default on linux64 again.
9662         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
9663         models for multilibing.
9664         * genmultilib: Accept | as alternative separator within a set in
9665         MULTILIB_OPTIONS.
9666
9667         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
9668
9669         * calls.c (precompute_arguments): Make sure initial_value contains
9670         value pseudo which CSE expects.
9671         * cse.c (struct set): New entry orig_src.
9672         (cse_insn): Set it early on entry, use it for libcall EQUIV note
9673         replacement.
9674
9675 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
9676
9677         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
9678
9679 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
9680
9681         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
9682
9683 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
9684
9685         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
9686         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
9687
9688         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
9689         if TARGET_ARCH32.
9690
9691         * longlong.h: Merge in changes from glibc.
9692         Also don't clobber %g2 register in 32bit SPARC assembly, so that
9693         -mno-app-regs libgcc can be compiled.
9694         * libgcc2.c: Add defines so that the updated longlong.h
9695         can be used in libgcc2.a. Also, make sure on most architectures
9696         (at least on all which have optimized code in longlong.h defined
9697         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
9698
9699 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9700
9701         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
9702         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
9703         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
9704         is GNU ld.
9705         * configure: Rebuilt.
9706
9707 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
9708
9709         * alpha.c (secondary_reload_class): For !BWX, sub-simode
9710         outputs require a register.
9711
9712 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
9713
9714         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
9715         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
9716         functions like dptoul will be resolved.
9717         (libgcc2.a): Make sure that the object files from DPBIT are named
9718         differently (prefix `_dp') from those that would be coming from
9719         FPBIT.
9720
9721 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
9722
9723         * configure.in: When target is sparc* and tm_file contains 64,
9724         test for 64bit support in assembler.  If not supported, remove
9725         sparc/t-sol2-64 from target-dependent Makefile fragments.
9726         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
9727         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
9728         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
9729         * acconfig.h (AS_SPARC64_FLAG): Added.
9730         * configure, config.in: Rebuilt.
9731         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
9732         support.  Use AS_SPARC64_FLAG.
9733
9734 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
9735
9736         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
9737         suitable for holding OFmode values so that gcc works with complex
9738         quad long doubles.
9739         (hard_64bit_mode_classes): Likewise.
9740
9741         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
9742         so that it is actually matched.
9743         (sethi_di_medlow): Likewise.
9744
9745         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
9746         as legitimate constant if -mvis.
9747         * config/sparc/sparc.md (movtf): Likewise.
9748         (clear_sf): Use const_double_operand.
9749         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
9750
9751         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
9752         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
9753         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
9754         routines, _Qp_* cannot be handled like that now.
9755         (INIT_TARGET_OPTABS): Likewise.
9756         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
9757         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
9758         sparc_emit_float_lib_cmp if ARCH64 and soft float.
9759         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
9760         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
9761         divtf3, sqrttf3): New expanders.
9762         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
9763         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
9764         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
9765         non-_hq patterns.
9766
9767         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
9768         * configure: Rebuilt.
9769         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
9770         -mcpu is given and we're doing 64bit compiles.
9771
9772 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
9773
9774         * loop.h (struct induction): Add multi_insn_incr.
9775         * loop.c (basic_induction_var): New multi_insn_incr argument.
9776         Set it if we search back through previous insns for the biv.
9777         (record_biv): New multi_insn_incr argument; fill in struct induction.
9778         (strength_reduce): Discard an iv with multiple bivs, any of
9779         which require multiple insns to increment.
9780
9781 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9782
9783         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
9784         documentation.
9785
9786 1999-12-06  David S. Miller  <davem@redhat.com>
9787
9788         * combine.c (check_promoted_subreg): Do not conditionalize this upon
9789         PROMOTE_FUNCTION_RETURN.
9790
9791 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
9792
9793         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
9794         and handle REG_UNUSED note on insn.
9795
9796         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
9797         inner_mask instead of mask.
9798
9799 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
9800
9801         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
9802         zero if there was an error.
9803
9804 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
9805
9806         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
9807         output string.
9808
9809         * longlong.h: Fix clobbers in SPARC asm statements.
9810
9811         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
9812         valid sethi operations when TARGET_ARCH64.
9813
9814         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
9815         always use move_by_pieces to avoid infinite recursion.
9816         (restore_fixed_argument_area): Likewise.
9817
9818         * combine.c (check_promoted_subreg, record_promoted_value): New
9819         functions.
9820         (combine_instructions): Use them to retain nonzero and sign bit
9821         information after SUBREGs are eliminated by optimizations in
9822         this pass if PROMOTE_FUNCTION_RETURN.
9823
9824         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
9825         .register declaration. Don't use variables with __ prefixes.
9826
9827 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9828
9829         * fold-const.c (optimize_bit_field_compare): Only use one mode
9830         for both RHS and LHS in non-constant case.
9831
9832 1999-12-06  Nathan Sidwell  <nathan@acm.org>
9833
9834         * frame.c (start_fde_sort): Only allocate erratic array, if
9835         linear one was allocated. Return allocated flag.
9836         (fde_insert): Only insert, if there's a valid array.
9837         (fde_end_sort): Split, sort and merge if linear and erratic
9838         arrays exist, else just sort linear one.
9839         (search_fdes): New function. Linear search through original fde
9840         structure.
9841         (frame_init): Permit multiple initializations. Cope with
9842         memory shortages.
9843         (find_fde): Fallback on linear search, if failed to sort array.
9844         (__deregister_frame_info): Only free sorted array, if we
9845         allocated it.
9846
9847 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
9848
9849         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
9850
9851 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
9852
9853         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
9854
9855 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
9856
9857         * tree.h (special_function_p): Declare.
9858         * calls.c (special_function_p): Make it global.  Don't take `name'
9859         as a parameter.  Fix typo in 1999-11-28 change.
9860         (expand_cal): Adjust.
9861
9862 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
9863
9864         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
9865         * tree.h (EXPR_WFL_FILENAME): Define in terms of
9866         EXPR_WFL_FILENAME_NODE.
9867         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
9868         the TREE_CHAIN.
9869         * print-tree.c (print_note): Print TREE_PRIVATE and
9870         TREE_PROTECTED.
9871
9872         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
9873         the original die cannot be found.
9874
9875         * varray.h (varray_head_tag): Add elements_used.
9876         (VARRAY_PUSH): New macro.
9877         (VARRAY_POP): Likewise.
9878         (VARRAY_TOP): Likewise.
9879         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
9880         types.
9881         * varray.c (varray_init): Initialize elements_used.
9882         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
9883         (INTEGRATE_H): New variable.
9884         (integrate.o): Depend on INTEGRATE_H.
9885         (unroll.o): Likewise.
9886
9887         * function.h (insert_block_after_note): Declare.
9888         * function.c (insert_block_after_note): Split out from ...
9889         (retrofit_block): ... here.
9890
9891         * stmt.c (expand_fixup): Fix typo in comment.
9892
9893 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9894
9895         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
9896         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
9897         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
9898         (regmove_optimize, fixup_match_1): Likewise.
9899
9900 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9901
9902         * flow.c (flow_loops_dump): Add missing argument when calling
9903         flow_loop_nested_p.
9904
9905 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
9906             Greg McGary  <gkm@gnu.org>
9907
9908         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
9909         (init_attributes): Add A_NO_LIMIT_STACK.
9910         (decl_attributes): Handle A_NO_LIMIT_STACK.
9911         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
9912         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
9913         Handle stack bounds checking.
9914         * flags.h (flag_stack_check): Use the word 'probe' rather than
9915         'check', because the flag doesn't actually cause any checking to
9916         be done.
9917         * function.c (expand_function_start): Set
9918         current_function_limit_stack.
9919         * function.h (struct function): Add limit_stack.
9920         (current_function_limit_stack): Define.
9921         * invoke.texi (Code Gen Options): Document new options.
9922         * rtl.h: Declare stack_limit_rtx.
9923         * toplev.c (stack_limit_rtx): New variable.
9924         (decode_f_option): Handle new options -fstack-limit-register=REG,
9925         -fstack-limit-symbol=IDENT, -fno-stack-limit.
9926         (main): Add stack_limit_rtx as GC root.
9927         * tree.h (DECL_NO_LIMIT_STACK): New macro.
9928         (struct tree_decl): New member no_limit_stack.
9929
9930         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
9931         stack_limit_rtx.
9932         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
9933         (conditional_trap+1): Get new mnemonic correct.
9934         (conditional_trap+2): New pattern for DImode traps.
9935
9936         * config/m68k/m68k.c (output_function_prologue): Handle
9937         stack_limit_rtx.
9938         * config/m68k/m68k.md (trap): New insn.
9939         (conditional_trap): New insn.
9940         * md.texi (Standard Names): Document `trap' and
9941         `conditional_trap'.
9942         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
9943         so a cc0 setter doesn't get emitted at some random place in the
9944         function.
9945
9946         * config/i960/i960.md (trap): New insn.
9947         (conditional_trap): New expander.
9948         (conditional_trap+1, conditional_trap+2): New insns for signed
9949         and unsigned cases.
9950         * config/i960/i960.c (i960_function_prologue): Use
9951         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
9952
9953 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
9954                           Geoffrey Keating  <geoffk@cygnus.com>
9955
9956         * flags.h (warn_padded, warn_packed): Add global var decls.
9957         * toplev.c (warn_padded, warn_packed): Add global var defns.
9958         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
9959         * stor-layout.c (layout_record): Add local variable `type'
9960         to hold often-used TREE_TYPE (field).  Add local variable
9961         `unpacked_align' to hold alignment that would be in force
9962         if no `packed' attribute were present.  Warn if `packed' attribute
9963         is unnecessary, or even harmful.  Warn when gcc inserts padding
9964         to satisfy alignment requirements of members.  Use NULL_TREE
9965         when checking whether var_size is set.
9966         * invoke.texi: Document new flags.
9967
9968 1999-12-03  Nathan Sidwell  <nathan@acm.org>
9969
9970         * frame.c (fde_split): Reimplement to avoid variable sized array.
9971
9972 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9973
9974         * combine.c (try_combine): Before fixing up LOG_LINKS for the
9975         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
9976
9977 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
9978
9979         * invoke.texi: Document the mips option -mno-crt0
9980
9981 1999-12-02  Mike Karr  <mkarr@mathworks.com>
9982
9983         * cccp.c (argdata): Added free_ptr member.
9984         (macroexpand): Initialize free_ptr of each argument. When an
9985         argument's buffers are freed, if the argument's free_ptr corresponds
9986         to a buffer on the input stack, then return the free_ptr to that stack
9987         frame, otherwise, free it.
9988         (macarg): If an argument begins and ends on the same input stack level,
9989         then transfer the free_ptr of that buffer to the argument in case
9990         the stack is popped during the processing of a subsequent argument.
9991
9992 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
9993
9994         * loop.c (note_reg_stored): New function.
9995         (struct note_reg_stored_arg): New structure.
9996         (try_copy_prop): Change to be more conservative; only replace within
9997         one extended basic block and stop replacing if a store to the
9998         replacement reg is seen.
9999
10000 1999-12-02  Nick Clifton  <nickc@cygnus.com>
10001
10002         * config/fp-bit.c: Initialise all fields of the NAN
10003         constants.
10004
10005         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
10006         to HANDLE_PRAGMA.
10007
10008 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
10009
10010         * i386.md (extend?f?f2): Force the input into a register, not
10011         the output.
10012
10013 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
10014
10015         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
10016         regclass' sake.
10017         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
10018         alternative because setting up 64bit constant is usually costly,
10019         especially when reload is in progress or completed.
10020         (movdf_const_intreg_sp64): Likewise.
10021         (movdf_const_intreg split): Fix building up constants when
10022         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
10023
10024 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
10025
10026         * combine.c (if_then_else_cond): Use const_true_rtx instead of
10027         const1_rtx for return values in EQ/NE comparison against (const_int 0)
10028         case.
10029
10030         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
10031         (asm_file_start): Emit .am33 into assembly file when compiling for
10032         the AM33.
10033         (print_operand_address): Handle POST_INC addresses.
10034         (can_use_return_insn, initial_offset): Check AM33 registers too.
10035         (expand_prologue): Check & save AM33 registers too.
10036         (expand_epilogue): Similarly.
10037         (secondary_reload_class): Handle AM33 specific secondary reloads.
10038         (output_tst): Emit efficient code for the AM33 too.
10039         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
10040         (TARGET_SWITCHES): Add -mam33 switch.
10041         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
10042         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
10043         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
10044         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
10045         (enum reg_class, REG_CLASS_NAMES): Likewise.
10046         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
10047         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
10048         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
10049         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
10050         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
10051         (HAVE_POST_INCREMENT): Define.
10052         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
10053         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
10054         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
10055         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
10056         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
10057         (zero_extend to SI from QI/HI): Likewise.
10058         (sign_extend to SI from QI/HI): Likewise.
10059         (mulsidi3, umulsidi3): New patterns for the AM33.
10060         (tstsi with zero extension from QI/HI): Add AM33 variants.
10061         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
10062         (return_internal_regs, store_movm): Handle new AM33 registers.
10063         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
10064         (LIBGCC, INSTALL_LIBGCC): Likewise.
10065         * invoke.texi: Document new flags.
10066
10067 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10068
10069         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
10070         (addsi3_carry): Likewise.
10071         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
10072         (sbbsi3_carry): Likewise.
10073         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
10074         (mulhi3): Likewise.
10075         (test?i_1): Ensure that only one operand is memory.
10076         (conditional move patterns): likewise.
10077         (shift and rotate patterns): Rewrite to expander, add
10078         "binary_operator_ok" to the condition.
10079
10080         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
10081         * i386.h (procesor_costs): Add movzbl_load field.
10082         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
10083         non-Q registers, accept DImode registers anywhere.
10084         (Q_CLASS_P): New.
10085         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
10086         * i386.c (*_cost): Set value for movxbl_load field.
10087
10088         * (addsi): New add to lea splitter.
10089         (ashlsi): Likewise.
10090         (lea to add/shift peep2): New.
10091
10092 1999-12-01  Mark Salter <msalter@cygnus.com>
10093
10094         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
10095         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
10096         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
10097
10098 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10099
10100         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
10101         * i386.md (movsi_xor): New.
10102         (movsi_or): New.
10103         (movsi_1, movhi_1, movqi_1): Remove.
10104         (movsi_2): Rename to movsi_1.
10105         (movhi_2): Rename to movhi_1.
10106         (movqi_2): Rename to movqi_1.
10107         (movdi_1): Remove; remove splitter.
10108         (movdi_2): Rename to movdi_1.
10109         (divmodsi4 splitter): Do not emit clobbers for move patterns.
10110         (long move peep2): Do not create QI or HI mode mov0s
10111         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
10112
10113         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
10114         rewrite splitters.
10115
10116         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
10117         (abs?f2_if): Likewise.
10118
10119 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
10120
10121         * ggc.h (ggc_test_and_set_mark): New macro.
10122         (ggc_mark_rtx): Use ggc_test_and_set_mark.
10123         (ggc_mark_tree): Likewise.
10124         (ggc_mark_rtvec): Likewise.
10125         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
10126
10127 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
10128
10129         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
10130         containing types.
10131         (decl_scope_table): Just an array of trees now.
10132         (push_decl_scope): Simplify.
10133         (dwarf2out_init): Adjust.
10134         (local_scope_p): New fn.
10135         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
10136         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
10137         (gen_typedef_die): Likewise.
10138         (gen_lexical_block_die): Don't call push/pop_decl_scope.
10139         (gen_inlined_subroutine_die): Likewise.
10140         (gen_abstract_function): Set current_function_decl temporarily.
10141         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
10142         Handle block extern declarations.  Don't call push/pop_decl_scope.
10143         (gen_decl_die): Fix logic for block externs.
10144
10145 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10146
10147         * calls.c (special_function_p): Remove `realloc' and add `strdup'
10148         to the list of functions which have attribute malloc by default.
10149
10150 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10151
10152         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
10153         integer constant does not match the traditional type, limit the
10154         warnings to cases where the base of the type is ten.
10155
10156         * invoke.texi (-Wtraditional): Document it.
10157
10158 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10159
10160         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
10161         * rs6000.md: Only access a CONST_INT with INTVAL
10162
10163 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
10164
10165         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
10166         (compute_nearerout): Likewise.
10167         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
10168         size_t to unsigned long for formatting.
10169
10170 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
10171
10172         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
10173         Allow the user to override call-used/fixed state of %g2-5
10174         registers from the command line (with the exception of %g4 for
10175         embedded model).
10176         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
10177         there is a higher chance of having a leaf function.
10178         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
10179         for ARCH64 which has %ccr register.
10180         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
10181         patterns.
10182         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
10183         insn accept into delay slot any insn which does not use %[ol]
10184         registers.  Accept some LO_SUM and shift left by 1 for the normal
10185         restore case.
10186         (output_function_epilogue): Likewise.
10187         (epilogue_renumber): Added argument which inhibits any renumbering
10188         and just tests if the rtx does not use any %[ol] registers.
10189         (output_return): Reflect above change.
10190
10191 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
10192
10193         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
10194         aggregate passing for sizes <= 16 bytes.
10195
10196 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
10197
10198         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
10199         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
10200         * reload.c (find_dummy_reload): Likewise.
10201         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
10202         * reload1.c (reload_as_needed): Likewise.
10203         * stupid.c (stupid_find_reg): Likewise.
10204         * tm.texi (Obsolete Register Macros): Delete section.
10205         * gmicro.h: Remove all traces of the two macros.
10206         * i386.h: Likewise.
10207         * m88k.h: Likewise.
10208         * mips.h: Likewise.
10209
10210 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
10211
10212         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
10213         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
10214         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
10215         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
10216         units for the sparclite86x chip.
10217         (flush): Revert October 14th change; add SImode specifically.
10218         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
10219         * invoke.texi: Document it.
10220
10221 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
10222
10223         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
10224         psimode_truncation_operand.
10225
10226         * config/mn10200/mn10200.c (psimode_truncation_operand): New
10227         function.  Return true if the operand is either a MEM valid
10228         for a PSImode address or not a MEM at all.
10229
10230         * config/mn10200/mn10200.md (truncsipsi2): Use
10231         psimode_truncation_operand.
10232
10233 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10234
10235         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
10236         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
10237         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
10238         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
10239         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
10240         (flow_loop_level_compute, low_loops_level_compute): Likewise.
10241         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
10242         * basic-block.h: Protect from multiple inclusion.
10243         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
10244         (struct loops, struct loop): Define structures.
10245         * sbitmap.c (sbitmap_a_subset_b_p): New function.
10246         * sbitmap.h: Protect from multiple inclusion.
10247         (sbitmap_a_subset_b_p): Add prototype.
10248         * Makefile.in (LOOP_H): New macro.
10249         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
10250
10251 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
10252
10253         * cppinit.c (CAT): The argument list of this macro may not contain
10254         spaces !
10255
10256 1999-11-29  David S. Miller  <davem@redhat.com>
10257
10258         Move quantity tables and register equivalence chains into
10259         per-qty and per-register structure arrays respectively.
10260         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
10261         qty_const_insn, qty_comparison_code, qty_comparison_const,
10262         qty_comparison_qty): Delete, replace with...
10263         (qty_table): this structure table.
10264         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
10265         (reg_eqv_table): this structure table.
10266         (make_new_qty): Add argument MODE.  Caller updated.
10267         Update to use qty_table and reg_eqv_table.
10268         (make_regs_eqv, delete_reg_equiv, insert_regs,
10269         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
10270         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
10271         cse_process_notes, cse_main, cse_basic_block): Likewise.
10272
10273 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10274
10275         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
10276         operation if C is negative.
10277         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
10278         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
10279         law for some divisions if constant is negative and change other
10280         divisions to the opposite rounding.
10281
10282         * expr.c (store_constructor_field): If bit position is not multiple
10283         of alignment of TARGET's mode, use BLKmode.
10284
10285         * expr.c (expand_expr_unaligned): Add more code from full case
10286         that is needed when OP0 is in a register.
10287
10288 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10289
10290         * dwarfout.c (field_byte_offset): Size can be zero if there was
10291         an error.
10292
10293 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
10294
10295         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
10296         (associate_trees): Delete unused var TEM.
10297         (extract_muldiv): Delete unused var CANCEL_P.
10298
10299         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
10300         (target_isinf, target_isnan, target_negative): Add return types to
10301         function definitions.
10302
10303 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
10304
10305         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
10306         * fixinc/hackshell.tpl: ditto
10307         * fixinc/fixtests.c(double_slash_test): more C++ header testing
10308         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
10309
10310 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
10311
10312         * reload.c (push_reload): When looking for a register to put into
10313         reg_rtx, make sure all hard regs in a multi-reg register are in the
10314         right class and nonfixed.
10315
10316         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
10317         pending_read_insns, pending_write_insns, pending_read_mems,
10318         pending_write_mems, pending_list_length, last_pending_memory_flush,
10319         last_function_call, sched_before_next_call): Move static variables
10320         into a structure.
10321         (bb_ prefixed versions): Replace with single array bb_deps.
10322         (struct deps): New structure.
10323         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
10324         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
10325         argument of type "struct deps *"; use that instead of global
10326         variables.  All callers changed.
10327         (init_rgn_data_dependencies): Delete function.
10328         (init_rtx_vector): Delete function.
10329         (init_deps): New function.
10330
10331         (free_pending_lists): Simplify, we always use the bb_deps array even
10332         if only one basic block.
10333         (compute_block_backward_dependences): Likewise.
10334         (schedule_region): Likewise.
10335
10336         (propagate_deps): New function, broken out of
10337         compute_block_backward_dependences.
10338         (compute_block_backward_dependences): Use it.
10339
10340         * alpha.md: Delete useless patterns that tried to work around
10341         register elimination problems.
10342
10343         * unroll.c (loop_iterations): Don't abort if iteration variable
10344         was made by loop.
10345
10346         From Joern Rennecke:
10347         * reload1.c (reloads_conflict): Reverse test comparing operand
10348         numbers when testing for conflict between output/outaddr reloads.
10349
10350 1999-11-29  David S. Miller  <davem@redhat.com>
10351
10352         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
10353         arg.
10354         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
10355
10356 1999-11-28  Robert Lipe  <robertl@cygnus.com>
10357
10358         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
10359         table from .fini into .dtor.
10360
10361 1999-11-28  Anthony Green  <green@cygnus.com>
10362
10363         * tree.h (struct tree_decl): Add malloc_flag.
10364         (DECL_IS_MALLOC): Define.
10365         * c-common.c (attrs): Add A_MALLOC attribute.
10366         (init_attributes): Add this attribute to the table.
10367         (decl_attributes): Handle malloc attribute.
10368         * calls.c (special_function_p): Check for the malloc attribute.
10369         * extend.texi (Function Attributes): Document malloc attribute.
10370
10371 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
10372
10373         * pa.md (reload shift-add patterns): Remove.
10374
10375 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10376
10377         * reorg.c (dbr_schedule) Print more statistics. Corrected
10378         problem when printing info when 3 delay slots are filled.
10379
10380 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
10381
10382         * combine.c (setup_incoming_promotions): Pass an outgoing
10383         regno to FUNCTION_ARG_REGNO_P which it expects.
10384
10385 1999-11-28  Andreas Jaeger  <aj@suse.de>
10386
10387         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
10388
10389 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
10390
10391         * cccp.c (do_include): Avoid initialization of automatic variable.
10392
10393         * integrate.c (mark_stores): Function definition made void, to match
10394         previous declaration.
10395         * regclass.c (dump_regclass): Ditto.
10396         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
10397
10398 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10399
10400         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
10401         known to be multiple of divisor.
10402
10403         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
10404
10405         * combine.c (try_combine): Add code to try to merge a set of a
10406         two-word pseudo to a constant with a setting of one of those words
10407         to a constant.
10408
10409         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
10410         (split_tree): Completely rework to make more general.
10411         (make_range, fold): Call negate_expr.
10412         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
10413         (fold, associate): Call new split_tree and associate_trees.
10414         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
10415
10416 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10417
10418         * loop.c (try_copy_prop): Avoid GNU C extension.
10419
10420 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
10421
10422         * except.c (init_eh_for_function): Still zero eh_return_context,
10423         eh_return_stack_adjust, and eh_return_handler.
10424
10425         * except.h (eh_status): Adjust documentation for x_protect_list.
10426         (begin_protect_partials): New function.
10427         * except.c (enqueue_eh_entry): Fix formatting.
10428         (get_first_handler): Add consistency check.
10429         (add_partial_entry): Adjust usage of protect_list.
10430         (emit_cleanup_handler): Save and restore ehqueue.
10431         (expand_start_all_catch): Add comment.
10432         (begin_protect_partials): New function.
10433         (end_protect_partials): Adjust usage of protect_list.
10434         (init_eh_for_function): Use xcalloc.
10435
10436 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10437
10438         * c-common.c (check_format_info): Don't call a variadic function
10439         with a non-literal format string.
10440
10441         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
10442
10443         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
10444         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
10445         Likewise.
10446
10447         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
10448         Likewise.
10449
10450         * collect2.c (collect_wait): Likewise.
10451
10452         * dbxout.c (dbxout_type): Likewise.
10453
10454         * gcc.c (do_spec_1): Likewise.
10455
10456         * genemit.c (gen_insn, gen_expand): Likewise.
10457
10458         * genrecog.c (write_switch, write_subroutine): Likewise.
10459
10460         * mips-tfile.c (catch_signal, botch): Likewise.
10461
10462         * print-rtl.c (print_rtx): Likewise.
10463
10464         * toplev.c (default_print_error_function, report_error_function,
10465         _fatal_insn): Likewise.
10466
10467 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
10468
10469         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
10470
10471 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10472
10473         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
10474         operations when needed.
10475         * i386.md (fop_?f_comm): New.
10476         (fop_?f_1): Do not accept commutative operands.
10477
10478 1999-11-25  Andreas Jaeger  <aj@suse.de>
10479
10480         * config/mips/mips.md (casesi_internal): Add missing brace.
10481
10482 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
10483
10484         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
10485         (splice_child_die): Handle moving a child DIE from the declaration
10486         DIE of a class to its specification.
10487         (gen_struct_or_union_type_die): Use 'complete' consistently.
10488         (gen_decl_die): Generate the virtual context DIE first.
10489         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
10490
10491 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
10492
10493         * config/mips/mips.md (call_value_multiple_interanal1): New.
10494
10495 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
10496
10497         * dwarf2out.c (free_AT, free_die): New fns.
10498         (remove_children): Call them.
10499         (output_line_info): Disable removal of duplicate notes.
10500
10501         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
10502         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
10503         means pretend the type isn't defined.
10504         Don't defer emitting types.
10505         (gen_type_die_for_member): New fn.
10506         (gen_decl_die): Call it.
10507         (splice_child_die): New fn.
10508         (gen_member_die): Call it rather than generate duplicate dies.
10509
10510         Defer emitting information for the abstract instance of an inline
10511         until we either inline it or emit an out-of-line copy.
10512         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
10513         from output_inline_function if DECL_ABSTRACT is also set.
10514         (block_ultimate_origin): Likewise.
10515         (gen_abstract_function): New fn.
10516         (gen_decl_die, gen_inlined_subroutine_die): Call it.
10517         (gen_subprogram_die):  An abstract instance is not a declaration
10518         just because it doesn't match current_function_decl.  Don't abort
10519         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
10520         has an abstract origin.
10521         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
10522         abstract instance here.
10523
10524 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
10525
10526         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
10527         where we need to reload fpul from a system register.
10528
10529 1999-11-24  Andreas Jaeger  <aj@suse.de>
10530
10531         * config/mips/linux.h (CPP_PREDEFINES): Added.
10532         (LINK_SPEC): Remove -Y since this is only needed on sparc.
10533
10534 1999-11-24  Andreas Jaeger  <aj@suse.de>
10535
10536         * config/mips/linux.h (TARGET_VERSION): Added.
10537         (HANDLE_SYSV_PRAGMA): Added.
10538         (DEFAULT_VTABLE_THUNKS): Added.
10539
10540 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10541
10542         * local-alloc.c (qty): New structure and static variable.
10543         (qty_phys_reg): Remove, all references changed to qty.
10544         (qty_n_refs): Likewise.
10545         (qty_min_class): Likewise.
10546         (qty_birth): Likewise.
10547         (qty_death): Likewise.
10548         (qty_size): Likewise.
10549         (qty_mode): Likewise.
10550         (qty_n_calls_crossed): Likewise.
10551         (qty_alternate_class): Likewise.
10552         (qty_changes_size): Likewise.
10553         (qty_first_reg): Likewise.
10554         (alloc_qty): Rename variable QTY to QTYNO.
10555         (finf_free_reg): Likewise.
10556         (local_alloc): Allocate qty, do not allocate the removed variables.
10557
10558 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
10559
10560         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
10561         when -membedded-pic is passed.
10562
10563         * config/mips/mips.md (casesi): Handle 64-bit case too.
10564         (casesi_internal_di): New insn.
10565
10566         * config/mips/mips.c (embedded_pic_offset): Always make the
10567         embedded-pic subtractions relative to the name of the current
10568         function by use of the magic string "..CURRENT_FUNCTION".
10569         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
10570
10571 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
10572
10573         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
10574         of (const_int 0), when what we really care about is
10575         whether it's a zero constant anyway.
10576         (div_trap_mips16): Likewise.
10577
10578 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
10579
10580         * loop.c (loop_optimize): Always find_loop_tree_blocks and
10581         unroll_block_trees when generating debuggable code.
10582
10583         * tree.h (unsave_expr_1): New function.
10584         (lang_unsave): New variable.
10585         (get_callee_fndecl): New function.
10586         * tree.c (unsave_expr_now_r): New function.
10587         (lang_unsave): Define.
10588         (unsave_expr_1): Likewise.
10589         (unsave_expr_now_r): Split out from unsave_expr_now.
10590         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
10591         call unsave_expr_now_r.
10592         (get_callee_fndecl): Define.
10593
10594         * Makefile.in (gencheck): Don't depend on lang_tree_files.
10595         (gencheck.o): Do depend on lang_tree_files.
10596
10597         * integrate.h (copy_decl_for_inlining): New declaration.
10598         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
10599         (copy_decl_for_inlining): New function.
10600         (integrate_parm_decls): Use it.
10601         (integrate_decl_tree): Likewise.
10602
10603 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
10604
10605         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
10606         the second two from the first.
10607         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
10608         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
10609         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
10610         ISA_HAS_FP4.
10611         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
10612         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
10613         ISA_HAS_FP4.
10614
10615 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
10616
10617         * pa.md (call_internal_symref, call_value_internal_symref): No mode
10618         needed on the address operand.
10619         * pa.c (call_operand_address): Check for the correct mode.
10620
10621 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
10622
10623         * loop.c: Include "basic-block.h".
10624         (try_copy_prop, replace_loop_reg): New functions.
10625         (load_mems): Detect registers that just hold copies of the hoisted
10626         mem, and call try_copy_prop to eliminate them.
10627         * Makefile.in (loop.o): Update dependencies.
10628
10629 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
10630
10631         * Makefile.in (gencheck.o): Depend on gencheck.h.
10632         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
10633         (insn-peep.o): Depend on except.h and function.h.
10634         (insn-attrtab.o): Depend on RECOG_H.
10635         (insn-output.o): Depend on toplev.h and flags.h.
10636         (gengenrtl.o): Depend on real.h.
10637         (gen-protos.o): Depend on cpplib.h and cpphash.h.
10638         Unify all dependencies to be on RECOG_H rather than recog.h.
10639
10640 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10641
10642         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
10643         * configure.in: Try building a bi-arch 32/64-bit compiler on
10644         sparc-*-solaris2.7 and higher.
10645         * configure: Rebuild.
10646
10647 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
10648
10649         * config/freebsd.h: New, FreeBSD architecture independent file.
10650         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
10651         independent pieces.
10652         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
10653         directly by i386/freebsd.h.
10654         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
10655         independent configuration file.
10656         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
10657         directly by i386/freebsd.h.
10658         * configure: Rebuilt.
10659
10660         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
10661         which is in the user's namespace.
10662         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
10663         `i386' which is not in our namespace.
10664
10665 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
10666
10667         * invoke.texi (ARM Options): Add in -mno-alignment-traps
10668
10669 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
10670
10671         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
10672         (add_dwarf_attr, add_child_die): Just push onto the front.
10673         (reverse_die_lists): New fn.
10674         (add_sibling_attributes): Use it.
10675         (push_decl_scope): Reorganize.
10676         (add_name_and_src_coords_attributes): Don't set file and line for
10677         an artificial decl.
10678         (gen_subprogram_die): An artificial function doesn't need to match
10679         file and line.
10680         (gen_compile_unit_die): Return the generated die.  Only add
10681         AT_comp_dir if the filename is relative.
10682         (remove_AT): Simplify loop.  Also free string values.
10683         (output_die): A DIE ref can't be null.
10684         (output_value_format, value_format): Take a dw_attr_ref.
10685         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
10686         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
10687         AT_addr, AT_lbl): New fns.
10688         (various): Use them.
10689         (various): Constify.
10690
10691 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10692
10693         * combine.c (combine_simplify_rtx): When handling a SUBREG,
10694         take SUBREG_WORD into account.
10695         (if_then_else_cond): Likewise.
10696
10697 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
10698
10699         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
10700         clause from BSD license, pursuant with
10701
10702           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
10703
10704 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
10705
10706         * loop.c (load_mems): Reformat slightly.
10707         * basic-block.h (regset_head): New typedef.
10708         (INIT_REG_SET): New macro.
10709
10710 1999-11-22  Bruce Korb  <autogen@linuxbox.com
10711
10712         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
10713         (mips-dec-bsd*): non-functional code
10714         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
10715
10716         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
10717         added three replacement fixes
10718         (no_double_slash): removed comments that are not (any longer) pertinent
10719         (bad_lval): this fix currently runs against many files.
10720         The comment seems to indicate that we should select for files
10721         containing 'pragma extern_prefix'.
10722
10723         * fixinc/fixinc.x86-linux-gnu: deleted
10724         * fixinc/inclhack.sh:  regen
10725         * fixinc/fixincl.x:  regen
10726         * fixinc/fixincl.sh:  regen
10727
10728 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
10729
10730         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
10731         its code is INSN and it has no notes.
10732
10733 1999-11-22  Andrew Haley  <aph@cygnus.com>
10734
10735         * varasm.c (function_defined): Remove.
10736         (make_function_rtl): Don't set function_defined.
10737         (make_decl_rtl): Remove global register warning.
10738         * regclass.c (no_global_reg_vars): New variable.
10739         (globalize_reg): Warn if function has already been defined.
10740         (regclass_init): Set no_global_reg_vars.
10741
10742 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10743
10744         * regclass.c (reg_pref): New structure and static variable
10745         (prefclass): Delete.
10746         (altclass): Delete.
10747         (all uses of prefclass and altclass): Use reg_pref instead.
10748
10749 1999-11-21  Nick Clifton  <nickc@cygnus.com>
10750
10751         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
10752         -malignment-traps.
10753         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
10754         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
10755         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
10756
10757 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
10758
10759         * varasm.c (output_constructor): Solve problem with long long
10760         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
10761
10762 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10763
10764         * global.c (allocno): New structure and static variable.
10765         (allocno_reg): Remove, all references replaced by allocno.
10766         (allocno_size): Likewise.
10767         (hard_reg_conflicts): Likewise.
10768         (hard_reg_preferences): Likewise.
10769         (hard_reg_copy_preferences): Likewise.
10770         (hard_reg_full_preferences): Likewise.
10771         (regs_someone_prefers): Likewise.
10772         (allocno_calls_crossed): Likewise.
10773         (allocno_n_refs): Likewise.
10774         (allocno_live_length): Likewise.
10775         (find_reg): Rename ALLOCNO to NUM.
10776
10777         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
10778         references updated.
10779         (may_move_out_cost): New variable.
10780         (init_reg_sets_1): Initialize may_move_out_cost.
10781         (record_reg_classes): Use may_move_out_cost.
10782
10783         * regclass.c (dump_regclass): New function.
10784         (regclass): New parameter DUMP, call DUMP_REGCLASS.
10785         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
10786         pass rtl_dump_file to regclass.
10787         * rtl.h (regclass): Update prototype.
10788
10789 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10790
10791         * i386.md (neg, not and abs patterns): Revmap to use
10792         ix86_expand_unary_operator and ix86_unary_operator_ok.
10793         (add?f and sub?f expanders): Force operand 1 to register.
10794         * i386.c (ix86_expand_unary_operator): Rewrite.
10795         (ix86_unary_operator_ok): Ensure that memory operands
10796         match real opcode.
10797         (ix86_binary_operator_ok): Do not allow operand 1 to
10798         come into memory and operand 0 not.
10799         (ix86_expand_binary_operator): Ensure that
10800         src1 is not non-matching memory.
10801
10802         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
10803         to support integer registers and memory.
10804         (abss?2_integer): Likewise.
10805
10806         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
10807         (REG_CLASS_NAMES): Likewise.
10808         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
10809         and GENERAL_REGS.
10810         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
10811         (movsf): Likewise; unify 4th and 5th alternative.
10812         (pushdf): Likewise.
10813         (movdf_1): Likewise; rename to movdf_integer.
10814         (pushxf): Likewise; rename to pushxf_integer; fix output template;
10815         remove redundant splitter.
10816         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
10817         (movdf_nointeger): New.
10818         (movxf_nointeger): New.
10819         (pushxf_nointeger): New.
10820
10821         * i386.md (extend?f?f): Split to expander and pattern, refuse two
10822         memory operands in patterns.
10823         (fop*): Refuse two memory operands.
10824
10825         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
10826         on !TARGET_USE_CLTD CPUs.
10827
10828 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
10829
10830         * extend.texi: Document C++ restricted pointers and references.
10831
10832 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
10833
10834         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
10835         (invalidate_skipped_set): Call it unconditionally.
10836         (cse_set_around_loop): Likewise.
10837
10838 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
10839
10840         * rtl.texi (mem): Add documentation for alias-set argument
10841         to RTX `mem'.
10842
10843 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10844
10845         * i386.h (struct_processor_costs): New fields int_load, int_store,
10846         fp_move, fp_load and fp_store
10847         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
10848         fp->int moves
10849         (MEMORY_MOVE_COST): New macro.
10850         * i386.c (386_cost): Define new fields.
10851         (i486_cost): Likewise.
10852         (pentium_cost): Likewise.
10853         (pentiumpro_cost): Likewise.
10854         (k6_cost): Likewise.
10855
10856 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
10857                           Geoffrey Keating  <geoffk@cygnus.com>
10858
10859         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
10860
10861         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
10862         MASK_ALIGN_INT.
10863
10864         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
10865         (TARGET_STRICT_ALIGNMENT): New macro.
10866         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
10867         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
10868         * invoke.texi (M680x0 Options): Document -mstrict-align.
10869
10870 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
10871                           Richard Henderson  <rth@cygnus.com>
10872
10873         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
10874         (ix86_split_long_move): Declare.
10875         * i386.c (split_xf, ix86_split_movdi): Remove.
10876         (ix86_split_to_parts, ix86_split_long_move): New.
10877         * i386.md (dimode move splitters): Use ix86_split_long_move.
10878         (dfmode move splitters): Likewise.
10879         (xfmode move splitters): Likewise.
10880         (movsf_1): Allow F->r.
10881         (movdf_1, movxf_1): Allow F->ro.
10882
10883 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
10884
10885         * except.h (struct eh_entry): Add goto_entry_p.
10886         (eh_region_from_symbol): Remove prototype.
10887         * except.c (find_func_region_from_symbol): New function.
10888         (emit_cleanup_handler): Likewise.
10889         (eh_region_from_symbol): Make it static.
10890         (add_new_handler): Verify the argument.
10891         (find_func_region): Update comment.
10892         (expand_eh_region_end): Expand handlers here, rater than waiting
10893         until expand_leftover_cleanups or start_all_catch.
10894         (expand_leftover_cleanups): Don't expand here.
10895         (expand_start_all_catch): Or here.
10896         (expand_rethrow): Check the return value from find_func_region.
10897         * function.c (expand_function_end): Emit the catch_clauses.
10898
10899 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
10900
10901         * integrate.c (expand_inline_function): Add necessary check for NULL.
10902
10903 1999-11-18  Nick Clifton  <nickc@cygnus.com>
10904
10905         * toplev.c (main): Correctly detect an unrecognised option.
10906
10907         * cppinit.c (cpp_handle_option): Do not claim to have consumed
10908         a -f option if it has not been recognised.
10909
10910 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
10911
10912         * basic-block.h (update_life_extent): Remove trailing comma on
10913         enumeration type list.
10914
10915 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10916
10917         * varasm.c (output_constructor) Solved problem with long long
10918         bitfields. Corrected calculating this_time and shift. Also
10919         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
10920
10921 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
10922
10923         * flow.c (split_edge): Take looping structure into account when
10924         determining where to put the new block note.
10925
10926 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
10927
10928         * Makefile.in (ggc-none.o): Provide host specific version if
10929         needed.
10930
10931 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
10932
10933         * cse.c (delete_trivially_dead_insns): Identify no-op insns
10934         containing subregs too.
10935
10936 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
10937
10938         * invoke.texi: Add documentation for -muninit-const-in-rodata.
10939         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
10940         (TARGET_UNINIT_CONST_IN_RODATA): Define.
10941         (text_section): Add switches -munint-const-in-rodata and
10942         -mno-uninit-const-in-rodata.
10943         (ASM_OUTPUT_COMMON): Remove.
10944         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
10945         const objects should be placed in read-only data. Otherwise declare
10946         them in common.
10947
10948 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
10949
10950         * jump.c (jump_optimize_1): Revert last change.
10951
10952 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
10953
10954         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
10955         test if optimizing for size.
10956
10957 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
10958
10959         * Makefile.in (toplev.o): Depend on except.h.
10960         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
10961
10962 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10963
10964         * i386.md (divmodsi4): Rewrite to expander.
10965         (*divmodsi4_nocltd): New.
10966         (*divmodsi4_cltd): New.
10967         (divmodsi4 splitter): Handle the case when input comes in edx.
10968         (udivmodhi4): Do not use constraints in exander.
10969         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
10970
10971 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
10972
10973         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
10974         for the common case.
10975
10976 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
10977
10978         * explow.c (hard_function_value): Add outgoing argument.
10979         * expr.h (hard_function_value): Declare it.
10980         * calls.c (expand_call, emit_library_call_value): Update callers.
10981         * function.c (aggregate_value_p): Ditto.
10982         (diddle_return_value): Must look at the outgoing registers
10983         on archs with register windows.
10984
10985 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
10986
10987         * alpha.c (alpha_build_va_list): Use make_lang_type and
10988         initialize TYPE_NAME for the va_list record.
10989
10990         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
10991
10992         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
10993         for printing.
10994         * ggc.h (struct ggc_statistics): Rearrange elements for better
10995         packing on 64-bit hosts.
10996         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
10997         (compute_nearerout): Likewise.
10998
10999 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
11000
11001         * config/rs6000/rs6000.c (first_reg_to_save): Save
11002         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
11003
11004 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
11005
11006         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
11007         notion of nesting to find the DIE for a type or function.
11008         DIEs can go in limbo even if we got a context_die.
11009         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
11010         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
11011         for local type.
11012         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
11013         (gen_type_die): Writing out the context doesn't cause member class
11014         template instantiations to be written out as well.
11015
11016 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
11017
11018         * rs6000.h (ASM_OUTPUT_DEF): New.
11019         Based on proposed addition from David Edelsohn.
11020
11021 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
11022             Bruce Korb  <autogen@linuxbox.com>
11023
11024         * fixinc/inclhack.def
11025         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
11026         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
11027                 in net/inet.h.
11028         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
11029         (svr4_endian): enabled with SVR5
11030         (svr4_mkdev): simplified syntax and enabled with SVR5
11031
11032 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
11033
11034         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
11035         * configure: Rebuilt.
11036         * config/t-freebsd-thread: New file.
11037
11038 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
11039
11040         * i386.c (ix86_decompose_address): Verify the base is a REG
11041         before trying to examine its register number.
11042
11043         * basic-block.h: Remove all #defines and prototypes related to
11044         integer lists.
11045         (free_bb_mem, compute_preds_succs): Remove prototype.
11046         * rtl.h (free_bb_mem): Remove prototype.
11047         * flow.c (alloc_int_list_node); Remove function.
11048         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
11049         (compute_preds_succs, free_bb_mem): Likewise.
11050         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
11051         * toplev.c (rest_of_compilation): Likewise.
11052         * haifa-sched.c (build_control_flow): Use flow generated edge
11053         list to build the haifa specific edge list.
11054         (find_rgns): Use new CFG data structures instead of pred/succ lists.
11055         (schedule_insns): Do not build pred/succ lists anymore.  Instead
11056         build the edge table.
11057
11058         * basic-block.h (dump_bb_data): Remove declaration.
11059         * flow.c (dump_bb_data): Remove function.
11060         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
11061         (sbitmap_union_of_predsucc): Likewise.
11062
11063         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
11064         argument.  All callers changed.
11065         (delete_null_pointer_checks_1): No longer need to compute the
11066         pred/succ lists.
11067
11068         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
11069         All callers changed.
11070         (pre_expr_reaches_here_p_work): Likewise.
11071         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
11072         * lcm.c (compute_laterin): Fix initialization of LATER.
11073         (compute_nearerout): Similarly for NEARER.
11074
11075 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11076
11077         * cse.c (set_nonvarying_address_components): Delete unused function.
11078         (refers_to_p): Likewise.
11079
11080 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
11081
11082         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
11083         needed.
11084
11085 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11086
11087         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
11088         definition in do while (0).
11089
11090 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
11091
11092         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
11093
11094 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
11095
11096         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
11097
11098 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
11099
11100         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
11101         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
11102         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
11103         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
11104
11105         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
11106         saved on the stack.  Output more accurate stack frame statistics
11107         into assembler file.
11108
11109 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
11110
11111         * genextract.c (record_insn_name): New function.
11112         (get_insn_name): No longer a stub.
11113         (main): Call record_insn_name for each insn.  After each label
11114         written, print the insn name in a comment.
11115
11116 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11117
11118         * output.h (const_section, init_section, fini_section): Add
11119         prototypes.
11120
11121         * alpha/elf.h (const_section): Delete declaration.
11122
11123         * svr4.h (const_section): Likewise.
11124
11125 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
11126
11127         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
11128         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
11129         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
11130         expressions.
11131         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
11132         variable-sized array bounds.
11133
11134 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
11135
11136         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
11137         ASM_OUTPUT_LABEL.
11138
11139 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11140
11141         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
11142         addresses the same way GO_IF_LEGITIMATE_INDEX does.
11143
11144 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11145
11146         * cse.c (hash_arg_in_struct): Delete.
11147         (struct table_elt): Delete elt in_struct.
11148         (struct set): Delete elt src_in_struct.
11149         (merge_equiv_classes): Don't set either hash_arg_in_struct or
11150         the corresponding in_struct elts.
11151         (canon_hash): Likewise.
11152         (safe_hash): Likewise.
11153         (find_best_addr): Likewise.
11154         (record_jump_cond): Likewise.
11155         (cse_insn): Likewise.
11156
11157 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
11158
11159         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
11160
11161         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
11162         unsigned types.
11163
11164 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
11165
11166         * function.c (diddle_return_value): Put back check that the DECL_RTL
11167         for the function is a register.
11168
11169         * function.c (diddle_return_value): Use hard_function_value to
11170         get an rtx suitable for use in the USE/CLOBBER insn.
11171
11172         * global.c (global_conflicts): Update comments.
11173         (record_conflicts): No need to record conflicts between pseudos here.
11174
11175 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
11176
11177         * fixinc/fixincl.c: Added verbose levels for status messages
11178
11179 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11180
11181         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
11182         operand as argument to expand_and or expand_binop.
11183
11184 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
11185
11186         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
11187         gcc_add_string_root.
11188
11189 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
11190
11191         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
11192
11193 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
11194
11195         * flow.c (compute_flow_dominators): Initially put all blocks on
11196         the worklist.
11197         * lcm.c (compute_antinout_edge, compute_available): Similarly.
11198         * gcse.c (compute_cprop_avinout): Remove.
11199         (compute_cprop_data): Use compute_available.
11200         (delete_null_pointer_checks_1): Use compute_available.
11201
11202         * basic-block.h (compute_available): Returns a void now.
11203         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
11204         to return a value anymore.
11205         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
11206         worklists.  Fix boundary cases. Compute maximal solutions.
11207         (compute_laterin, compute_nearerout): Similarly.
11208
11209         * dwarf2out.c (add_AT_location_description): Allow
11210         (mem (plus (pseudo) (...)) too.
11211
11212 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
11213
11214         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
11215
11216 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
11217                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11218
11219         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
11220
11221         * gansidecl.h: Likewise.
11222
11223         * rtl.c: Likewise.
11224
11225         * rtl.h: Likewise.
11226
11227         * toplev.h: Likewise.
11228
11229         * tree.c: Likewise.
11230
11231         * tree.h: Likewise.
11232
11233         * varray.c: Likewise.
11234
11235         * varray.h: Likewise.
11236
11237 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
11238
11239         * gcov.c (struct arcdata): Add hits and total, remove prob.
11240         (output_branch_counts): New.
11241         (process_args): Set output_branch_counts if -c.
11242         (calculate_branch_probs): Store hits and total instead of
11243         percentage.
11244         (output_data): Emit counts if output_branch_counts is true.
11245         * gcov.texi (Invoking Gcov): Document -c switch..
11246
11247 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
11248
11249         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
11250         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
11251
11252 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
11253
11254         * invoke.texi (C Dialect Options): Add missing builtins from
11255         c-common.c to list.
11256         * extend.texi (Other Builtins): Copy to this list.
11257
11258 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11259
11260         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
11261         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
11262         redundant bitmap.h.
11263
11264 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
11265
11266         * flow.c (compute_flow_dominators): No longer treat basic block 0
11267         or (n_basic_blocks - 1) specially.  Clear the AUX field before
11268         starting computation of doms/pdoms.  Fix initial state for pdoms.
11269
11270 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11271
11272         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
11273         match rtl.o's: added ggc.h and toplev.h
11274         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
11275         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
11276         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
11277
11278 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
11279
11280         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
11281         from HAVE_DOS_BASED_FILESYSTEM.
11282         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
11283         HAVE_DOS_BASED_FILESYSTEM.
11284         (main): Likewise.
11285         (split_directories): Only special-case DOS file names if
11286         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
11287         instead of explicit tests.  Conditionalize on !VMS.
11288         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
11289         tests.  Conditionalize on !VMS.
11290         (process_command): Only use make_relative_prefix if !VMS.
11291         (free_split_directories): Conditionalize on !VMS.
11292         (DIR_UP): Conditionalize on !VMS.
11293
11294 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11295
11296         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
11297
11298 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11299
11300         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
11301         case.
11302
11303 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
11304
11305         * invoke.texi (Environment Variables): Document relative path
11306         lookup.
11307         * gcc.c (DIR_UP): If not defined, define as "..".
11308         (standard_bindir_prefix): New static, holds target location to
11309         install binaries.
11310         (split_directories): New function to split a filename into
11311         component directories.
11312         (free_split_directories): New function, release memory allocated
11313         by split_directories.
11314         (make_relative_prefix): New function, make a relative pathname if
11315         the compiler is not in the expected location.
11316         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
11317         can figure out an appropriate prefix from argv[0].
11318         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
11319         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
11320         STANDARD_BINDIR_PREFIX.
11321
11322 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11323
11324         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
11325         in c4x.c.
11326         * config/c4x/c4x.h: Moved prototypes to c4x.h.
11327         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
11328         c4x_secondary_memory_needed) Delete.
11329         (fp_zero_operand): Add mode argument.
11330
11331 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
11332
11333         * reload1.c (reload_reg_free_for_value_p): Don't use a register
11334         that is in reload_reg_used.
11335
11336 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
11337
11338         * config/arm/arm-protos.h: New file: Prototypes for functions
11339         defined in arm.c and pe.c.
11340         * config/arm/arm.h: Fix compile time warnings.
11341         * config/arm/arm.c: Fix compile time warnings.
11342         * config/arm/pe.h: Fix compile time warnings.
11343         * config/arm/aout.h: Fix compile time warnings.
11344
11345 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
11346
11347         * config/m32r/m32r-protos.h: New file: Prototypes for functions
11348         defined in m32r.c
11349
11350         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
11351         Add support for subtargets.
11352         Add prototypes for new predicates.
11353         Add scheduling macros.
11354
11355         * config/m32r/m32r.c: Fix compile time warnings.
11356         (int8_operand): New predicate function.
11357         (reg_or_cmp_int16_operand): New predicate function.
11358         (extend_operand): New predicate function.
11359         (m32r_adjust_code): New scheduling function.
11360         (m32r_adjust_priorty): New scheduling function.
11361         (m32r_sched_init): New scheduling function.
11362         (m32r_sched_reorder): New scheduling function.
11363         (m32r_sched_variable_issue): New scheduling function.
11364         (direct_return): New codegen function.
11365         (m32r_not_same_reg): New rtl testsing function.
11366
11367         * config/m32r/m32r.md: Fix compile time warnings.
11368         Add support for pre decrement and post increment memory
11369         references.
11370         Add S<cc> patterns.
11371         Add fabs patterns.
11372
11373 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11374
11375         * global.c (EXECUTE_IF_CONFLICT): Don't define.
11376         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
11377         (find_reg): Likewise.
11378
11379 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
11380
11381         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
11382         to avoid assembler errors.
11383
11384 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
11385
11386         * config/v850/v850-protos.h: New file: Prototypes for functions
11387         defined in v850.c
11388         * config/v850/v850.h: Move prototypes to v850-protos.h
11389         * config/v850/v850.c: Move prototypes to v850-protos.h
11390         * config/v850/v850.md: Fix compile time warnings.
11391
11392         * config/fr30/fr30-protos.h: New file: Prototypes for functions
11393         defined in fr30.c
11394         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
11395         * config/fr30/fr30.c: Fix compile time warnings.
11396         * config/fr30/fr30.md: Fix compile time warnings.
11397
11398 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
11399
11400         * tree.h (get_containing_scope): Declare it.
11401         * tree.c (get_containing_scope): New fucntion.
11402         (decl_function_context): Use it.
11403         * toplev.c (rest_of_compilation): Use get_containing_scope.
11404
11405 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11406
11407         * Makefile.in (rtl.o): Depend on toplev.h.
11408
11409 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
11410
11411         * cse.c (delete_trivially_dead_insns): Replace alloca with
11412         xmalloc/xcalloc.
11413         * except.c (update_rethrow_references): Likewise.
11414         (init_eh_nesting_info): Likewise.
11415         * function.c (identify_blocks): Likewise.
11416         * gcse.c (dump_hash_table): Likewise.
11417         * graph.c (print_rtl_graph_with_bb): Likewise.
11418         * loop.c (combine_movables): Likewise.
11419         (move_movables): Likewise.
11420         (count_loop_regs_set): Likewise.
11421         (strength_reduce): Likewise.
11422         * profile.c (compute_branch_probabilities): New function, split
11423         out from ...
11424         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
11425         * regclass.c (regclass): Likewise.
11426         * regmove.c (regmove_optimize): Likewise.
11427         * toplev.c (compile_file): Likewise.
11428         (main): Don't mess with the stack rlimit.
11429
11430 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
11431
11432         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
11433         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
11434
11435 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
11436
11437         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
11438
11439 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
11440
11441         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
11442         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
11443         macro expansion.
11444
11445 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
11446
11447         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
11448
11449 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
11450
11451         * gcse.c (post_dominators): Kill.
11452         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
11453         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
11454         pass in a pdom array since we do not need pdoms.
11455         * haifa-sched.c (schedule_insns): Similarly.
11456         * flow.c (compute_dominators): Remove dead function.
11457         (compute_flow_dominators): Do not compute doms or pdoms if the
11458         caller does not request them.  Split up loop to build doms and
11459         pdoms.  Use a worklist to compute doms and pdoms.
11460         * basic-block.h (compute_dominators): Remove prototype.
11461
11462 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
11463
11464         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
11465         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
11466         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
11467         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
11468         (cant_move, fed_by_spec_load, is_load_insn): Remove.
11469         (schedule_region): Remove unused variable.
11470         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
11471
11472 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
11473
11474         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
11475         (update_equiv_regs): Likewise.
11476         (block_alloc): Likewise.
11477         * reg-stack.c (reg_to_stack): Likewise.
11478         (convert_regs_2): Likewise.
11479         * reload1.c (reload_as_needed): Likewise.
11480
11481 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
11482
11483         * Makefile.in (dbxout.o): Depend on ggc.h.
11484         (dwarf2out.o): Likewise.
11485         (xcoffout.o): Likewise.
11486         * dbxout.c: Include ggc.h.
11487         (dbxout_init): Register lastfile as a root.
11488         * dwarf2out.c: Include ggc.h.
11489         (dwarf2out_line): Register lastfile as a root.
11490         * xcoffout.c: Include ggc.h.
11491         (xcoffout_source_line): Register xcoff_lastfile as a root.
11492
11493 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
11494
11495         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
11496
11497 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
11498
11499         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
11500         defined.
11501         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
11502
11503 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11504
11505         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
11506         (EXECUTE_IF_CONFLICT): Likewise.
11507         (ALLOCNO_LIVE_P): Avoid signed division.
11508         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
11509         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
11510         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
11511
11512 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
11513
11514         * haifa-sched.c (schedule_block): Don't crash if there's no
11515         next insn for an interblock movement.
11516         (add_branch_dependences): Don't allow clobber insns to move either.
11517
11518 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
11519
11520         * i386.c (split_xf): New.
11521         * i386-protos.h: Declare it.
11522         * i386.md (movxf_1): Add general regs alternatives.
11523         (movxf_1+1): New splitter for same.
11524
11525 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
11526
11527         * function.c (purge_addressof_1): Add missing return values.
11528
11529 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
11530
11531         * function.c (is_addressof): New function.  Returns true if
11532         the given piece of RTL is an ADDRESSOF.
11533         (purge_addressof_1): Make boolean.  Return false if the
11534         ADDRESSOFs could not be purged.
11535         (purge_addressof): If ADDRESSOFs could not be purged from the
11536         notes attached to an insn, remove the offending note(s),
11537         unless they are attached to a libcall.
11538
11539 1999-11-05  Andreas Jaeger  <aj@suse.de>
11540
11541         * genoutput.c (null_operand =): Initialize all fields.
11542
11543         * errors.h: Add extern to prototypes.
11544
11545 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
11546
11547         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
11548         * configure: Rebuilt.
11549
11550 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11551
11552         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
11553         (mirror_conflicts): New function.
11554         (global_alloc): Call it.
11555         (expand_preferences): Remove redundant CONFLICTP test.
11556         (find_reg, dump_conflicts): Likewise.
11557         (prune_preferences): Process conflicts one word at a time.
11558
11559 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
11560
11561         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
11562         instead of an explicit loop.
11563
11564 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
11565
11566         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
11567         if REG_RETVAL check succeeds, then put classp in src_elt.
11568
11569 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
11570
11571         * function.c (pad_to_arg_alignment): Only update argument_pad
11572         if the argument's alignment is greater than STACK_BOUNDARY.
11573
11574 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
11575
11576         * bitmap.h (BITMAP_XFREE): New.
11577         * flow.c (life_analysis): Use it.
11578         (life_analysis_1): Free blocks.
11579
11580         * combine.c (undo_commit): New.
11581         (try_combine): Use it.  Don't zap undobuf.undos.
11582         (combine_instructions): Don't zap undobuf.undos; free the
11583         undobuf.frees list.
11584
11585         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
11586
11587         * stmt.c (cost_table_): New.
11588         (estimate_case_costs): Use it instead of xmalloc.
11589
11590         * toplev.c (compile_file): Reuse dumpname memory instead
11591         of strdup'ing it.
11592
11593 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
11594
11595         * reg-stack.c (convert_regs_1): Initialize target_stack->top
11596         after verifying an EH edge.
11597
11598         * haifa-sched.c (init_rgn_data_dependences): Correctly
11599         size bb_pending_lists_length when zeroing.
11600
11601 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
11602
11603         * function.c (diddle_return_value): New.
11604         (expand_function_end): Use it.
11605         * stmt.c (expand_null_return): Likewise.
11606         (expand_value_return): Likewise.
11607
11608         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
11609
11610         * reload1.c (reload): Don't remove return value clobbers.
11611
11612 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
11613
11614         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
11615
11616 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
11617
11618         * cse.c (cse_main): Use xmalloc, not alloca.
11619         (cse_basic_block): Likewise.
11620         * local-alloc.c (local_alloc): Likewise.
11621
11622 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
11623                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11624
11625         * rtl.c: Include toplev.h.
11626         (fatal): Remove declaration.
11627
11628 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
11629
11630         * haifa-sched.c (schedule_block): Fix thinko.
11631
11632 1999-11-03  James McKelvey <mckelvey@fafnir.com>
11633
11634         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
11635         S_IR* defined values
11636
11637 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
11638
11639         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
11640         call `malloc' instead.
11641
11642 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
11643
11644         * flags.h (flag_renumber_insns): Declare.
11645         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
11646         renumbering table.
11647         * rtl.h (renumber_insns): Change prototype.
11648         * toplev.c (flag_renumber_insns): Define.
11649         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
11650
11651 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
11652
11653         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
11654         and fpsqrtd.  Use them and create fdiv function unit to more
11655         accurately represent fpu sqrt pipeline semantics on UltraSparc.
11656         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
11657
11658 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
11659
11660         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
11661         3 on UltraSparc.
11662         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
11663         insn into ready list, do not use just a raw swap.
11664
11665 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
11666
11667         * rtl.h (renumber_insns): New function.
11668         (remove_unnecessary_notes): Likewise.
11669         * emit-rtl.c (renumber_insns): Define.
11670         (remove_unncessary_notes): Likewise.
11671         * toplev.c (rest_of_compilation): Remove dead code.
11672         Use renumber_insns and remove_unncessary_notes.
11673
11674         * gcse.c (struct null_pointer_info): New type.
11675         (get_bitmap_width): New function.
11676         (current_block): Remove.
11677         (nonnull_local): Likewise.
11678         (nonnull_killed): Likewise.
11679         (invalidate_nonnull_info): Take a null_pointer_info as input.
11680         (delete_null_pointer_checks_1): New function.
11681         (delete_null_pointer_checks): Use it.
11682
11683         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
11684         (split_edges): Likewise.
11685         (schedule_block): Likewise.
11686         (compute_block_backward_dependencies): Likewise.
11687         (schedule_region): Likewise.
11688         (schedule_insns): Likewise.
11689
11690 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
11691
11692         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
11693         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
11694         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
11695         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
11696         * jump.c (delete_unreferenced_labels): Don't delete if
11697         LABEL_ALTERNATE_NAME is set.
11698         * print-rtl.c (print_rtx): Dump alternate name.
11699         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
11700         * rtl.h (LABEL_ALTERNATE_NAME): Define.
11701         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
11702         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
11703
11704 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11705
11706         * fix-header.c (recognized_extern, recognized_function): Constify
11707         a char*.
11708
11709         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
11710         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
11711         (compute_available): Remove unused variable `last'.
11712         (compute_nearerout): Remove unused variable `temp_bitmap'.
11713         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
11714         Remove unused variable `x'.
11715
11716         * scan.h (recognized_function, recognized_extern): Constify a
11717         char*.
11718
11719         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
11720
11721 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11722
11723         * varasm.c (decode_rtx_const): Use XSTR to access the string
11724         of a SYMBOL_REF.
11725
11726 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
11727
11728         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
11729
11730 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11731
11732         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
11733
11734 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
11735
11736         * pa.c (ireg_operand): New function.
11737         * pa.h (PREDICATE_CODES): Handle ireg_operand.
11738         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
11739         Fix out of date comment.
11740
11741         * pa.md (negdi2): Turn into expander + anonymous pattern.
11742
11743         * reload.c (find_reloads): Fix typos in recent change.
11744
11745         * dwarf2out.c: Do not include ctype.h.
11746
11747 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11748
11749         * regclass.c (record_reg_classes): Always use may_move_cost when
11750         seeing how operand fits with various register classes.
11751
11752 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
11753
11754         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
11755         * toplev.c: Revert Nov 1 13:22 change.
11756
11757 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
11758
11759         * config/pa/pa.md (height reduction patterns): Add checks for
11760         overlapping operands to avoid semantic-destroying splits for
11761         height reduction patterns.
11762
11763 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11764
11765         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
11766         have been an hyphen, fixed.
11767         * configure: Rebuilt.
11768
11769 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
11770
11771         * config/arm/tpe.h: Add prototypes for exported functions.
11772         * config/arm/pe.c: Fix compile time warnings.
11773         * config/arm/semi.h: Fix compile time warnings.
11774         * config/arm/arm.c: Fix compile time warnings.
11775         * config/arm/arm.h: Fix compile time warnings.
11776         * config/arm/arm.md: Fix compile time warnings.
11777         * config/arm/thumb.c: Fix compile time warnings.
11778         * config/arm/thumb.h: Fix compile time warnings.
11779         * config/arm/thumb.md: Fix compile time warnings.
11780
11781 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
11782
11783         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
11784         detection code
11785
11786         * unroll.c (unroll_loop): Remove LOOP notes when loop is
11787         completely unrolled.
11788
11789 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11790
11791         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
11792
11793 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
11794
11795         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
11796         * rtl.h (rtx_equal_p): Move prototype.
11797         * rtl.c (rtx_equal_function_value_matters): Move from
11798         rtlanal.c
11799         (rtx_equal_p): Likewise.
11800         * rtlanal.c (rtx_equal_function_value_matters): Delete.
11801         (rtx_equal_p): Likewise.
11802
11803 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
11804
11805         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
11806         ! HAS_INIT_SECTION.
11807
11808 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
11809
11810         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
11811
11812         * pa.h (ADDR_VEC_ALIGN): Define.
11813
11814         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
11815         notes when presented with "if (foo) break; end_of_loop" and
11816         the break sequence gets moved out of the loop.
11817
11818         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
11819         Remove explicit zero initializations of entries within MAP.
11820
11821 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
11822
11823         * reg-stack.c (convert_regs_1): Handle EH edges specially.
11824
11825 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
11826
11827         * bitmap.h (BITMAP_XMALLOC): New macro.
11828         * flow.c (CLEAN_ALLOCA): Remove.
11829         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
11830         (life_analysis): Likewise.
11831         (update_life_info): Don't use CLEAN_ALLOCA.
11832         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
11833         (calculate_global_regs_live): Likewise.
11834         (print_rtl_with_bb): Likewise.
11835         (verify_flow_info): Likewise.
11836         * global.c (global_alloc): Likewise.
11837         (global_conflicts): Likewise.
11838         * integrate.c (save_for_inline_nocopy): Likewise.
11839         (expand_inline_function): Likewise.
11840         * jump.c (jump_optimize_1): Likewise.
11841         (duplicate_loop_exit_test): Likewise.
11842         (thread_jumps): Likewise.
11843         * loop.c (loop_optimize): Likewise.
11844         (combine_givs): Likewise.
11845         (recombine_givs): Likewise.
11846         * reorg.c (dbr_schedule): Likewise.
11847         * unroll.c (unroll_loop): Likewise.
11848
11849         * combine.c (combine_instructions): Use xmalloc instead of alloca.
11850
11851 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
11852
11853         * toplev.c (rest_of_compilation): Don't optimize the CFG
11854         when rebuilding, just before dbr.
11855
11856 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11857
11858         * output.h (assemble_end_function, assemble_destructor,
11859         assemble_constructor, assemble_gc_entry, assemble_global,
11860         assemble_label, output_constant_pool) Constify a char*.
11861
11862         * varasm.c (assemble_destructor, assemble_constructor,
11863         assemble_gc_entry, assemble_end_function, assemble_global,
11864         assemble_label, output_constant_pool): Likewise.
11865
11866 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
11867
11868         * config/arm/thumb.c (thumb_expand_prologue): Add comments
11869         explaining what is goin on in this function.
11870
11871 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11872
11873         * regclass.c (record_reg_classes): In matching case, recompute
11874         costs since the direction of movement is different.
11875
11876 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
11877
11878         * resource.c (mark_target_live_regs): For unconditional branches,
11879         the resources found at the branch target should be added to the
11880         resources found so far, not intersected.
11881
11882 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
11883
11884         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
11885         old cpp's.
11886         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
11887         (sys/mman.h): Include this file only if #HAVE_MMAP.
11888         (run_compiles): Initialize `esac_fmt' with one old KR string, not
11889         with automatically concatenated ANSI strings.
11890
11891 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
11892
11893         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
11894         (DIV_ROUND_UP): Robustify.
11895         (ggc_recalculate_in_use_p): New function.
11896         (release_pages): Don't inline it.
11897         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
11898         outer contexts.
11899         (ggc_pop_context): Use ggc_recalculate_in_use_p.
11900         (clear_marks): Always save in_use_p.
11901         (sweep_pages): Use ggc_recalculate_in_use_p.
11902         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
11903         Release pages before counting statistics.
11904
11905 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
11906
11907         * toplev.c (rest_of_compilation): Fix thinko in this change:
11908
11909         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
11910
11911         (rest_of_compilation): If inside an inlined external function,
11912         pretend we are just being declared.
11913
11914 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
11915
11916         * flow.c (calculate_global_regs_live): Fix thinko.
11917
11918         * integrate.c (expand_inline_function): Fix bugs in previous
11919         change from Oct 28, 1999.
11920
11921 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
11922
11923         * stmt.c (expand_value_return): Fix typo in this change:
11924
11925         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11926         (expand_value_return): Correctly convert VAL when promoting function
11927         return; support RETURN_REG being a PARALLEL.
11928
11929 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
11930
11931         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
11932
11933 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11934
11935         * hard-reg-set.h (reg_names): Constify a char*.
11936
11937         * regclass.c  (reg_names): Likewise.
11938
11939         * regs.h (reg_names): Likewise
11940
11941         * a29k/a29k.c (reg_names): Delete declaration.
11942
11943         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
11944
11945         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
11946         arc_output_function_epilogue): Likewise.
11947
11948         * elxsi/elxsi.c (reg_names): Likewise.
11949
11950         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
11951
11952         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
11953         Likewise.
11954
11955         * m88k/m88k.c (output_function_profiler): Likewise.
11956
11957         * sparc/sparc.c (sparc_flat_output_function_prologue,
11958         sparc_flat_output_function_epilogue): Likewise.
11959
11960 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
11961
11962         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
11963         warning from -Wuninitialized and put it under -W.
11964         * function.c (uninitialized_vars_warning): Warn only when the
11965         corresponding flag is set.
11966
11967 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
11968
11969         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
11970         is nonzero and the single set does not have an elt, then assign
11971         it an elt.
11972
11973         * simplify-rtx.c: New file.
11974         * Makefile.in (OBJS): Add simplify-rtx.o
11975         (simplify-rtx.o): Add dependencies.
11976         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
11977         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
11978         (cse_gen_binary, simplify_unary_operation): Delete.
11979         (simplify_binary_operation, simplify_plus_minus): Likewise.
11980         (check_fold_consts, simplify_relation_operation): Likewise.
11981         (simplify_ternary_operation): Likewise.
11982         (delete_trivially_dead_insns): Simplify the contents of the
11983         REG_EQUAL note before trying to substitute it into the source
11984         of the reg-reg copy at the end of a libcall sequence.
11985
11986         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
11987         references/callers changed.
11988
11989         * mn10200.c (mn10200_va_arg): Force the return value into a
11990         register.
11991
11992         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
11993
11994         * cccp.c (macroexpand): Avoid out of range accesses for omitted
11995         arguments.
11996
11997 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
11998
11999         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
12000
12001 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
12002
12003         * fold-const.c (fold): Fix thinko when optimizing comparisons
12004         against -0.0.
12005
12006 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
12007
12008         * gcc.texi (Passes): Update front-end files to their current
12009         location.
12010
12011 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
12012
12013         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
12014         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
12015         (PREDICATE_CODES): Add addition_operation.
12016         * alpha-protos.h (addition_operation): Declare.
12017         (secondary_reload_class): Likewise.
12018         * alpha.c (addition_operation): New.
12019         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
12020         * alpha.md (adddi3): Turn into expander.
12021         (*lda, *adddi_2): New.
12022         (movsf, movdf patterns): Don't preference integer regs.
12023         (movsi, movdi patterns): Don't preference fp regs.
12024
12025 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
12026
12027         * genrecog.c (write_switch): Check for duplicate CODE cases.
12028
12029 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
12030
12031         * ggc-common.c: Update pre-function commentary.
12032         * ggc-page.c: Likewise.
12033         (poison): Remove.
12034         (poison_pages): Use memset directly.
12035         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
12036         (ggc_collect): Poison before sweeping.
12037         * ggc-simple.c: Update pre-function commentary.
12038         (ggc_alloc_obj): Poison non-zeroed memory.
12039
12040 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
12041
12042         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
12043         match format string, even on 64-bit hosts.
12044         * gcc-page.c (ggc_page_print_statistics): Likewise.
12045
12046 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
12047
12048         * config/i386/i386.c (ix86_cpu): Revert last patch.
12049         * config/i386/i386.h (ix86_cpu): Ditto.
12050
12051 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
12052
12053         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
12054         TYPE_SIZE, convert type of result to sizetype.
12055
12056 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
12057
12058         * flow.c (count_or_remove_death_notes): Equate NULL with the
12059         universal set.
12060
12061         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
12062         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
12063         dbr_schedule.
12064
12065         * i386.c (pic_label_no): Delete.
12066         (ix86_attr_length_default): Don't use single_set to peek
12067         inside a parallel.
12068
12069         * recog.c (peephole2_optimize): Allow recog_next_insn to index
12070         the first insn after bb->end.
12071         * i386.md (push mem peeps): Scratch is live after evaluation
12072         of the memory.
12073         (cmp mem peep): Similarly.
12074
12075 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
12076
12077         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
12078         * function.c (pad_to_arg_alignment): Add missing braces.
12079
12080 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12081
12082         * alpha/alpha-protos.h (literal_section): Add prototype.
12083         (alpha_need_linkage, alpha_start_function,alpha_end_function):
12084         Constify a char*.
12085
12086         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
12087         prototype.
12088         (alpha_start_function, alpha_end_function, float_strings,
12089         alpha_need_linkage): Constify a char*
12090
12091         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
12092
12093         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
12094
12095         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12096
12097         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
12098
12099 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12100
12101         * flow.c (debug_flow_info): Add prototype.
12102
12103         * gcc.c (main): Likewise.
12104
12105         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
12106         Likewise.
12107
12108         * reload1.c (failed_reload, set_reload_reg): Likewise.
12109
12110         * mips-tfile.c (main): Likewise.
12111         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
12112         with ATTRIBUTE_NORETURN.
12113
12114 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
12115
12116         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
12117         DECL is not a memory ref.
12118
12119 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
12120
12121         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
12122         * config/i386/i386.c (ix86_cpu): Add extern attribute.
12123
12124 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
12125
12126         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
12127         * config/mips/elf64.h: ditto.
12128
12129 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
12130
12131         * expr.c (emit_push_insn): New argument alignment_pad.
12132         Update all callers.  Adjust stack pointer based on alignment pad.
12133         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
12134         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
12135         (locate_and_pad_parm): New argument alignment_pad.  Update all
12136         callers.
12137         * expr.h (emit_push_insn): Update prototype.
12138         (locate_and_pad_parm): Update prototype.
12139         * calls.c (arg_data):  Add new field alignment_pad.
12140         (initialize_argument_information): Initialize alignment_pad.
12141
12142 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
12143
12144         * except.c (free_eh_nesting_info): Free the info itself.
12145         * function.c (free_after_compilation): Don't free NULL.
12146         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
12147         (pre_edge_insert): Free inserted.
12148         * stmt.c (free_stmt_status): Don't free NULL.
12149
12150 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
12151
12152         * gcov.c (DIR_SEPARATOR): Provide default.
12153         (output_data): Add test for MS-DOS format absolute filename.
12154         (fancy_abort): Correct program name.
12155         (open_files): Open all files in binary mode.
12156         * libgcc2.c (__bb_exit_func): Likewise.
12157
12158         * profile.c (init_branch_prob): Specify binary when opening files.
12159
12160         * flags.h (flag_unwind_tables): New decl.
12161         * toplev.c (flag_unwind_table): New definition.
12162         (f_options): Add -funwind-tables.
12163         (decode_g_option): Clarify warning when unknown -g option is given.
12164         (rest_of_compilation): If inside an inlined external function,
12165         pretend we are just being declared.
12166
12167         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
12168         (dwarf2out_frame_finish): Likewise.
12169
12170 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
12171
12172         * fold-const.c (merge_ranges): If not in0, but in1, handle
12173         upper bounds equal like subset case.
12174
12175 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
12176
12177         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
12178         passed in a register but moved to the stack.
12179
12180 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
12181
12182         * gcc.c (pass_exit_codes, greatest_status): New variables.
12183         (struct option_map): Add entry for "--pass-exit-codes".
12184         (execute): Update greatest_status if error.
12185         (display_help): Add documentation for -pass-exit-codes.
12186         (process_command): Handle -pass-exit-codes.
12187         (main): Look at pass_exit_codes and greatest_status on call to exit.
12188
12189 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12190
12191         * reload.c (find_reloads): Refine test for no input reload
12192         case to not includes reloads emitted after insn.
12193
12194         * function.c (find_temp_slots_from_address): Handle sum involving
12195         a register that points to a temp slot.
12196         (update_temp_slot_address): Make recursive call if both old and
12197         new are PLUS with a common operand.
12198         * calls.c (expand_call): Mark temp slot for result as having
12199         address taken.
12200
12201         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
12202
12203         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
12204         component as well as "BINUTILS".
12205
12206         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
12207         * integrate.c (copy_rtx_and_substitute): Likewise.
12208         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
12209         All callers changed.
12210         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
12211
12212         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
12213         gdb extensions, write size of type; also be more consistent
12214         in using references when this is a subtype.
12215
12216         * pa.md (extv, extzv, insv): Use define_expand to reject constant
12217         that is out of range.
12218
12219         * loop.c (unknown_constant_address_altered): New variable.
12220         (prescan_loop): Initialize it.
12221         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
12222         (invariant_p, case MEM): Remove handling for volatile and readonly;
12223         check new variable if readonly.
12224         (check_dbra_loop): Chdeck unknown_constant_address_altered.
12225
12226         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
12227         (addr_affects_sp_p): Removed from note_mem_written and only
12228         define #ifdef AUTO_INC_DEC.
12229
12230         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
12231
12232         * regclass.c (record_reg_classes): Properly handle register move
12233         directions.
12234
12235         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
12236         Don't think valid if both operands are invalid.
12237         (struct constant_descriptor): New field RTL.
12238         (mark_const_hash_entry): Mark it.
12239         (record_constant{,_rtx}): Initialize it.
12240         (output_constant_def): Allocate RTL in permanent obstack and
12241         save in table.
12242         ({record,compare}_constant_1): Modes must match for
12243         CONSTRUCTOR of ARRAY_TYPE.
12244
12245         * c-common.h (initializer_constant_valid_p): Delete decl from here.
12246         * output.h (initializer_constant_valid_p): Move decl to here.
12247         * c-common.c (initializer_constant_valid_p): Delete function from here.
12248         * varasm.c (initializer_constant_valid_p): Move function to here.
12249
12250         * tree.h (STRIP_SIGN_NOPS): New macro.
12251         * fold-const.c (optimize_minmax_comparison): New function.
12252         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
12253         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
12254         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
12255         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
12256         widening conversions.
12257         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
12258         to look at size of mode, not precision of type; also add missing cases.
12259         (optimize_bit_field_compare, decode_field_reference): Don't try to
12260         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
12261
12262         * dwarf2out.c (ctype.h): Include.
12263         (dwarf2out_set_demangle_name_func): New function.
12264         (size_of_line_info): Deleted.
12265         (output_line_info): Compute size of line info table from difference
12266         of labels.
12267         (base_type_die, add_name_attribute): Call demangle function, if any.
12268         (field_byte_offset): Use bits per word for variable length fields.
12269         (gen_array_type_die): Add array name.
12270         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
12271         (dwarf2out_add_library_unit_info): New function.
12272
12273         * explow.c (set_stack_check_libfunc): New function.
12274         (stack_check_libfunc): New static variable.
12275         (probe_stack_range): Allow front-end to set up a libfunc to call.
12276
12277         * combine.c (simplify_comparison): When making comparison in wider
12278         mode, check for having commuted an AND and a SUBREG.
12279         (contains_muldiv): New function.
12280         (try_combine): Call it when dividing a PARALLEL.
12281         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
12282         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
12283         a PLUS.
12284         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
12285         use one of the CLOBBERs instead.
12286         (if_then_else_cond): If comparing against zero, just return thing
12287         being compared.
12288
12289         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
12290         Don't generate shifts and subtract if have conditional arithmetic.
12291
12292         * rtl.h (delete_barrier): New declaration.
12293         * jump.c (jump_optimize): Set up to handle conditional call.
12294         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
12295         (delete_barrier): New function.
12296
12297         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
12298
12299         * recog.c (nonmemory_operand): Accept ADDRESSOF.
12300
12301         * tree.c (build_type_attribute_variant): Push to obstack of
12302         ttype around type_hash_canon call.
12303
12304         * expr.c (placeholder_list): Move decl to file scope.
12305         (expand_expr): Don't force access to volatile just because its
12306         address is taken.
12307         If ignoring reference operations, just expand the operands.
12308         (expand_expr, case COMPONENT_REF): Propagate
12309         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
12310         Refine test for using bitfield operations vs pointer punning.
12311         (expand_expr, case CONVERT_EXPR): If converting to
12312         BLKmode UNION_TYPE from BLKmode, just return inner object.
12313         Use proper mode in store_field call.
12314         Properly set sizes of object to store and total size in store_field
12315         call for convert to union.
12316         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
12317         memory (like for ADDR_EXPR).  Also, don't put constant in register if
12318         we'll want it in memory.
12319         (readonly_fields_p): New function.
12320         (expand_expr, case INDIRECT_REF): Call it if LHS.
12321         (expand_assignment): Handle a RESULT_DECL where
12322         DECL_RTL is a PARALLEL.
12323         (do_jump, case WITH_RECORD_EXPR): New case.
12324         (get_inner_reference): Always go inside a CONVERT_EXPR
12325         and NOP_EXPR if both modes are the same.
12326         (store_field): Use bitfield operations if size of bitsize is not same
12327         as size of RHS's type.
12328         Check for bitpos not a multiple of alignment in BLKmode case.
12329         Do block move in largest possible alignment.
12330         (store_constructor): Set BITSIZE to -1 for variable size and properly
12331         in case of array of BLKmode.
12332         (expand_expr_unaligned): New function.
12333         (do_compare_and_jump): Call it.
12334
12335         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
12336         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
12337         does not include 'o'.
12338
12339         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
12340         both SET_DEST and SET_SRC reference a virtual register.
12341         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
12342
12343         * integrate.c (expand_inline_function): Handle case of setting
12344         virtual stack vars register (from built in setjmp); when parameter
12345         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
12346         (subst_constant): Add new parm, MEMONLY.
12347         (expand_inline_function, integrate_parm_decls): Pass new parm.
12348         (integrate_decl_tree): Likewise.
12349         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
12350         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
12351         (copy_rtx_and_substitute, case SET): Add explicit calls to
12352         copy_rtx_and_substitute for both sides.
12353
12354         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
12355         constraints.
12356         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
12357         within INDEX_TYPE, instead of before.
12358         (fixup_gotos): Use f->target_rtl, not the next insn,
12359         since latter may be from a later fixup.
12360         (expand_value_return): Correctly convert VAL when promoting function
12361         return; support RETURN_REG being a PARALLEL.
12362         (expand_return): When checking for result in regs and having
12363         cleanup, consider PARALLEL in DECL_RTL as being in regs.
12364
12365 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
12366
12367         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
12368         last_nominal_fname): Mark const.
12369         (struct include_hash: name, nshort, control_macro): Mark
12370         const.
12371         (struct macrodef: symnam): Mark const.
12372         (struct if_stack: fname): Mark const.
12373         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
12374         (IStable): New character-syntax array which encompasses all
12375         the old is_foo arrays.
12376         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
12377         is_space): New macros for interrogating IStable.
12378         (check_macro_name): Kill last argument.  All callers changed.
12379
12380         * cppinit.c (initialize_char_syntax): Delete.
12381         (is_idchar, is_idstart, is_hor_space, is_space,
12382         trigraph_table): Delete.
12383         (IStable): New.  Initialize with clever macros to avoid
12384         information duplication.
12385         (builtin_array): Table of builtins to get rid of explicit list
12386         in initialize_builtins.
12387         (initialize_builtins): Use builtins_array.
12388         (cpp_start_read): Call init_IStable, and set IStable['$'] if
12389         opts->dollars_in_ident.
12390
12391         * cppexp.c: Change all refs to is_xyz[] arrays to use new
12392         is_xyz() macros.
12393         (cpp_parse_expr): Avoid 'format string is not constant'
12394         warning. Use ISGRAPH to identify printable chars.
12395         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
12396         is_xyz() macros.
12397         (read_and_prescan): Map trigraphs to chars with open-coded
12398         if-else-if-... sequence, not a lookup table.
12399         * cpphash.c: Change all refs to is_xyz[] arrays to use new
12400         is_xyz() macros.
12401         * cpplib.c: Change all refs to is_xyz[] arrays to use new
12402         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
12403         (check_macro_name): Remove ability to report an invalid
12404         assertion name, which is never used.
12405         (do_line): Constify a couple of char *'s.
12406         * cppmain.c (main): Call cpp_cleanup before returning.
12407
12408 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
12409
12410         * ggc.h (struct ggc_statistics): New type.
12411         (ggc_get_size): New function.
12412         (ggc_print_statistics): Likewise.
12413         * ggc-common.c (ggc_stats): New variable.
12414         (ggc_mark_rtx_children): Keep statistics.
12415         (ggc_mark_tree_children): Likewise.
12416         (ggc_print_statistics): New function.
12417         * ggc-page.c (struct globals): Add bytes_mapped field.
12418         (alloc_anon): Update it.
12419         (release_pages): Likewise.
12420         (ggc_get_size): New function.
12421         (ggc_page_print_statistics): New function.
12422         * ggc-simple.c (ggc_get_size): New function.
12423
12424 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
12425
12426         * flow.c (propagate_block): When the last reference to a label
12427         before an ADDR_VEC is deleted because the reference is a dead
12428         store, delete the ADDR_VEC.
12429
12430 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
12431
12432         * resource.c (find_free_register): Don't use the frame pointer
12433         if frame_pointer_needed.
12434
12435 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
12436
12437         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
12438         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
12439
12440         * config/i960/i960.c (i960_va_start): New locals base, num.
12441         Use INDIRECT_REF instead of ARRAY_REF on valist.
12442         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
12443
12444 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
12445
12446         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
12447
12448 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
12449
12450         * tree.def (PLACEHOLDER_EXPR): Update comments.
12451
12452 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12453
12454         * c-common.c (check_format_info): Avoid non-literal format string
12455         warnings when `first_arg_num' is zero.
12456
12457 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12458
12459         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
12460
12461 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
12462
12463         * arm.md (casesi_insn): Add a clobber of the condition code
12464         register.
12465
12466 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
12467
12468         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
12469         used by both cc1 and cc1plus.
12470
12471 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
12472
12473         * config/arm/arm.c: Initialise arm_structure_size_boundary to
12474         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
12475         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
12476         to the value 32 if it has not already been defined.
12477         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
12478         Override definition in arm.h with a value of 8.
12479
12480 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
12481
12482         * c-pragma.c (push_alignment): Don't check the return value
12483         of xmalloc.
12484
12485 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
12486
12487         * sparc.h (ADJUST_COST): Fix thinko.
12488
12489 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
12490
12491         * cccp.c (rescan): Fixed obp pointer handling around call to
12492         check_expand subroutine.
12493
12494 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
12495
12496         * gcse.c (delete_null_pointer_checks): Only record non-null info
12497         for pseudos when examining stores.
12498
12499         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
12500         splitters for these patterns.  Use "#" for output templates.
12501         (addsi3_carryin_shift): New pattern.
12502
12503 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
12504
12505         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
12506         of the function return register into a plain REG until
12507         after function inlining is done.
12508
12509 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
12510
12511         * jump.c (jump_optimize_1): If we did cross-jumping, and
12512         the data will matter, rebuild the CFG.
12513         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
12514         not optimizing.  Don't run shorten_branches.
12515         * toplev.c (rest_of_compilation): Run shorten_branches after
12516         reg_to_stack.
12517
12518 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
12519
12520         * rtl.h (note_stores): Add additional paramter.
12521         * rtlanal.c (reg_set_p_1): Take additional paramter.
12522         (reg_set_last_1): Likewise.
12523         (reg_set_p): Adjust call to note_stores.
12524         (reg_set_last): Likewise.
12525         (note_stores): Pass data parameter to worker function.
12526         * alias.c (record_set): Take additional parameter.
12527         (init_alias_analysis): Pass it.
12528         * caller-save.c (mark_set_regs): Take additional parameter.
12529         (save_call_clobbered_regs): Pass NULL to note_stores.
12530         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
12531         parameter.
12532         (record_dead_and_set_regs_1): Likewise.
12533         (reg_dead_at_p_1): Likewise.
12534         (combine_instructions): Adjust calls to note_stores.
12535         (try_combine): Likewise.
12536         (record_dead_insn): Remove.
12537         (record_dead_and_set_regs): Adjust calls to note_stores.
12538         (reg_dead_at_p): Likewise.
12539         * cse.c (invalidate_skipped_set): Take additional parameter.
12540         (cse_check_loop_start): Likewise.
12541         (cse_check_loop_start_value): Remove.
12542         (cse_set_around_loop): Adjust calls to note_stores.
12543         * flow.c (notice_stack_pointer_modification): Take additional
12544         parameter.  Remove duplicate declaration.
12545         (record_volatile_insns): Adjust calls to note_stores.
12546         * gcse.c (record_set_info): Take additional parameter.
12547         (record_last_set_info): Likewise.
12548         (invalidate_nonnull_info): Likewise.
12549         (record_set_insn): Remove.
12550         (compute_sets): Adjust calls to note_stores.
12551         (last_set_insn): Remove.
12552         (compute_hash_table): Adjust calls to note_stores.
12553         (insert_insn_end_bb): Likewise.
12554         (delete_null_pointer_checks): Likewise.
12555         * global.c (mark_reg_store): Take additional parameter.
12556         (mark_reg_clobber): Likewise.
12557         (reg_becomes_live): Likewise.
12558         (global_conflicts): Adjust calls to note_stores.
12559         (build_insn_chain): Likewise.
12560         * integrate.c (note_modified_parmregs): Take additional parameter.
12561         (mark_stores): Likewise.  Make it static.
12562         (save_for_inline_nocopy): Adjust calls to note_stores.
12563         (try_constants): Likewise.
12564         * integrate.h (mark_stores): Remove declaration.
12565         * jump.c (mark_modified_reg): Take additional parameter.
12566         (thread_jumps): Adjust calls to note_stores.
12567         * local-alloc.c (validate_equiv_mem_from_store): Take additional
12568         parameter.
12569         (no_equiv): Likewise.
12570         (reg_is_set): Likewise.
12571         (validate_equiv_mem): Adjust calls to note_stores.
12572         (update_equiv_regs): Likewise.
12573         (block_alloc): Likewise.
12574         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
12575         (note_addr_stored): Take additional parameter.
12576         (note_set_pseudo_multiple_uses): Likewise.
12577         (record_initial): Likewise.
12578         (prescan_loop): Adjust calls to note_stores.
12579         (strength_reduce): Likewise.
12580         (check_dbra_loop): Likewise.
12581         * regmove.c (flags_set_1): Take additional paramter.
12582         (mark_flags_life_zones): Adjust calls to note_stores.
12583         * reload1.c (mark_not_eliminable): Take additional parameter.
12584         (forget_old_reloads_1): Likewise.
12585         (reload_cse_invalidate_rtx): Likewise.
12586         (reload_cse_check_clobber): Likewise.
12587         (reload_combine_note_store): Likewise.
12588         (move2add_note_store): Likewise.
12589         (reload): Adjust calls to note_stores.
12590         (reload_as_needed): Likewise.
12591         (emit_reload_insns): Likewise.
12592         (reload_cse_regs_1): Likewise.
12593         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
12594         (reload_combine): Adjust calls to note_stores.
12595         * resource.c (update_live_status): Take additional paramter.
12596         (mark_target_live_regs): Adjust calls to note_stores.
12597         * stupid.c (find_clobbered_regs): Take additional parameter.
12598         (stupid_life_analysis): Adjust calls to note_stores.
12599
12600 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
12601
12602         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
12603         definition.
12604
12605         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
12606         definition.
12607
12608         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
12609         of the variable arm_structure_size_boundary.
12610
12611 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
12612
12613         * alias.c (init_alias_analysis): Allocate reg_known_value and
12614         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
12615         and reg_seen.
12616         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
12617         * cse.c (cse_main): Call end_alias_analysis.
12618         * haifa-sched.c (schedule_insns): Likewise.
12619         * local-alloc. (update_equiv_regs): Likewise.
12620         * reload1.c (reload_cse_regs): Likewise.
12621
12622 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12623
12624         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
12625         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
12626         mapping from MASK_FPU.
12627
12628 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
12629
12630         * sparc.md (call): Don't bound structure return size to 0xfff.
12631
12632 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
12633
12634         * resource.c (mark_target_live_regs): Check that the target
12635         insn wasn't created after compute_bb_for_insn.
12636
12637 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
12638
12639         * ggc-page.c (poison_pages): Don't be overzealous.
12640
12641 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
12642
12643         * alias.c: Update comments for ADDRESS.
12644         (nonlocal_reference_p): Look inside the ADDRESS to determine if
12645         it is a local memory reference.
12646
12647         * c-typeck.c (build_function_call): Check that the built-in
12648         function is of class BUILT_IN_NORMAL before trying to recongize
12649         it as BUILT_IN_ABS.
12650         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
12651         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
12652
12653 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
12654
12655         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
12656         of alloca.
12657         (pre_gcse): Likewise.
12658         (hoist_expr_reaches_here_p): Likewise.
12659         (hoist_code): Likewise.
12660         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
12661         code to ...
12662         (pre_expr_reaches_here_p_work): ... here.
12663         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
12664         code to ...
12665         (expr_reaches_here_p_work): ... here.
12666
12667 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
12668
12669         * resource.c (find_basic_block): Delete.
12670         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
12671         (init_resource_info): Call compute_bb_for_insn.
12672
12673 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
12674
12675         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
12676         with already adjacent blocks, but no fallthru.
12677         (merge_blocks_move_successor_nojumps): Simplify.
12678         (debug_flow_info): New.
12679
12680         * toplev.c (rest_of_compilation): Open jump1 dump file before
12681         jump and close after, as opposed to just using dump_rtl.
12682
12683 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12684
12685         * reload.h (earlyclobber_operand_p): Declare.
12686         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
12687         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
12688         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
12689         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
12690
12691 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
12692                           Richard Henderson  <rth@cygnus.com>
12693
12694         * emit-rtl.c (emit_block_insn_before): New.
12695         (emit_block_insn_after): New.
12696         * basic-block.h: Declare them.
12697
12698         * bitmap.h: Protect from multiple inclusion.
12699
12700         * recog.c (scratch_operand): Handle VOIDmode correctly.
12701
12702         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
12703
12704         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
12705         * function.c (assign_parms): Likewise.
12706         * global.c (global_conflicts): Clarify STACK_REGS commentary.
12707
12708         * reg-stack.c (max_uid): Remove.
12709         (blocks, block_begin, block_end, block_drops_in): Remove.
12710         (block_stack_in, block_out_reg_set, block_number): Remove.
12711         (struct block_info_def, BLOCK_INFO): New.
12712         (enum emit_where): New.
12713         (current_block): New.
12714         (BLOCK_NUM): Remove.
12715         (mark_regs_pat, record_label_references): Remove.
12716         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
12717         (nan): New.
12718         (goto_block_pat, print_blocks, dump_stack_info): Remove.
12719         (reg_to_stack): Simplified test for existance of fp code.  Use
12720         flow.c code.  Call shorten_branches after cross-jump opt.
12721         (check_asm_stack_operands): Renamed from record_asm_reg_life.
12722         Return false if the asm doesn't use stack regs.  Don't do life
12723         analysis on the asm.
12724         (emit_pop_insn): Replace function pointer arg `when' with
12725         enum `where'.  Update all callers.
12726         (change_stack): Likewise.  Update basic block end.
12727         (emit_swap_insn): Use current_block->head to limit reverse search
12728         for start of block.  Use emit_block_insn_after.
12729         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
12730         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
12731         structure assignment instead of bcopy.
12732         (print_stack): New.
12733         (convert_regs_entry, convert_regs_exit): New.
12734         (convert_regs_1, convert_regs_2): Split out from convert_regs.
12735         Work on basic blocks and the CFG.
12736         (convert_regs): Use them.
12737
12738         * i386.c (output_fix_trunc): Remove code for DImode input operand
12739         not at top-of-stack.
12740         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
12741         appropriate mode.
12742         (fix_truncdi_1): Allow any mode scratch.
12743
12744 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
12745
12746         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
12747         * linux.h, netbsd.h, vms.h: Not here.
12748
12749 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
12750
12751         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
12752         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
12753         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
12754         CONDITIONAL_REGISTER_USEAGE): Use them.
12755         * config/mips/mips.c (mips_move_1word,mips_move_2words,
12756         gen_conditional_branch,override_options) : Use them.
12757         * config/mips/mips.md : Use them.
12758
12759 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
12760
12761         * i386.md (zero_extendqihi2): Use SImode register name with andl.
12762
12763 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
12764
12765         * integrate.c (function_cannot_inline_p): Don't allow inlining
12766         if setjmp is used.
12767
12768 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12769
12770         * c-parse.in (cast_expr): Constify.
12771
12772         * cccp.c (special_symbol): Likewise.
12773
12774         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
12775
12776         * dwarf2out.c (base_type_die): Likewise.
12777
12778         * global.c (allocno_compare): Likewise.
12779
12780         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
12781
12782         * regclass.c (fix_register): Likewise.
12783
12784         * rtl.h (fix_register): Likewise.
12785
12786         * stupid.c (stupid_reg_compare): Likewise.
12787
12788         * toplev.c (decode_f_option): Likewise.
12789
12790         * tree.c (build_complex_type): Likewise.
12791
12792 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
12793
12794         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
12795
12796 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12797
12798         * reload.c (find_reloads): Compute mode and nregs fields of all
12799         reloads.
12800         * reload1.c (calculate_needs_all_insns): Simplify a bit.
12801         (calculate_needs): Use precomputed mode/nregs values.
12802         (allocate_reload_reg): Likewise.
12803         Break out two...
12804         (failed_reload, set_reload_reg): ... new functions.
12805         (choose_reload_regs_init): New function, mostly broken out from...
12806         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
12807         Also lose one #if 0 block.
12808
12809 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
12810
12811         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
12812         substitution.
12813
12814 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
12815
12816         * tree.h (BLOCK_TYPE_TAGS): Remove.
12817         (BLOCK_END_NOTE): Likewise.
12818         (BLOCK_LIVE_RANGE_FLAG): Likewise.
12819         (BLOCK_LIVE_RANGE_START): Likewise.
12820         (BLOCK_LIVE_RANGE_END): Likewise.
12821         (tree_block): Remove live_range_flag, live_range_var_flag, and
12822         type_tags.  Remove end_note, live_range_start, and live_range_end.
12823         (remember_end_note): Remove prototype.
12824         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
12825         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
12826         remember_end_note.
12827         * ggc-common.c (ggc_mark_tree_children): Don't mark
12828         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
12829         * integrate.c (adjust_copied_decl_tree): Remove.
12830         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
12831         * stmt.c (last_block_end_note): Remove.
12832         (init_stmt): Don't add a GC root for it.
12833         (expand_fixup): Don't set it.
12834         (remember_end_note): Remove.
12835         (expand_end_bindings): Don't set last_block_end_note.
12836
12837 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12838
12839         * reload1.c (reload_reg_free_for_value_p): Show
12840         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
12841         reloads.
12842
12843 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
12844
12845         * expmed.c (extract_bit_field): Allow for the case of non-integer
12846         objects that are smaller than a word (like SFmode on a 64-bit
12847         machine).
12848
12849         * loop.c (basic_induction_var): A non-integer variable which is
12850         being set by a paradoxical subreg is probably not a biv.
12851
12852 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12853
12854         * prefix.c (translate_name) Check for empty prefix string.
12855
12856 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
12857
12858         * Makefile.in (CPP_CROSS_NAME): New variable.
12859         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
12860         xcpp.
12861         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
12862         names of the files to be uninstalled.
12863
12864 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
12865
12866         * collect2.c (IS_DIR_SEPARATOR): Define.
12867         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
12868
12869         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
12870         functions too.
12871
12872         * haifa-sched.c (add_dependence): Update the true dependency
12873         cache the first time we add a true dependence to the LOG_LINKS chain.
12874
12875 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
12876
12877         * fold-const.c (fold): Fix comment.
12878
12879 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12880
12881         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
12882         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
12883         dbxout_start_new_source_file, dbxout_source_file,
12884         dbxout_source_line, dbxout_finish, dbxout_type_fields,
12885         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
12886         Constify a char*.
12887         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
12888         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
12889         (dbxout_block): Initialize variable `blocknum'.
12890
12891         * dbxout.h (dbxout_init, dbxout_finish,
12892         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
12893         dbxout_args, dbxout_source_line): Constify a char*.
12894
12895         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
12896         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
12897         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
12898         low_pc_attribute, high_pc_attribute, body_begin_attribute,
12899         body_end_attribute, comp_dir_attribute, sf_names_attribute,
12900         src_info_attribute, mac_info_attribute, producer_attribute,
12901         lookup_filename, generate_macinfo_entry, fundamental_type_code,
12902         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
12903         dwarfout_undef): Constify a char*.
12904         (add_incomplete_type, retry_incomplete_types): Add prototypes.
12905
12906         * dwarfout.h (dwarfout_define, dwarfout_undef,
12907         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
12908
12909 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
12910
12911         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
12912         (MULTILIB_ISA_DEFAULT): New.
12913         (MULTILIB_DEFAULTS): Use it.
12914         * config/mips/mips.c (): Remove the now unnecessary definition
12915         of MIPS_ISA_DEFAULT.
12916         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
12917         unnecessary definition.
12918
12919 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
12920
12921         * arm.md (pic_load_addr): Add constraints to operand 1.
12922
12923 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
12924
12925         * fixinc/genfixes:  Provide a means for specifying -D options to
12926         AutoGen
12927
12928 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
12929
12930         * arm.c (arm_override_options): Correct initialization of
12931         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
12932         arm_is_strong, and arm_is_6_or_7.
12933
12934         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
12935         (note_set_pseudo_multiple_uses): New function.
12936         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
12937         if a pseudo set in the loop exit is used elsewhere.
12938
12939 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
12940
12941         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
12942
12943 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
12944
12945         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
12946         a single load-address pattern.
12947
12948 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
12949
12950         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
12951         depending on whether or not line-number notes are present.
12952
12953 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12954
12955         * cccp.c (progname, file_buf, default_include, include_file,
12956         macrodef, definition, hashval, wchar_type, user_label_prefix,
12957         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
12958         expand_to_temp_buffer, is_system_include, base_name,
12959         absolute_filename, read_name_map, open_include_file,
12960         record_control_macro, check_precompiled, check_preconditions,
12961         pcfinclude, pass_thru_directive, create_definition,
12962         check_macro_name, comp_def_part, collect_expansion,
12963         check_assertion, read_token_list, assertion_install,
12964         assertion_lookup, eval_if_expression, conditional_skip,
12965         validate_else, skip_quoted_string, quote_string, macarg1,
12966         error_from_errno, install, lookup, hashf, dump_defn_1,
12967         perror_with_name, pfatal_with_name, main, trigraph_pcp,
12968         check_white_space, rescan, handle_directive, monthnames,
12969         special_symbol, do_include, remap_include_file, write_output,
12970         arglist, do_assert, do_unassert, do_line, do_error, do_once,
12971         do_ident, do_sccs, do_xifdef, skip_if_group,
12972         output_line_directive, macroexpand, macarg, change_newlines,
12973         initialize_builtins, make_definition): Constify a char*.
12974
12975         * pcp.h (stringdef): Likewise.
12976
12977 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
12978
12979         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
12980         not of pattern.
12981
12982 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
12983                           Richard Henderson  <rth@cygnus.com>
12984
12985         * alias.c: Include ggc.h.
12986         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
12987         (record_set): Verify enough room in reg_base_value.
12988         (init_alias_analysis): Allocate reg_base_value with xcalloc.
12989         Register it as a GC root.
12990         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
12991         * Makefile.in (alias.o): Depend on ggc.h.
12992
12993         * unroll.c (unroll_loop): Verify the insn before a barrier
12994         is a JUMP_INSN before checking JUMP_LABEL.
12995
12996 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12997
12998         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
12999         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
13000         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
13001         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
13002         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
13003         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
13004
13005 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13006
13007         * output.h (ctors_section, dtors_section, bss_section): Prototype.
13008
13009         * alpha/alpha-interix.h (text_section): Delete prototype.
13010         * alpha/elf.h (text_section): Likewise.
13011         * arm/linux-elf.h (text_section): Likewise.
13012         * arm/linux-telf.h (text_section): Likewise.
13013         * c4x/c4x.h (text_section): Likewise.
13014         * dsp16xx/dsp16xx.h (bss_section): Likewise.
13015         * elfos.h (text_section): Likewise.
13016         * i386/aix386ng.h (text_section): Likewise.
13017         * i386/i386-interix.h (text_section): Likewise.
13018         * i386/sco5.h (text_section): Likewise.
13019         * i386/svr3gas.h (text_section): Likewise.
13020         * nextstep.h (text_section): Likewise.
13021         * psos.h (text_section): Likewise.
13022         * ptx4.h (text_section): Likewise.
13023         * svr3.h (text_section): Likewise.
13024         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
13025
13026 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13027
13028         * final.c (peephole): Delete prototype.
13029
13030         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
13031         (pre_insert_copies): Remove unused variable `bb'.
13032
13033         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
13034         prototypes.
13035
13036         * output.h (peephole): Add prototype.
13037
13038 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
13039
13040         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
13041         -O0.
13042
13043 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
13044
13045         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
13046         for inlined declarations.
13047
13048 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
13049
13050         * arm.c (logical_binary_operator): New fucntion.
13051         * arm.h (logical_binary_operator): Declare it.
13052         (PREDICATE_CODES): Handle logical_binary_operator.
13053         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
13054         output constraints.  Add appropriate splitters.
13055         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
13056         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
13057         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
13058
13059 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13060
13061         * genoutput.c (struct operand_data): New elt eliminable.
13062         (output_operand_data): Write it.
13063         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
13064         (compare_operands): Take it into account.
13065         * recog.h (struct insn_operand_data): New elt eliminable.
13066         * reload1.c (check_eliminable_occurrences, elimination_effects): New
13067         functions.
13068         (old_asm_operands_vec, new_asm_operands_vec): Delete.
13069         (eliminate_regs): Move code that detects changes to elimination
13070         target regs into new function elimination_effects.
13071         Delete one #if 0 block.
13072         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
13073         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
13074         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
13075         Only call eliminate_regs for real operands of the insn, not for parts
13076         of its structure or parts matched by things like match_operator.
13077         Use elimination_effects and check_eliminable_occurrences.  Use
13078         copy_insn to duplicate the pattern when not in the final pass.
13079
13080 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
13081
13082         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
13083         and fld.
13084
13085 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
13086
13087         * fixinc/README: document the "mach" machine matching test
13088         * fixinc/fixfixes.c: Implement the #else/#endif label fix
13089         * fixinc/fixtests.c: Implement the #else/#endif label test
13090         * fixinc/inclhack.def: utilize these tests and fixes
13091         * fixinc/inclhack.sh:  regen
13092         * fixinc/fixincl.x:  regen
13093         * fixinc/fixincl.sh:  regen
13094
13095 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
13096
13097         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
13098         depend on ggc.h.
13099
13100 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
13101
13102         * gcc.1: Document exit codes.
13103
13104 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13105
13106         * calls.c: Include tm_p.h later, so everything we need is defined.
13107         * expr.c: Likewise.
13108         * function.c: Likewise.
13109
13110         * except.c: Include tm_p.h.
13111
13112         * sparc.c: Likewise.
13113         (dwarf2out_cfi_label): Don't prototype.
13114         (check_return_regs, epilogue_renumber,
13115         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
13116         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
13117         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
13118         ultra_schedule_insn): Add static prototype.
13119         (data_segment_operand, text_segment_operand): Call itself with the
13120         proper number of arguments.
13121         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
13122
13123         * sparc.h: Move all declarations to sparc-protos.h.
13124         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
13125         symbolic_operand.
13126
13127         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
13128
13129         * config/svr4.h (text_section, ctors_section, dtors_section): Add
13130         Prototypes.
13131         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
13132         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
13133         ASM_OUTPUT_ASCII): Constify a char*.
13134
13135         * sparc-protos.h: New file for sparc prototypes.
13136
13137 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13138
13139         * function.c (record_insns, contains): Always declare and define.
13140         (record_insns): Mark with ATTRIBUTE_UNUSED.
13141
13142 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13143
13144         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
13145         to .section when outputting a .bss section to deal with multiple
13146         .bss input sections (as happens with -fdata-sections)
13147         Also output %progbits, not @progbits so the assembler doesn't treat as
13148         a comment.
13149         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
13150
13151         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
13152         thumb parts even when building with non-thumb CPUs, by forcing
13153         thumb mode.
13154
13155 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
13156
13157         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
13158         (movdf_const_intreg_sp64): Similarly.
13159
13160         * local-alloc.c (update_equiv_regs): Check the correct insn
13161         for pre-existing REG_EQUIV notes.
13162
13163 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
13164
13165         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
13166         block reached by a branch if we're not going to actually process
13167         this block.
13168
13169 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
13170
13171         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
13172         a local extern function declaration.
13173
13174 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
13175
13176         * i386.c (ix86_expand_prologue): Properly wrap USE around
13177         reg for CALL_INSN_FUNCTION_USAGE.
13178
13179 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
13180
13181         * config/mips/mips.md (movdf_internal1a): Allow floating-point
13182         move between GP_REGs.
13183
13184 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
13185
13186         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
13187         the mode size when finding out if an offset is legal.
13188
13189 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
13190
13191         * basic-block.h (PROP_*): Move constants from ...
13192         * flow.c: ... here.
13193         (compute_bb_for_insn): Free the array before reallocating.
13194         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
13195         (allocate_reg_life_data): Reset all reg variables collected by
13196         propagate_block.
13197         (get_block_head_tail): Don't convert from bb to block.
13198         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
13199         (find_insn_reg_weight): Take block not bb.
13200         (schedule_block): Don't set block num for moved insns.
13201         (schedule_region): Don't update_life_info or find_insn_reg_weight.
13202         (schedule_insns): Do it here instead.
13203         * combine.c (combine_instructions): Invoke compute_bb_for_insn
13204         before update_life_info.
13205         * recog.c (split_all_insns, peephole2_optimize): Update for
13206         new arg to update_life_info.
13207         * rtlanal.c (remove_note): Cope with NULL note.
13208         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
13209         if we did sched1.
13210
13211 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
13212
13213         * jump.c (jump_optimize_1): More accurately detect casesi insns.
13214
13215         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
13216         block records so that merge_blocks_nomove will clean up correctly.
13217         (split_edge): Handle casesi insns.
13218
13219         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
13220
13221 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
13222
13223         * pa.md (call, call_value): Do not emit a blockage after restoring
13224         the PIC register.
13225
13226 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
13227
13228         * c-typeck.c (c_expand_asm_operands): Fix typo.
13229
13230 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13231
13232         * arm.c (fpu_rhs_operand): Verify modes.
13233         (fpu_add_operand): Likewise.
13234         (di_operand): Likewise.
13235         (soft_df_operand): Likewise.
13236
13237 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
13238
13239         * arm.c (arm_return_in_memory): APCS rules state that the elements
13240         of a structure returned in a register must be 'integer-like'.
13241
13242 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
13243
13244         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
13245         in the source tree when the generated targets are out of date
13246         * fixinc/genfixes: Alter it to run individual fixes for make.
13247         * fixinc/README: rewrite
13248         * fixinc/inclhack.def: moved initial comments to README
13249
13250 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
13251
13252         * toplev.c (main): Do not generate an error message if an
13253         unrecognised command line switch is recognisable by another
13254         language.  If extra_warnings are enabled, then generate a
13255         warning message instead.
13256
13257 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13258
13259         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
13260         (insert_pack_attributes): Delete prototype.
13261
13262         * c-pragma.c (default_alignment): New static variable.
13263         (push_alignment): Initialize to current effective alignment.
13264         (pop_alignment): Use to set new alignment.
13265         (insert_pack_attributes): Delete function.
13266         (handle_pragma_token): Set default_alignment as well each time
13267         a #pragma pack(<n>) is encountered.
13268
13269 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
13270
13271         * reg-stack.c (stack_result): Aggregates are not returned in
13272         stack registers.
13273
13274 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
13275
13276         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
13277
13278 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
13279
13280         * basic-block.h (set_block_num): Declare.
13281         * flow.c (update_life_info): Don't call compute_bb_for_insn
13282         or free_basic_block_vars.
13283         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
13284         (insn_orig_block): Remove.
13285         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
13286         (schedule_block): Keep BLOCK_NUM up-to-date.
13287         (schedule_insns): Use compute_bb_for_insn.
13288         * recog.c (split_all_insns): Likewise.
13289         (peephole2_optimize): Likewise.
13290
13291 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
13292
13293         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
13294         if the pic register is used.
13295
13296 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13297
13298         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
13299         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
13300         if that tests TREE_PERMANENT.
13301
13302 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
13303
13304         * cse.c (invalidate_for_call): Do not remove memory references from
13305         the table here.  It's handled elsewhere.
13306
13307         * haifa-sched.c (add_dependence): Protect references to the
13308         true dependency cache with #ifdef INSN_SCHEDULING.
13309         (remove_dependence): Similarly.
13310
13311         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
13312         to the cfg code that this is a return instruction.
13313         * mn10300.md (return_internal): Similarly.
13314
13315         * combine.c (get_last_value): If the last set of a register
13316         is after subst_low_cuid, then we can not use it to determine
13317         the register's last value.
13318
13319 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
13320
13321         * Makefile.in: Back out previous change.
13322
13323 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
13324
13325         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
13326
13327         * haifa-sched.c (add_dependence): Only check/update the cache
13328         if it exists.
13329         (remove_dependence): Likewise.
13330         (schedule_insns): Only create the true_dependency_cache if the
13331         average number of instructions in a basic block is very large.
13332
13333 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
13334
13335         * Makefile.in (ggc-common.o): Depend on genrtl.h.
13336         (ggc-simple.o): Likewise.
13337         (ggc-page.o): Likewise.
13338
13339 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
13340
13341         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
13342         Prototype for exported functions.
13343         (pre_lcm, pre_rev_lcm): Remove prototypes.
13344         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
13345         (compute_available): Move to lcm.c, and change parameter order.
13346         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
13347         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
13348         (gcse_main): No longer call compute_preds_succs.  Rebuild the
13349         set table after reach pre pass.
13350         (pre_insert_map, pre_delete_map, edge_list): New.
13351         (alloc_pre_mem): Allocate edge vectors.
13352         (free_pre_mem): Delete edge vectors.
13353         (compute_pre_data): Call new edge based lcm routines.
13354         (process_insert_insn): New function.
13355         (insert_insn_end_bb): Use it.
13356         (pre_edge_insert): New function.
13357         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
13358         needed.
13359         (pre_insert_copies): Revamp using new edge based lcm outputs.
13360         (pre_delete): Likewise.
13361         (one_pre_gcse_pass): Insert & remove fake edges to the exit
13362         block.
13363         (compute_code_hoist_vbeinout): New new edge based routines.
13364         * lcm.c: Remove all the old LCM functions.  Replace with new ones
13365         that work with the new cfg datastructures and work with edges
13366         instead of blocks.
13367
13368 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13369
13370         * reload.h (struct reload): Add new fields "mode" and "nregs".
13371         * reload1.c: Change all occurrences of reload_mode and reload_nregs
13372         to reference the "mode" and "nregs" field within struct reload.
13373
13374 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
13375
13376         * haifa-sched.c (true_dependency_cache): New.
13377         (add_dependence): Use the true dependency cache to avoid expensive
13378         walks down the LOG_LINKS dependency list.  Add entries to the
13379         cache as necessary.
13380         (remove_dependence): Remove entries from the true dependency cache
13381         as needed.
13382         (schedule_insns): Allocate and initialize and free the true
13383         dependency cache.
13384
13385         * haifa-sched.c (schedule_insns): Do not remove inter-block
13386         dependencies anymore.
13387
13388 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
13389
13390         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
13391         * i386/t-winnt: Likewise.
13392
13393 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
13394
13395         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
13396
13397 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
13398
13399         * Makefile.in (LANGUAGES): Omit "proto".
13400         (clean): Remove stale comment about removing unprotoize.c.
13401
13402 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13403
13404         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
13405         using arithmetic on void pointers.
13406
13407 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
13408
13409         * haifa-sched.c (compute_block_forward_dependencies): Only check
13410         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
13411
13412 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
13413
13414         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
13415         (expr_equiv_p): Reject memories with different alias sets.
13416
13417 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
13418
13419         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
13420         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
13421         (f_options): Add "bounded-pointers" and "bounds-check" entries.
13422         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
13423         (lang_init): Set default for flag_bounds_check if still "unspecified".
13424
13425 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13426
13427         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
13428
13429 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13430
13431         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
13432         instructions.
13433
13434 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13435
13436         * config/c4x/c4x.md (*db_noclobber,
13437         *decrement_and_branch_until_zero_noclobber): New patterns and
13438         associated splitters.
13439
13440 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13441
13442         * config/c4x/c4x.md (parallel instruction patterns): Rework
13443         constraints to keep reload happy.
13444
13445 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13446
13447         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
13448         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
13449         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
13450         Add new patterns and associated post-reload splitters.
13451
13452 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13453
13454         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
13455
13456 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13457
13458         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
13459         if appropriate.
13460         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
13461
13462 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13463
13464         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
13465         memory mode.
13466
13467 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
13468
13469         * pa.c (move_operand): Rely on memory_address_p to determine the
13470         validity of non-indexed memory addresses.
13471         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
13472         operand in DFmode and SFmode when generating PA2.0 code.
13473
13474 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
13475
13476         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
13477
13478 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
13479
13480         * mips.c (function_prologue): Fix argument types.
13481         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
13482         (casesi_internal): Write to the scratch register.
13483
13484 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
13485
13486         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
13487         to U_CHAR **.
13488         (parse_charconst): Delete unnecessary cast when calling
13489         cpp_parse_escape.
13490         (cpplib.h): Kill prototype of cpp_parse_escape.
13491
13492 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
13493
13494         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
13495         * unroll.c (unroll_loop): Cast return value of alloca.
13496         * i370/i370.c: Include function.h and toplev.h.
13497         (i370_label_scan): Remove c++ commented abort.
13498         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
13499         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
13500         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
13501         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
13502
13503 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
13504
13505         * config/t-freebsd: Do not override USER_H.
13506         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
13507
13508 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
13509                           Mumit Khan  <khan@xraylith.wisc.edu>
13510
13511         * c-parse.in (component_decl): Support anonymous struct/union.
13512         (%expect): Update.
13513         * c-parse.y: Regenerate.
13514         * c-parse.c: Likewise.
13515         * objc/objc-parse.y: Likewise.
13516         * objc/objc-parse.c: Likewise.
13517         * c-decl.c (finish_struct): Don't sort the fields.
13518         (field_decl_cmp): Delete unused function.
13519
13520 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
13521
13522         * sparc.md (movsf_const_intreg): Revert last constraint change.
13523         (movdf_const_intreg_sp32): Likewise.
13524
13525 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
13526
13527         * cse.c: Include hashtab.h instead of splay-tree.h
13528         (struct cse_reg_info): No longer use variant union.  Add new
13529         field "regno".  All references changed to avoid union.
13530         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
13531         (free_cse_reg_info): Remove.
13532         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
13533         (get_cse_reg_info): Revamp to use expandable hash tables instead
13534         of splay trees.  Initialize new fields in cse_reg_info structure.
13535         (new_basic_block): Similarly.
13536
13537 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
13538
13539         * genrecog.c (message_with_line): Prototype.
13540         (validate_pattern): Pass along the set for the dest, not a flag.
13541         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
13542         Check for PC/CC0 as sources.
13543         (nodes_identical): Check for children position match before
13544         allowing the combination.
13545
13546         * rtl.c (read_rtx): Track line number across \\\n.
13547
13548 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
13549
13550         * mips.h (SPECIAL_MODE_PREDICATES): New.
13551         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
13552         (movdi+1, movsi+1): Add output reload constraint.
13553         (casesi_internal): Likewise.  Fix commentary.
13554         (return_internal): Use pmode_register_operand.
13555
13556 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
13557
13558         * 1750a.md (movstrqi): Add missing output reload constraint.
13559         (call_value): Likewise.
13560         * a29k.md (cpxxx patterns): Add missing match_operator mode.
13561         (jmpfdec): Add missing inout reload constraint.
13562         * elxsi.md (addsi patterns): Add missing output reload constraint.
13563         (move from sp): Use @ alternates.
13564         (call_value): No constraint on output.
13565         * fr30.md (movsi_pop): Add missing output reload constraint.
13566         (movsf_constant_store): Likewise.
13567         (splits): Remove constraints.
13568         (subsi3): Add missing mode.
13569         * i370.md (cmpstrsi+1): Add missing output reload constraint.
13570         (call_value): Likewise.
13571         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
13572         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
13573         * m32r.md (movsicc_internal): Add output reload constraint.
13574         (movstrsi_internal): Add inout reload constraints.
13575         * m88k.h (reg_names): Don't declare.
13576         (SPECIAL_MODE_PREDICATES): New.
13577         * m88k.md (*): Use register_operand not reg_or_0_operand
13578         on destinations.
13579         * mn10200.h (PREDICATE_CODES): New.
13580         * ns32k.md (ffs pattern): Add output reload constraint.
13581         * pdp11.md (sob pattern): Add inout reload constraint.
13582         * sh.md (splits): Remove constraints.
13583         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
13584         * v850.md (pattern_is_ok_for_epilogue): Likewise.
13585         * vax.md (jgequ pattern): Add inout reload constraint.
13586
13587 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
13588
13589         * configure.in (djgpp): Revert previous patch.
13590         * configure: Rebuit.
13591         * config/i386/djgpp.h: Revert previous patch.
13592
13593 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
13594
13595         * fixinc/inclhack.def: Restore patch lost during last merge of
13596         "no_bogosity" branch.
13597         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
13598
13599 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
13600
13601         * fixincludes: Add a HPUX 11 fix for inttypes.h.
13602         * fixinc/inclhack.def: Same.
13603         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
13604
13605 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
13606
13607         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
13608         as the base of a PLUS.
13609
13610 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13611
13612         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
13613         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
13614
13615 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
13616
13617         * pa.md (post_stw+1): Use pmode_register_operand.
13618         (dcacheflush, icacheflush): Likewise.
13619
13620         * i386.md (movstricthi_1): Allow r/r.
13621
13622 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
13623
13624         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
13625         to (not (and (arg0) (arg1))). Similary for and.
13626
13627         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
13628         fallthrough to associate code.
13629         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
13630         bits in common.
13631
13632         * combine.c (simplify_logical): Convert XOR to IOR if operands have
13633         no bits in common; remove XOR to ROTATE conversion.
13634
13635 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13636
13637         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
13638
13639 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13640
13641         * config/c4x/c4x.c (dst_operand): New.
13642         (PREDICATE_CODES): Update.
13643         * config/c4x/c4x.h (dst_operand): Declare it.
13644         * config/c4x/c4x.md:  Define mode for each unspec usage.
13645         (move patterns):  Use dst_operand predicate instead of src_operand.
13646         (movqi_update, movqf_update): Delete.
13647
13648 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
13649
13650         * recog.c (pmode_register_operand): New.
13651         * recog.h: Declare it.
13652         * genrecog.c (pred_codes): Likewise.
13653         (special_mode_pred_table): Likewise.
13654         (validate_pattern): Don't warn no mode for address_operand.
13655
13656         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
13657         if the operand is not insn-like.
13658
13659 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
13660                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
13661
13662         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
13663
13664 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
13665
13666         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
13667         instead of general_operand in a SET_DEST.  Use const_double_operand
13668         instead of an explicit test against CONST_DOUBLE.
13669         (movsf_const_lo): Add missing register mode.
13670         (goto_handler_and_restore): Add auxiliary test for Pmode.
13671         (flush): Adjust to use address_operand.
13672         (return_sf_no_fpu): Add missing output constraint.
13673
13674 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
13675
13676         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
13677         for call return value.
13678         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
13679
13680 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
13681
13682         * toplev.c (main): Only warn about options for other languages.
13683         * collect2.c (main): Pass -w to sub-gcc.
13684
13685 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
13686
13687         * flow.c (propagate_block): Add call-clobbered registers to
13688         significant too.
13689
13690         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
13691         zapping mem_set_list.
13692         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
13693         (mark_set_1, mark_used_regs): Likewise.
13694
13695 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
13696
13697         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
13698
13699 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13700
13701         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
13702         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
13703         options. Also add a new item "C-only Warning Options" to the
13704         option summary.
13705
13706 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
13707
13708         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
13709         from multiple calls.
13710
13711 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
13712
13713         * i386.md (call value patterns): Move to the end of the file.
13714         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
13715
13716 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
13717
13718         * configure.in (djgpp configuration): Define extra_objects..
13719         * configure: Rebuilt.
13720         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
13721         (DTORS_SECTION_ASM_OP): Define.
13722         (INIT_SECTION_ASM_OP): Define.
13723         (FINI_SECTION_ASM_OP): Define.
13724         (DATA_SECTION_ASM_OP): Define.
13725         (TEXT_SECTION_ASM_OP): Define.
13726         (EH_FRAME_SECTION_ASM_OP): Define.
13727         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
13728         (STARTFILE_SPEC): Add crtbegin.o.
13729         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
13730         to here from LINK_COMMAND_SPEC.
13731         (DO_GLOBAL_CTORS_BODY): Define.
13732         (CRTSTUFF_USE_FINI_SECTION): Define
13733         (HAS_INIT_SECTION): Delete.
13734
13735 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
13736
13737         * Makefile.in (all.cross): Depend on xcpp$(exeext).
13738
13739 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
13740
13741         * pa.h (PREDICATE_CODES): New.
13742
13743         * genrecog.c (validate_pattern): Condense the destination
13744         non-lvalue message.
13745
13746 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
13747
13748         * alpha.md (call-1): Supply missing mode for operator.
13749         (*): Add missing output reload constraints.  Remove constraints
13750         from define_splits.
13751
13752         * i386.h (SPECIAL_MODE_PREDICATES): New.
13753         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
13754         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
13755         (addsi_lea_3): Add missing mode for op 3.
13756         (prologue_set_got, prologue_get_pc): Add missing modes.
13757         (*) Add missing output reload constraints.
13758
13759 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
13760
13761         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
13762         check for member bit-size overflow and use var_size if it occurs.
13763         (layout_record): Use bitsize_int() to define the type size in bits.
13764         Likewise for computation and assignment to DECL_FIELD_BITPOS.
13765         (layout_decl): Likewise when assigning to DECL_SIZE.
13766
13767 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
13768
13769         * genrecog.c (validate_pattern): Typo last change.  Verify
13770         that output operands have output reloads.
13771
13772 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
13773
13774         * genrecog.c (special_mode_pred_table): New.
13775         (NUM_SPECIAL_MODE_PREDS): New.
13776         (find_operand): New.
13777         (validate_pattern): New argument `insn'.  Warn for assignment to
13778         any predicate accepting non-lvalues.  Conditionaly warn for
13779         match_operand without a mode.  Try much harder to match source
13780         and destination modes on a set.
13781         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
13782
13783 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
13784
13785         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
13786
13787 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
13788
13789         * combine.c (simplify_logical): Recognize xor pattern that encodes
13790         rotation.
13791
13792 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13793
13794         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
13795         alignment.
13796
13797 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
13798
13799         * ggc-page.c (MAP_FAILED): Provide default.
13800
13801 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
13802
13803         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
13804         * sparc.h (PREDICATE_CODES): Update.
13805
13806 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
13807
13808         * alpha.c (some_ni_operand): New.
13809         * alpha-protos.h: Declare it.
13810         * alpha.h (PREDICATE_CODES): Update.
13811         * alpha.md (sXaddq reload insns): Use some_ni_operand
13812         for SET_DEST instead of some_operand.
13813
13814 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
13815                           Jim Wilson  <wilson@cygnus.com>
13816
13817         * genrecog.c (maybe_both_true_2): Don't compare modes of
13818         two DT_pred tests.
13819         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
13820         after find_afterward.
13821         (debug_decision_1): Dump next and afterward codes.
13822
13823 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
13824
13825         * rtl.c (dump_and_abort): Remove.
13826         (fatal_with_file_and_line): New.
13827         (fatal_expected_char): New.
13828         (read_rtx_lineno, read_rtx_filename): New.
13829         (read_skip_spaces): Track line number.
13830         (read_name): Use fatal_with_file_and_line.
13831         (read_rtx): Use fatal_expected_char.  Track line number.
13832         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
13833
13834         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
13835         if it isn't a CODE_LABEL.
13836
13837         * genattr.c (main): Set read_rtx_filename.
13838         * genattrtab.c (main): Likewise.
13839         * gencodes.c (main): Likewise.
13840         * genconfig.c (main): Likewise.
13841         * genemit.c (main): Likewise.
13842         * genextract.c (main): Likewise.
13843         * genflags.c (main): Likewise.
13844         * genopinit.c (main): Likewise.
13845         * genoutput.c (main): Likewise.
13846         * genpeep.c (main): Likewise.
13847
13848         * genrecog.c (decision_test.u.insn): Add `lineno'.
13849         (pattern_lineno, error_count): New variables.
13850         (message_with_line): New.
13851         (add_to_sequence): Break out checking code to ...
13852         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
13853         (merge_insn): Use message_with_line.
13854         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
13855         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
13856
13857 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13858
13859         * expr.c (store_constructor): Clear union if constructor is empty.
13860
13861 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
13862
13863         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
13864         Add !endian checks.  Change %{...} to %(...).
13865
13866 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
13867
13868         * i386.md (*addsi3_cc): Renamed from addcsi3.
13869         (*addsi3_carry): Renamed from addxsi3.
13870         (*subsi3_cc): Renamed from subcsi3.
13871         (*subsi3_carry): Renamed from subxsi3.
13872         (*xorqi_cc_1): Renamed from xorcqi_1.
13873         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
13874         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
13875
13876 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
13877
13878         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
13879         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
13880
13881 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
13882
13883         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
13884         climb up the chain of insns.
13885
13886 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
13887
13888         * genrecog.c (write_subroutine): Careful for null trees.
13889         (process_tree): Don't elide empty functions.
13890
13891 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
13892
13893         * Makefile.in (genrtl.o): Depend on ggc.h.
13894         * configure.in (valloc): Probe for it.
13895         (with-gc): Use ggc-page if valloc present.
13896         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
13897         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
13898         (ggc_alloc_string): Moved from ggc-page.c.
13899         * ggc-none.c (ggc_alloc_obj): New.
13900         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
13901         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
13902         (struct globals): Likewise for dev_zero_fd.
13903         (init_ggc): Likewise for it's initialization.
13904         (ggc_allocated_p): Move careful dereference from ...
13905         (ggc_lookup_page_table): ... here.  Delete.
13906         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
13907         (alloc_anon): Use valloc if no mmap.
13908         (release_pages): Use free if using valloc.
13909         (ggc_alloc_obj): Renamed from alloc_obj.
13910         (ggc_set_mark): Renamed from mark_obj.
13911         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
13912         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
13913         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
13914         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
13915         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
13916         (ggc_collect): Use fp printing instead of our own rounding.
13917         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
13918         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
13919         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
13920         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
13921         (struct ggc_string, struct ggc_any): Delete.
13922         (offsetof): Provide default definition.
13923         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
13924         (PTR_KEY): New.
13925         (struct ggc_mem): New, from corpse of ggc_any.
13926         (struct ggc_status): Delete.
13927         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
13928         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
13929         (n_strings_collected, n_anys_collected): Delete.
13930         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
13931         (ggc_alloc_string, ggc_alloc): Delete.
13932         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
13933         (ggc_free_string, ggc_free_any): Delete.
13934         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
13935         (ggc_compare_addresses, ggc_mark_string): Delete.
13936         (ggc_mark_string_if_gcable, ggc_mark): Delete.
13937         (search_data): Delete.
13938         (struct globals): New.
13939         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
13940         (tree_insert, tree_lookup): New.
13941         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
13942         (clear_marks, sweep_objs): New.
13943         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
13944         (init_ggc): Set allocated_last_gc.
13945         (ggc_push_context): Gut.  Use G.context.
13946         (ggc_pop_context): Likewise.
13947         (ggc_pop_context_1): New.
13948         (debug_ggc_tree): New.
13949         (debug_ggc_balance, tally_leaves): New.
13950         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
13951         (ggc_mark_string_if_gcable): Remove decl.
13952         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
13953         (ggc_mark_rtvec_children): New.
13954         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
13955         (ggc_mark_if_gcable): New decl.
13956         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
13957         (ggc_alloc_tree, ggc_alloc): Likewise.
13958         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
13959         (ggc_alloc_obj): New decl.
13960         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
13961         (ggc_alloc_tree, ggc_alloc): Likewise.
13962         (ggc_set_mark): New decl.
13963         * rtl.h (struct rtx_def): Remove gc_mark.
13964         (struct rtvec_def): Likewise.
13965         * tree.h (struct tree_common): Likewise.
13966
13967 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
13968
13969         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
13970         float_format and thread_file definitions.
13971         * configure: Rebuilt.
13972
13973 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
13974
13975         * extend.texi (Function Names): Document types of function names.
13976
13977 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13978
13979         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
13980         an earlyclobbered output conflict with RELOAD_INPUT reloads.
13981
13982 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13983
13984         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
13985
13986 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13987
13988         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
13989
13990 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
13991
13992         * collect2.c (main): Do prelimnary link on AIX if rflag.
13993
13994 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13995
13996         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
13997         __CTOR_LIST__ in opposite order, which is the correct order for sorted
13998         constructors.
13999         (__do_global_dtors): similarly for __DTOR_LIST__.
14000
14001 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14002                                 Diego Novillo <dnovillo@cygnus.com>
14003
14004         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
14005         FPUL_REGS.
14006
14007 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
14008
14009         * fixincl/*: Merged "no_bogosity" branch
14010         * fixincl/fixlib.h: protect against doubly defining t_bool
14011         * fixincl/server.h: protect against doubly defining t_bool
14012
14013 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
14014
14015         * genoutput.c: Include toplev.h.
14016
14017 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
14018
14019         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
14020         Undef.
14021         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
14022         * configure: Regenerate.
14023
14024 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
14025
14026         * gcse.c (delete_null_pointer_checks): Returns void.
14027
14028 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14029
14030         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
14031         * emit-rtl.c (copy_insn_1): Likewise.
14032
14033 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
14034
14035         * config/mips/mips.c (mips_build_va_list): Correct
14036         TREE_CHAIN setting when hard-float.
14037         (mips_va_start): Use corrected setting.
14038         (mips_va_arg): Likewise.  Also pass a tree to build of
14039         POSTINCREMENT_EXPR rather than a naked 'int'.
14040
14041 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
14042
14043         * ggc.h (ggc_push_context): Fix comment.
14044         (ggc_pop_context): Likewise.
14045         (mark_string_if_gcable): Likewise.
14046         * ggc-common.c (ggc_mark_rtx_children): Use
14047         ggc_mark_string_if_gcable.
14048         * ggc-page.c (ggc_lookup_page_table): New function.
14049         (ggc_allocated_p): Likewise.
14050         (mark_obj): Fix formatting.
14051         (ggc_mark_string_if_gcable): New function.
14052         * ggc-simple.c (ggc_allocated_strings): New variable.
14053         (ggc_strings_used): Likewise.
14054         (ggc_compare_addresses): New function.
14055         (ggc_pop_context): Pop the `any' memory too.
14056         (ggc_mark_string_if_gcable): New function.
14057         (ggc_collect): Initialize and tear down ggc_allocated_strings.
14058
14059 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
14060
14061         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
14062         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
14063         * rs6000.c (expand_block_move): Match movstrsi_?reg register
14064         changes.
14065
14066 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
14067
14068         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
14069         (sched_reg_live_length, sched_reg_basic_block): Delete.
14070         (current_block_num, bb_live_regs, old_live_regs): Delete.
14071         (dead_notes, struct sometimes): Delete.
14072         (sched_note_set, birthing_insn_p): Delete.
14073         (adjust_priority): Gut useless reg lifetime code.
14074         (create_reg_dead_note, attach_deaths): Delete.
14075         (attach_deaths_insn, new_sometimes_live): Delete.
14076         (finish_sometimes_live): Delete.
14077         (find_pre_sched_live, find_post_sched_live): Delete.
14078         (update_reg_usage): Delete.
14079         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
14080         (schedule_insns): Delete reg lifetime code.
14081         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
14082         (unlink_other_notes): Adjust REG_NOTE commentary.
14083         (reemit_notes): Use REG_SAVE_NOTE.
14084         (schedule_block): Likewise.
14085         (schedule_region): Allocate bitmap of blocks in region.  Use
14086         count_or_remove_death_notes.  Use update_life_info.
14087
14088         * rtl.h (REG_SAVE_NOTE): New.
14089         * rtl.c (reg_note_name): Update.
14090
14091 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
14092
14093         * combine.c (refresh_blocks, need_refresh): New.
14094         (combine_instructions): Allocate refresh_blocks.  Invoke
14095         update_life_info if needed.
14096         (distribute_notes): Mark refresh_blocks instead of installing
14097         USE insns.
14098         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
14099         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
14100
14101         * Makefile.in (recog.o): Depend on basic-block.h.
14102
14103 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
14104
14105         * genrecog.c (add_to_sequence): Thinko last change: delete
14106         shadowing allow_const_int variable.
14107
14108 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14109
14110         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
14111         __GNUC__ and __GNUC_MINOR__.
14112
14113         * gansidecl.h: Likewise.
14114
14115         * rtl.c: Likewise.
14116
14117         * rtl.h: Likewise.
14118
14119         * toplev.h: Likewise.
14120
14121         * tree.c: Likewise.
14122
14123         * tree.h: Likewise.
14124
14125         * varray.c: Likewise.
14126
14127         * varray.h: Likewise.
14128
14129 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14130
14131         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
14132         use one before a jump table.
14133
14134         * rtl.def (ADDRESS): Change documentation to match reality.
14135         * md.texi: Don't document it.
14136         * gmicro.md (load address pattern): Use 'p' constraint, delete use
14137         of ADDRESS rtx.
14138
14139         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
14140
14141 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
14142
14143         * genrecog.c (add_to_sequence): Move allow_const_int test outside
14144         known predicate block; default allow_const_int true.
14145         (debug_decision_list): New.
14146
14147 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
14148
14149         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
14150
14151 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
14152
14153         * gcse.c (gcse_main): Avoid global optimizations if we have a
14154         large number of basic blocks and the ratio of edges to blocks
14155         is high.
14156         (delete_null_pointer_checks): Likewise.
14157
14158 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
14159
14160         * c-common.c (check_format_info): Warn if format string isn't a
14161         string literal.
14162
14163 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
14164
14165         * configure.in (arm*-*-*): Don't let autoconf remove brackets
14166         * configure: regenerate
14167
14168 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
14169
14170         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
14171         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
14172         (peepholes): Re-enable.
14173
14174 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
14175
14176         * Makefile.in (flow.o): Depend on TREE_H.
14177         * basic-block.h (REG_SET_EQUAL_P): New.
14178         (XOR_REG_SET): New.
14179         (n_edges): Declare.
14180         (free_regset_vector): Remove declaration.
14181         (flow_delete_insn_chain): Declare.
14182         (enum update_life_extent): New.
14183         (update_life_info, count_or_remove_death_notes): Declare.
14184         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
14185         Verify register live at bb->global_live_at_start before adding USE.
14186         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
14187         (CLEAN_ALLOCA): New.
14188         (n_edges): New.
14189         (PROP_*): New flags.
14190         (find_basic_blocks_1): Use alloc_EXPR_LIST.
14191         (clear_edges): Zero n_edges.
14192         (make_edge): Increment n_edges.
14193         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
14194         (flow_delete_insn_chain): Export.
14195         (delete_block): Decrement n_edges.
14196         (merge_blocks_nomove): Likewise.
14197         (life_analysis): Give life_analysis_1 PROP flags.
14198         (verify_wide_reg_1, verify_wide_reg): New.
14199         (verify_local_live_at_start): New.
14200         (update_life_info): Rewrite to call into propogate_block.
14201         (mark_reg): New.
14202         (mark_regs_live_at_end): After reload, if epilogue as rtl,
14203         always mark stack pointer.  Conditionally mark PIC register.
14204         After reload, mark call-saved registers, return regsiters.
14205         (life_analysis_1): Accept PROP flags not remove_dead_code.
14206         Call mark_regs_live_at_end before zeroing regs_ever_live.
14207         Use calculate_global_regs_live.  Copy global_live_at_end before
14208         calling final propagate_block.  Zero reg_next_use on exit.
14209         (calculate_global_regs_live): New.
14210         (allocate_bb_life_data): Don't allocate bb->local_set.
14211         (init_regset_vector, free_regset_vector): Remove.
14212         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
14213         Test flags before every operation.  Warn if prologue/epilogue insn
14214         would have been deleted.
14215         (mark_set_regs, mark_set_1): Accept and use FLAGS.
14216         Use alloc_EXPR_LIST.
14217         (mark_used_regs): Accept and use FLAGS, not FINAL.
14218         Remove special handling for RETURN.
14219         (try_pre_increment): Use alloc_EXPR_LIST.
14220         (dump_flow_info): Dump n_edges.
14221         (unlink_insn_chain, split_hard_reg_notes): Remove.
14222         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
14223         (find_insn_with_note, new_insn_dead_notes): Remove.
14224         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
14225         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
14226         (replace_insns): Remove.
14227         (count_or_remove_death_notes): New.
14228         (verify_flow_info): Abort on error after all checks.
14229         (remove_edge): Decrement n_edges.
14230         (remove_fake_edges): Tweek format.
14231         * haifa-sched.c (schedule_insns): Use split_all_insns.
14232         * output.h (update_life_info): Remove declaration.
14233         * recog.c (split_all_insns): From the corpse of split_block_insns,
14234         do the whole function block by block.  Use update_life_info.
14235         (recog_last_allowed_insn): New.
14236         (recog_next_insn): Mind it.
14237         (peephole2_optimize): Set it.  Walk backwards through blocks.
14238         Use update_life_info.
14239         * rtl.h (update_flow_info, replace_insns): Remove declarations.
14240         (split_all_insns): Declare.
14241         * toplev.c (rest_of_compilation): Thread prologue before flow2.
14242         Use split_all_insns.
14243
14244         * i386.md (or -1 peep2s): Disable.
14245
14246 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
14247
14248         * config/mips/mips.md (movstrsi+[123]) : Combine these into
14249         a single pattern.  Scrap the 'd' versions as unnecessary.
14250
14251         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
14252         tablejump_mips162,tablejump_internal4): The operands to a
14253         label_ref must be VOIDmode.
14254
14255 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14256
14257         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
14258
14259 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
14260
14261         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
14262
14263 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
14264
14265         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
14266         cache every function if ggc_p.
14267
14268 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14269
14270         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
14271         instead of copy_rtx.  Accept sequences that contain asm statements.
14272         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
14273         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
14274         orig_asm_operands_vector, copy_asm_operands_vector,
14275         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
14276         variables.
14277         * rtl.h (copy_insn, copy_insn_1): Declare.
14278
14279 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14280
14281         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
14282
14283         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
14284         arguments to `current_file_function_operand'.
14285
14286         * genrecog.c: Include hard-reg-set.h and resource.h in the
14287         generated output file.
14288
14289         * real.c: Include tm_p.h.
14290
14291 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14292
14293         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
14294         output operand.
14295
14296 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
14297
14298         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
14299         before the fctiwz insn.
14300
14301 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14302                           Mark Mitchell  <mark@codesourcery.com>
14303
14304         * tree.c (make_lang_type_fn): New funtion pointer.
14305         (make_lang_type): Call it.
14306         * tree.h (make_lang_type): Declare.
14307         (make_lang_type_fn): Likewise.
14308         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
14309
14310 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
14311
14312         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
14313         make sure that HIGH instructions are copied into BASE_REGS.
14314
14315 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
14316
14317         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
14318
14319 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
14320
14321         * c-decl.c (finish_struct): Use simpler method of
14322         removing elements of a singly-linked list.
14323
14324 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
14325
14326         * alpha.md (peephole2's): Comment out peephole2's that generate
14327         buggy code.
14328
14329 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
14330
14331         * genrecog.c (add_to_sequence): Disable mode check for
14332         wildcard matches.
14333
14334 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14335
14336         * ggc-simple.c (init_ggc): Set empty_string.
14337
14338 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
14339
14340         * configure.in: Detect mmap.  Add --with-gc=foo to select
14341         garbage collector; default to page if mmap available.
14342         * Makefile.in (GGC): Substitute.
14343
14344 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
14345
14346         * c-decl.c (ggc_p): Enable.
14347
14348 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14349
14350         * flow.c (verify_flow_info): Make it extern & unconditionally define.
14351
14352 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
14353
14354         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
14355         string for little-endian-data.
14356
14357 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
14358
14359         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
14360         case somebody tries to compile --enable-checking code with gcc
14361         1.34 or such.
14362
14363 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
14364
14365         * genrecog.c (add_to_sequence): Verify operand to label_ref is
14366         VOIDmode.
14367
14368 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
14369
14370         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
14371         * jump.c (jump_optimize_1): Document why.
14372
14373 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14374
14375         * collect2.c (scan_prog_file, scan_libraries): Prototype function
14376         pointers and casts for `int_handler' and `quit_handler'.
14377
14378         * flow.c (verify_flow_info, split_hard_reg_notes,
14379         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
14380         remove_edge, remove_fake_successors): Add static prototypes.
14381         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
14382         (mark_set_1): Initialize variable `regno'.
14383         (unlink_insn_chain): Likewise for variable `curr'.
14384         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
14385
14386         * loop.c (strength_reduce): Initialize variable
14387         `unrolled_insn_copies'.
14388         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
14389         prototypes.  Change these functions to take const PTR parameters
14390         to avoid prototype conflict when used as the comparson argument
14391         for qsort.
14392         (check_dbra_loop): Initialize variable `comparison_val'.
14393
14394         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
14395         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
14396         (find_valid_class): Initialize variable `best_class'.
14397         (find_reloads): Call memcpy, not bcopy.
14398
14399         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
14400         (hard_reg_use_compare): Don't needlessly cast away const.
14401         (reload_reg_class_lower): Likewise.
14402         (choose_reload_regs): Initialize variable `regno'.
14403
14404 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
14405
14406         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
14407
14408 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
14409
14410         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
14411         ({,d}discard): Add forward declarations.  Declare parameter as
14412         unused.
14413         (main_without_main): Explicitly declare return type to be int.
14414         (memcpy): Properly declare.
14415
14416         * libgcc2.c (toplevel): If inhibit_libc is defined and not
14417         building the trampoline support, declare malloc, free, and
14418         atexit.
14419         (__clear_cache): Mark arguments as potentially unused.
14420
14421         * frame.c (toplevel): If inhibit_libc is defined, declare
14422         malloc and free.
14423
14424 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
14425
14426         * flow.c (make_edge): Accept an optional 2D bitmap in which
14427         to cache edge existence.  Update all callers.
14428         (make_label_edge, make_eh_edge): Pass through the edge cache.
14429         (make_edges): Provide the cache.
14430
14431 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14432
14433         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
14434         a char*.
14435         (local_mbtowc): Change the type of variable `i' from int to size_t.
14436
14437         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
14438         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
14439
14440 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
14441
14442         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
14443         after other includes that define the appropriate types.  Include
14444         tm_p.h for getting user prototypes.
14445         * ggc-callbacks.c (toplevel): Ditto.
14446         * ggc-none.c (toplevel): Ditto.
14447         * gcc-page.c (toplevel): Ditto.
14448         * ggc-simple.c (toplevel): Ditto.
14449
14450 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
14451                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
14452
14453         * config/mips/mips.c (mips_move_2words): Split doubles if
14454         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
14455
14456 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
14457
14458         * genrecog.c (struct decision_test): New.
14459         (struct decision): Remove test-related members, sort the rest by size.
14460         (IS_SPLIT): Simplify.
14461         (new_decision, new_decision_test): New.
14462         (add_to_sequence): Use them.  No special handling for args of
14463         non-MATCH codes.
14464         (maybe_both_true): Renamed from not_both_true; return sense changed.
14465         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
14466         of maybe_both_true and adjusted for decision_test.
14467         (position_merit): Remove.
14468         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
14469         (merge_accept_insn): New, broken out of merge_trees.
14470         (merge_trees): Use them.  No special case for c_test; no node
14471         splitting; use test type instead of position_merit.
14472         (factor_tests): New.
14473         (simplify_tests): New.
14474         (break_out_subroutines): Don't write code now.
14475         (find_afterward): New.
14476         (write_afterward, write_switch, write_cond): New.
14477         (write_action, is_unconditional): New.
14478         (write_node): New.  Use them.
14479         (write_tree_1): Rewrite.  Use the new functions above.
14480         (write_tree): Remove afterward processing.
14481         (write_subroutine): Simplify function variant emission.
14482         (write_subroutines): New.
14483         (same_codes, clear_codes): Remove.
14484         (same_modes, clear_modes): Remove.
14485         (write_header): New, broken out of main.
14486         (make_insn_sequence): Use new_decision and new_decision_test.
14487         (process_tree): New, broken out of main.
14488         (main): Adjust for merge_trees interface change.
14489         Don't #define operands in the output file.
14490         (record_insn_name): New, broken out of make_insn_sequence.
14491         (debug_decision_2, debug_decision_1, debug_decision_0): New.
14492         (debug_decision): New.
14493
14494 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
14495
14496         * resource.c (find_free_register): Mark class_str argument const.
14497         * resource.h: Update prototype to match.
14498
14499         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
14500         * i386.md: Give all anonymous insns names.
14501
14502 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
14503
14504         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
14505         blocks.
14506
14507 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
14508
14509         * toplev.c (dbr_sched_time): Unconditional.
14510         (peephole2_time): New.
14511         (compile_file): Add pass numbers to all of the dump file suffixes.
14512         Dump peephole2_time.  Don't dump times for non-applicable passes.
14513         (rest_of_compilation): Add pass numbers to dump file suffixes.
14514         Conditionalize calls to the scheduler.
14515         * invoke.texi: Update.
14516
14517 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
14518
14519         * flow.c (make_edges): Fix insn iteration.
14520         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
14521         (find_basic_blocks_1): Fix spelling mistake.
14522
14523 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
14524
14525         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
14526         always have side-effects.  Use memset not bzero.
14527         (make_node): Likewise.
14528
14529 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
14530
14531         * stmt.c (expand_anon_union_decl): When any of the elements of the
14532         union is addressable, so is the entire union.
14533
14534 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
14535
14536         * sbitmap.c (sbitmap_ones): Don't set too many bits.
14537
14538         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
14539         * bitmap.c (bitmap_operation): Return true iff TO changed.
14540         (bitmap_equal_p): New.
14541         (bitmap_bit_p): Tidy arithmetic.
14542         (debug_bitmap_file): Likewise.
14543
14544 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
14545
14546         * toplev.c (rest_of_compilation): Turn on cse_not_expected
14547         before cse2 instead of after.
14548
14549 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
14550
14551         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
14552         register offsets.
14553
14554 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14555
14556         * cppinit.c (is_idchar initializer): Loosen tests to accept
14557         gcc 2.>6 and >2.
14558
14559 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
14560
14561         * mips.md: Define conditional move patterns for floating point
14562         operands and DI mode conditions.
14563
14564 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
14565
14566         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
14567         always have side-effects.
14568
14569 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
14570
14571         * mn10200.c (asm_file_start): Fix typo.
14572
14573         * cppinit.c (is_idchar initializer): Tighten tests for when
14574         to put the table into initialized memory.
14575
14576         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
14577         not an array of rtunion.
14578         * gcc-page.c (ggc_alloc_rtvec): Similarly.
14579         * gcc-simple (ggc_free_rtvec): Similarly.
14580
14581         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
14582         of rtunions.
14583
14584         * mbchar.h: Add missing #endif.
14585
14586         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
14587         (FPBIT, DPBIT): Define.
14588
14589 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14590
14591         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
14592
14593         * profile.c (instrument_arcs, output_gcov_string,
14594         tablejump_entry_p): Add static prototypes.
14595         (output_gcov_string): Constify a char*.
14596
14597         * regmove.c (replacement_quality, fixup_match_2): Add static
14598         prototypes.
14599
14600         * resource.h (reg_dead_p): Add extern prototype.
14601
14602         * rtl.c (trim_filename): Add static prototype.
14603
14604         * scan-decls.c (skip_to_closing_brace): Likewise.
14605
14606         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
14607         (expand_end_case): Initialize variable `range'.
14608         (emit_case_nodes): Remove unused prototype `rtx_fn'.
14609
14610         * varasm.c (asm_emit_uninitialised): Add static prototype.
14611         (asm_emit_uninitialised, assemble_variable): Mark parameter with
14612         ATTRIBUTE_UNUSED.
14613
14614 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14615
14616         * cpplib.c (if_directive_nameo): Add static prototype.
14617
14618         * cse.c (cse_insn): Remove unused variable `p'.
14619
14620         * except.c (create_rethrow_ref, push_entry,
14621         receive_exception_label, new_eh_region_entry, find_func_region,
14622         clear_function_eh_region, process_nestinfo): Add static prototypes.
14623         (get_reg_for_handler): Hide definition.
14624         (process_nestinfo): Initialize variable `extra_handlers'.
14625
14626         * expr.h (expand_builtin_longjmp): Add extern prototype.
14627
14628         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
14629
14630         * function.c (prepare_function_start): Likewise.
14631         (pop_function_context_from): Mark parameter `context' with
14632         ATTRIBUTE_UNUSED.
14633         (push_temp_slots_for_block, flush_addressof): Hide definition.
14634
14635         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
14636         solve_program_flow_graph, calculate_branch_probs,
14637         function_summary, main, fancy_abort): Add prototypes.
14638
14639         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
14640         (add_hash): Constify a char*.
14641
14642         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
14643         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
14644         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
14645
14646         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
14647
14648         * lists.c (free_list, zap_lists): Likewise.
14649
14650 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14651
14652         * alias.c (nonlocal_reference_p): Add static prototype.
14653
14654         * bitmap.c (bitmap_element_allocate): Prototype args in function
14655         pointer cast.
14656
14657         * builtins.c (stabilize_va_list): Add static prototype.
14658         (expand_builtin_va_arg): Constify a char*.
14659
14660         * c-lex.c (getch, put_back, extend_token_buffer_to,
14661         read_line_number, token_getch, token_put_back): Add static
14662         prototypes.
14663
14664         * c-parse.gperf (hash, is_reserved_word): Likewise.
14665
14666         * cccp.c (is_dir_separator): Likewise.
14667
14668 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14669
14670         * graph.h: New file to prototype functions exported by graph.c.
14671
14672         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
14673
14674         * graph.c: Include graph.h.
14675
14676         * toplev.c: Likewise.  Remove redundant prototypes.
14677
14678 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
14679
14680         * invoke.texi: Removed duplicated description for -Q.
14681
14682 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
14683
14684         * extend.texi: Grammar fix in __extension__ text.
14685
14686 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
14687
14688         * md.texi (define_peephole2): New section.
14689
14690 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
14691
14692         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
14693         (mov $-1 to or peepholer): Enable for pentium when optimizing for
14694         speed.
14695
14696 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
14697
14698         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
14699
14700 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
14701
14702         * i386.md (ffs expander): Emit Pentium friendly code for
14703         TARGET_PENTIUM.
14704
14705 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
14706
14707         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
14708         for non-trees.
14709         (build1): Likewise.
14710
14711 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14712
14713         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
14714
14715 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
14716
14717         * config/m68k/m68k.c (use_return_insn): Return false if the pic
14718         register is in use.
14719
14720 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14721
14722         * md.texi (No Constraints): Delete section.
14723         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
14724         * final.c (final_scan_insn): We always have register constraints.
14725         * genattrtab.c: Don't include "insn-config.h".
14726         (write_attr_case): We always have register constraints.
14727         * genconfig.c (register_constraint_flag): Delete.
14728         (walk_insn_part): Don't check whether we have register constraints.
14729         (main): Don't write out "#define REGISTER_CONSTRAINTS".
14730         * genoutput.c (have_constraints): Delete.
14731         (main): Don't set it.
14732         (output_operand_data): We always have constraints.
14733         (scan_operands): Likewise.
14734         (compare_operands): Likewise.
14735         * local-alloc.c (block_alloc): We always have constraints.
14736         (requires_inout): Always compile this function.
14737         * recog.c (extract_insn): We always have constraints.
14738         (constrain_operands, reg_fits_class_p): Always compile these
14739         functions.
14740         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
14741         fields.
14742         (struct insn_operand_data): Likewise.
14743         * regclass.c (regclass): We always have constraints.
14744         (record_reg_classes, copy_cost, record_address_regs,
14745         auto_inc_dec_reg_p): Always compile these functions.
14746         * regmove.c (regmove_optimize): We always have constraints.
14747         * reload.c (find_reloads): Likewise.
14748         * reload1.c (reload): Likewise.
14749         (reload_cse_simplify_operands): Likewise.
14750         * i860.c (output_delay_insn): Likewise.
14751
14752 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
14753
14754         * iris6.h (BUILD_VA_LIST_TYPE): Define.
14755
14756 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14757
14758         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
14759         for the va_list record.
14760
14761 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
14762
14763         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
14764         prologues.
14765
14766 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
14767
14768         * alias.c: Include insn-flags.h.
14769         * Makefile.in (alias.o): Update.
14770
14771 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
14772
14773         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
14774         to LTU and GEU.  Handle more cases using sbb.
14775
14776 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
14777
14778         * i386.md (truncatexfdf splitters): Do not use subreg.
14779         (fop XFmode patterns): Fix mode in operand testing.
14780
14781 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
14782
14783         * jump.c (jump_optimize_1): Amend last change to test only the
14784         form of the operand, not the insn.
14785
14786         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
14787         not register_operand to determine when B may need preloading.
14788
14789 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
14790
14791         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
14792         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
14793         (call-value patterns): Move to end of file.
14794         (*): Remove mode from label_ref in (pc) context.
14795         (movstrqi): Use memory not general_operand for BLKmode operands.
14796         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
14797         to register_operand operands.
14798         (peep2 patterns): Convert from commented-out peephole patterns.
14799
14800 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14801
14802         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
14803         to BUILT_IN_INIT_DWARF_REG_SIZES.
14804         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
14805         Renamed from BUILT_IN_DWARF_REG_SIZE; call
14806         expand_builtin_init_dwarf_reg_sizes.
14807         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
14808         with __builtin_init_dwarf_reg_size_table.
14809         * dwarf2out.c (struct reg_size_range): Delete.
14810         (expand_builtin_init_dwarf_reg_sizes): New function.
14811         (expand_builtin_dwarf_reg_size): Delete.
14812         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
14813         (expand_builtin_dwarf_reg_size): Don't declare.
14814         * libgcc2.c (dwarf_reg_size_table_initialized): New.
14815         (dwarf_reg_size_table): New.
14816         (init_reg_size_table): New function.
14817         (copy_reg): Use dwarf_reg_size_table.
14818         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
14819         before use.
14820
14821 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
14822
14823         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
14824         Correctly build argument list to constructor and destructor functions.
14825
14826 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
14827
14828         * c-tree.h (warn_float_equal): Declare.
14829         * c-decl.c (warn_float_equal): Define.
14830         (c_decode_option): Recognize -W[no-]float-equal.
14831         * c-typeck.c (build_binary_op): Conditionally warn
14832         about equality tests of floating point types.
14833         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
14834         * invoke.texi: Add docs for -Wfloat-equal warning.
14835
14836 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
14837
14838         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
14839         generating RTL directly.
14840         * mips.h (INIT_TARGET_OPTABS): Likewise.
14841         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
14842
14843         * expr.h (init_mov_optab): Delete declaration
14844
14845         * h8300.c (WORD_REG_USED): Update to avoid useless register
14846         saves in interrupt functions and functions which never return.
14847
14848         * cse.c (struct set): Delete inner_dest_loc field.
14849         (cse_insn): Remove assignments to inner_dest_loc field.
14850
14851 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
14852
14853         * ggc-page.c: Don't include <unistd.h> etc taken care of
14854         by "system.h".  Include <sys/mman.h> afterward.
14855
14856 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
14857
14858         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
14859         ggc_alloc_string.
14860
14861 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
14862
14863         * xcoffout.c (xcoffout_declare_function): Add documentation.
14864         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
14865         TARGET_64BIT.  Compare constant to -1, not bit pattern.
14866         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
14867         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
14868         gen_movsi typos.
14869
14870 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
14871
14872         * dwarf2out.c (add_abstract_origin_attribute): Abort if
14873         origin_die is NULL.
14874         (gen_inlined_enumeration_type_die): Do not abort if the type has
14875         not been writeen out.
14876         (gen_inlined_structure_type_die): Do not abort if the type has
14877         not been writeen out.
14878         (gen_inlined_union_type_die): Do not abort if the type has
14879         not been writeen out.
14880         (gen_tagged_type_instantiation_die): Do not abort if the type
14881         has not been written out.
14882
14883 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14884
14885         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
14886         call it.
14887         * reg-stack.c (straighten_stack): Copy hard reg set with
14888         COPY_HARD_REG_SET.
14889
14890 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
14891
14892         * builtins.c (stabilize_va_list): Stabilize array type va_list
14893         to a pointer type, not the base record type.
14894         (expand_builtin_va_copy): Dereference the pointers explicitly;
14895         use the correct size for the copy.
14896
14897         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
14898         (rs6000_va_arg): Likewise.
14899
14900 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
14901
14902         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
14903
14904 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
14905
14906         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
14907         field.
14908         (DECL_BUILT_IN_CLASS): Adjust accordingly.
14909
14910 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
14911
14912         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
14913         (init_ggc): Use it instead of a constant.
14914         (ggc_collect): Bound allocated_last_gc by it.
14915
14916 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
14917
14918         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
14919         with va_list.
14920
14921 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
14922
14923         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
14924         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
14925         * configure:  Regen.
14926         * config/mips/openbsd.h:  New, OpenBSD little endian target.
14927         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
14928         * config/mips/xm-openbsd.h:  New, OpenBSD host.
14929
14930 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
14931
14932         * config/m68k/m68k.c (output_function_prologue,
14933         output_function_epilogue): Use
14934         current_function_uses_pic_offset_table instead of regs_ever_live
14935         to decide whether to save/restore pic register.
14936         (legitimize_pic_address): Don't modify regs_ever_live any more.
14937
14938 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
14939
14940         * function.h (struct function): Add x_dont_save_pending_sizes_p.
14941         * stor-layout.c (variable_size): Don't add sizes to the pending
14942         sizes list if x_dont_save_pending_sizes_p is set.
14943
14944 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
14945
14946         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
14947         for symbolic_operand().
14948         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
14949
14950 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14951
14952         * combine.c (gen_rtx_combine): Add missing call to va_end().
14953
14954         * final.c (asm_fprintf): Likewise.
14955
14956         * genattrtab.c (attr_rtx): Likewise.
14957
14958 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
14959
14960         * cse.c: Update comments.
14961         (cse_insn): When converting a conditional/computed jump into
14962         an unconditional jump, always make sure a BARRIER immediately
14963         follows the converted jump.  Do not delete unreachable code.
14964         (cse_basic_block): Do not delete unreachable code.
14965         * toplev.c (rest_of_compilation): Move call to
14966         delete_trivially_dead_insns after the conditional call to
14967         jump_optimize.
14968
14969 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14970
14971         * collect2.c (make_temp_file): Don't prototype.
14972
14973         * gcc.c (make_temp_file): Likewise.
14974
14975         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
14976
14977 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
14978
14979         * varasm.c (asm_emit_uninitialised): New function: Generate
14980         the assembler statements necessary to declare an uninitialised
14981         variable.
14982         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
14983         variable.
14984         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
14985         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
14986         section.
14987         (assemble_variable): Use asm_emit_uninitialised to emit an
14988         uninitialised variable.
14989
14990 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
14991
14992         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
14993         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
14994         <geoffk@cygnus.com>.
14995
14996 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14997
14998         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
14999         * c-common.h (builtin_function): Don't declare.
15000
15001         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
15002         DECL_BUILT_IN.
15003         (pushdecl): Likewise.
15004         (finish_decl): Likewise.
15005         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
15006         int.  All callers changed.
15007         Set the builtin's DECL_BUILT_IN_CLASS.
15008         * tree.h (enum built_in_class): New.
15009         (enum built_in_function): Delete NOT_BUILT_IN.
15010         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
15011         in a union.
15012         (DECL_SET_FUNCTION_CODE): Likewise.
15013         (DECL_BUILT_IN_CLASS): New macro.
15014         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
15015         (struct tree_decl): Split builtin function code field into a
15016         struct.
15017         (builtin_function): Declare.
15018
15019 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
15020
15021         * optabs.c (init_traps): Fix typo in last change.
15022
15023 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
15024
15025         * toplev.c (rest_of_decl_compilation): Update comment.
15026
15027 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
15028
15029         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
15030         in .sbss if appropriate.
15031         (EXTRA_SECTION_FUNCTIONS): Add sbss.
15032         (SBSS_SECTION_ASM_OP): New macro.
15033         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
15034         (EXTRA_SECTIONS): Add in_sbss.
15035         * config/mips/mips.h: Prototype sbss_section.
15036
15037 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
15038
15039         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
15040         to disappear.
15041
15042 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
15043
15044         * optabs.c (init_traps): Register trap_rtx as a GC root.
15045
15046 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15047
15048         * config/mips/mips.c (function_arg_pass_by_reference): Define
15049         unconditionally, since it's called unconditionally.
15050
15051 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
15052
15053         * toplev.c (documented_lang_options): Add -fshort-wchar.
15054         * c-decl.c (c_decode_option): Likewise.
15055         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
15056         for wchar_t.
15057         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
15058         * gcc.c (default_compilers): If -fshort-wchar,
15059         override __WCHAR_TYPE__.
15060         * tm.texi (C Dialect Options): Add -fshort-wchar.
15061
15062         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
15063         symbol for a variable.
15064
15065         * cpplib.h (CPP_PREPROCESSED): New macro.
15066         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
15067         we're seeing this input for a second time.
15068
15069 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
15070
15071         * emit-rtl.c (init_emit_once): Initialize modes first.
15072
15073 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
15074
15075         * config/i386/i386.c (pic_label_name): Change to char pointer.
15076         (global_offset_table): New variable.
15077         (load_pic_register): Fill global_offset_table if it hasn't
15078         already been done.  Allocate pic_label_name dynamically.
15079         * ggc.h (empty_string): New variable.
15080         * ggc-simple.c (empty_string): Likewise.
15081         (init_ggc): Allocate empty_string and add as root.
15082         * stmt.c (digit_strings): New variable.
15083         (init_stmt): Add last_block_end_note as root.  Allocate and
15084         initialize digit_strings.
15085         (expand_asm_operands): Use empty_string instead of string
15086         constant.  Use digit_strings instead of string constants.
15087         * profile.c (init_arc_profiler): Allocate string with
15088         ggc_alloc_string instead of xmalloc.
15089         (output_func_start_profiler): Likewise.
15090         * c-typeck.c (digest_init): Check if init is error_mark_node.
15091
15092 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
15093                           Richard Henderson  <rth@cygnus.com>
15094
15095         * ggc-page.c: New file.
15096         * Makefile.in (ggc-page.o): New.
15097
15098 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
15099
15100         * invoke.texi: Document -fdelete-null-pointer-checks
15101         * toplev.c (flag_delete_null_pointer_checks): New.
15102         (f_options): Add entry for -fdelete-null-pointer-checks.
15103         (rest_of_compilation): Conditionalize null pointer check
15104         elimination on flag_delete_null_pointer_checks.
15105         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
15106
15107 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
15108
15109         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
15110         copyright notice and special exception to GPL.
15111
15112 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15113
15114         * abi64.h (mips_function_value): Add prototype arguments.
15115
15116         * mips-protos.h: New file with mips prototypes.
15117
15118         * mips.c: Include "tm_p.h".
15119         (mktemp, lookup_name): Add prototype arguments.
15120         (extern_list, string_constant, mips_fill_delay_slot,
15121         mips_output_external, mips_output_external_libcall,
15122         mips_output_filename, mips_declare_object, function_prologue,
15123         mips_expand_prologue, function_epilogue, mips16_constant,
15124         build_mips16_function_stub, mips_output_conditional_branch):
15125         Constify a char*.
15126         (mips_va_start): Remove unused variable `u'.
15127         (mips_va_arg): Cast value to unsigned when comparing against one.
15128         (trace): Delete.
15129         (save_restore_insns, mips_expand_prologue): Add missing arg in
15130         call to `large_int'.
15131
15132         * mips.h: Move prototypes to mips-protos.h.
15133         (data_section, memory_address_p, rdata_section,
15134         readonly_data_section, simple_epilogue_p, text_section): Delete
15135         prototypes delcared elsewhere.
15136         (mips_epilogue_delay_slots, print_options): Delete unused decls.
15137         (trace): Delete.
15138         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
15139
15140         * mips.md: Delete extra args in call to `mips_move_2words'.
15141
15142         * xm-iris6.h (alloca): Add prototype argument.
15143
15144         * genpeep.c: Include "tm_p.h" in generated output file.
15145
15146 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
15147
15148         * basic-block.h (find_edge_index): Change parameters.
15149         * flow.c (verify_edge_list): Pass basic_block parameters to
15150         find_edge_index instead of integers.
15151
15152 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
15153
15154         * combine.c (simplify_comparison): Use an unsigned shift to adjust
15155         the constant.
15156
15157 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
15158
15159         * gcc.1: Fix a formatting error.
15160
15161 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
15162
15163         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
15164         i786, mn10200, mn10300, pdp11, v850.
15165
15166 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
15167
15168         * libgcc2.c (num_digits): Add prototype with
15169         __attribute__((const)).
15170         (__terminate): Add prototype.
15171
15172 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
15173
15174         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
15175
15176         * alpha/alpha.c (print_operand): Fix type of `code'.
15177         (alpha_output_filename): Constify.
15178         * alpha/alpha.h: Move all function declarations ...
15179         * alpha/alpha-protos.h: ... here.  New file.
15180         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
15181         (SECTION_FUNCTION_TEMPLATE): Likewise.
15182
15183 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15184
15185         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
15186         * expr.c (expand_expr): Likewise.
15187         (do_jump): Likewise.
15188         (do_store_flag): Pass ccp_store_flag to can_compare_p.
15189         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
15190         accessor macros.
15191         (enum can_compare_purpose): New.
15192         (can_compare_p): Adjust prototype.
15193         (prepare_cmp_insn, prepare_operand): Declare.
15194         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
15195         * optabs.c (cmp_available_p): Deleted.
15196         (expand_abs): Pass ccp_jump to can_compare_p.
15197         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
15198         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
15199         Call can_compare_p rather than cmp_available_p.
15200         (prepare_operand): No longer static.
15201         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
15202         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
15203         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
15204         sequence to use emit_cmp_and_jump_insns.
15205         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
15206
15207 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
15208
15209         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
15210         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
15211         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
15212         (plus (reg) (const_int 0))
15213         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
15214
15215 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
15216
15217         * rs6000.c (expand_block_move): DImode loads and stores require
15218         word-aligned displacements.  Increment address registers with
15219         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
15220
15221 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
15222
15223         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
15224         is no name for the base type, rather than segfault.  If we are
15225         writing out a complex integer type, use DW_ATE_lo_user.
15226
15227         * expr.c (emit_move_insn_1): If we are copying a complex that fits
15228         in one word or less (complex char, complex short, or on 64 bit
15229         systems complex float) to/from a hard register, copy it through
15230         memory instead of dying in gen_{real,imag}part.  If we have a
15231         short complex type, prevent inlining since it allocates stack
15232         memory.
15233
15234         * tree.c (build_complex_type): If we are writing dwarf2 output,
15235         generate a name for complex integer types.
15236
15237 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
15238
15239         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
15240         * flow.c (remove_edge): Remove extra whitespace.
15241         (remove_fake_edges): Fix comment.
15242         (add_noreturn_fake_exit_edges): Use the correct name.
15243
15244 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
15245
15246         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
15247         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
15248         (clean): Depend on INTL_CLEAN.
15249         (maintainer-clean): Adjust.
15250
15251 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15252
15253         * configure.in (AC_PREREQ): Bump to 2.13.
15254         (AC_C_STRINGIZE): Call this instead of using a custom macro.
15255
15256         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
15257
15258         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
15259
15260         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
15261
15262         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
15263         (HAVE_STRINGIZE): Define.
15264
15265 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
15266
15267         * c-parse.in: save and restore warn_pointer_arith on __extension__
15268         along with pedantic.
15269         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
15270         Set the type of extension to itype rather than $<itype>1 kludge.
15271         * extend.texi (Alternate Keywords): Adjust documentation.
15272         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
15273
15274 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
15275
15276         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
15277         most assembler templates.
15278
15279         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
15280         FP loads and stores.
15281         (following_call): Always return zero for the PA8000.
15282         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
15283         FP loads and stores.
15284         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
15285
15286         * pa.h (BRANCH_COST): Define.
15287
15288         * pa.md (return, return_internal): Use bve for PA2.0.
15289
15290         * pa.md (fused multiply): Add variants which reduce height for the
15291         fused multiply, but which still generate 2 insns.
15292         (fnegabs): Similarly.
15293
15294         * pa.md (subsi3): Turn into an expander.  Create two anonymous
15295         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
15296         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
15297
15298         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
15299         for TARGET_PA_20.
15300         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
15301         code generation.
15302         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
15303         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
15304
15305         * regclass.c (init_regs): Add "top_of_stack" as a garbage
15306         collection root.
15307
15308         * flow.c (record_active_eh_regions): Terminate loop after finding
15309         the last insn in the last basic block.
15310
15311 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15312
15313         * config/c4x/c4x.md: Delete parallel instruction peepholes.
15314
15315 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15316
15317         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
15318
15319 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15320
15321         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
15322         splitting to not use output template.
15323
15324 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15325
15326         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
15327         * config/c4x/c4x.c (c4x_va_start): New function.
15328
15329 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
15330
15331         * genrecog.c (not_both_true): Handle correctly cases when called for
15332         tests with different positions in the insn.
15333
15334 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15335
15336         * machmode.h (HOST_PTR_PRINTF): Move from here ...
15337
15338         * system.h (HOST_PTR_PRINTF): ... to here.
15339
15340         * mips-tfile.c: Don't include machmode.h.
15341
15342         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
15343         (mips-tfile.o): Don't depend on machmode.h.
15344
15345 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15346
15347         * haifa-sched.c (sched_analyze): Rename local variable `region' to
15348         avoid conflicts with typedef struct `region' at the top level scope.
15349
15350 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
15351
15352         * basic-block.h (basic_block): Add eh_beg, eh_end.
15353         * flow.c (entry_exit_blocks): Update.
15354         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
15355         Call new functions.
15356         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
15357         lists.c functions to allocate insn lists.
15358         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
15359         edge creation ...
15360         (make_eh_edge): ... here.  New.
15361         (move_stray_eh_region_notes): New.
15362         (record_active_eh_regions): New.
15363         (delete_unreachable_blocks): Split out block merging ...
15364         (try_merge_blocks): ... here.  New.
15365         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
15366         Dump debugging data.
15367         (merge_blocks_move_successor_nojumps): Likewise.
15368         (merge_blocks): Use eh_beg+eh_end to validate block movement.
15369
15370 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
15371
15372         * extend.texi (Bound member functions): Document unbound pmf
15373         conversion.
15374
15375 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
15376
15377         * flow.c (split_edge): Handle insertion on a fallthrough edge which
15378         has the EXIT_BLOCK as a dest.
15379
15380 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
15381
15382         * flow.c (remove_edge): New function to remove an edge from the
15383         flow graph.
15384         (remove_fake_successors): New function to remove fake successor edges.
15385         (remove_fake_edges): New function to remove all fake edges from the
15386         flow graph.
15387         (add_fake_exit_edges): New function to add fake edges from all blocks
15388         with no successors to the exit block.
15389         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
15390         prototypes for new functions.
15391
15392 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
15393
15394         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
15395         Use Pmode to determine whether to output .dword or .word.
15396
15397 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
15398
15399         * tree.c (built_in_filename): New variable.
15400         (BUILT_IN_FILENAME): New macro.
15401         (init_tree_codes): Allocate built_in_filename.
15402         (make_node): Use built_in_filename instead of string constant.
15403
15404 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
15405
15406         * configure.in: Add fr30 target.
15407         * configure: Regenerate.
15408         * config/fr30: New directory.
15409         * config/fr30/crti.asm: New file.
15410         * config/fr30/fr30.c: New file.
15411         * config/fr30/crtn.asm: New file.
15412         * config/fr30/fr30.h: New file.
15413         * config/fr30/fr30.md: New file.
15414         * config/fr30/lib1funcs.asm: New file.
15415         * config/fr30/t-fr30: New file.
15416         * config/fr30/xm-fr30.h: New file.
15417
15418 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
15419
15420         * flow.c (merge_blocks_move_successor_nojumps): Delete the
15421         BARRIER at the end of the successor, not the BARRIER before
15422         the successor.
15423
15424         * pa.c (pa_add_gc_roots): Fix thinko in last change.
15425
15426 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
15427
15428         * stmt.c (any_pending_cleanups): Don't crash when
15429         current_function->stmt is unset.
15430
15431 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15432
15433         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
15434         other initializations that may use it for relative offsets.
15435
15436 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15437
15438         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
15439         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
15440         * config/i386/sol2dbg.h: Removed.
15441         * config/i386/sol2gas.h: New file, to enable gas work-around.
15442         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
15443         Don't use sol2dbg.h.
15444         * configure: Rebuilt.
15445
15446 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
15447
15448         * invoke.texi (-fthis-is-variable): Remove documentation.
15449
15450 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
15451
15452         * basic-block.h (compute_bb_for_insn): Declare.
15453         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
15454         to use; set size of basic_block_for_insn directly.
15455         (find_basic_blocks): Update.
15456
15457 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15458
15459         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
15460
15461 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15462
15463         * crtstuff.c (ON_EXIT): Delete empty macro definition.
15464         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
15465
15466 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
15467
15468         * c-decl.c (c_decode_option): Extend comment.
15469
15470 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
15471
15472         * toplev.c (progname): Make 'const char *'
15473         (flag_print_mem): Move out of main.
15474         (version_flag): Move out of main.
15475         (filename): Move out of main.
15476         (debug_args): Remove g prefix from options.
15477         (documented_lang_options): Remove cpplib specific options.
15478         (display_help): Add g prefix to debug options.
15479         (check_lang_option): Delete this function.
15480         (decode_d_option): New function: Decode -d... option.
15481         (decode_f_option): New function: Decode -f... option.
15482         (decode_W_option): New function: Decode -W... option.
15483         (decode_g_option): New function: Decode -g... option.
15484         (independent_decode_option): New function: Decode a language
15485         independent command line option.
15486         (main): Invoke lang_decode_option and then
15487         independent_decode_option on each command line option in
15488         turn.
15489
15490 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
15491
15492         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
15493          * fold-const.c (fold_range_test): Do not try to fold the range
15494          test if the rhs or lhs has side effects.
15495
15496         * basic-block.h (compute_flow_dominators): Declare.
15497
15498         * gcse.c (alloc_code_hoist_mem): New function.
15499         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
15500         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
15501         (hoist_code, one_code_hoisting_pass): Likewise.
15502         (gcse_main): If optimizing for size, then hoist expressions
15503         computed in multiple dominated basic blocks.
15504
15505         * gcse.c (invalid_nonnull_info): New function.
15506         (delete_null_pointer_checks): Likewise.
15507         * rtl.h (delete_null_pointer_checks): Declare.
15508         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
15509
15510         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
15511         (merge-blocks_move_successor_nojumps): Likewise.
15512         (merge_blocks): Allow merging of some blocks, even if it requires
15513         physical movement of the blocks, but not if it requires new jumps.
15514
15515         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
15516         Callers and prototype changed.
15517         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
15518
15519 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15520
15521         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
15522         -YP when both -p and -pg are present.  From i386/sol2.h.
15523
15524 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15525
15526         * Makefile.in (distclean): Delete tm_p.h.
15527         * configure.in: Create a new file, "tm_p.h", from a list in
15528         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
15529         "i386/i386-protos.h".
15530
15531         * alias.c: Include "tm_p.h".
15532         * c-typeck.c: Likewise.
15533         * calls.c: Likewise.
15534         * cse.c: Likewise.
15535         * emit-rtl.c: Likewise.
15536         * explow.c: Likewise.
15537         * expmed.c: Likewise.
15538         * expr.c: Likewise.
15539         * final.c: Likewise.
15540         * flow.c: Likewise.
15541         * fold-const.c: Likewise.
15542         * function.c: Likewise.
15543         * gcse.c: Likewise.
15544         * global.c: Likewise.
15545         * haifa-sched.c: Likewise.
15546         * integrate.c: Likewise.
15547         * jump.c: Likewise.
15548         * local-alloc.c: Likewise.
15549         * loop.c: Likewise.
15550         * optabs.c: Likewise.
15551         * recog.c: Likewise.
15552         * reg-stack.c: Likewise.
15553         * regclass.c: Likewise.
15554         * regmove.c: Likewise.
15555         * reload.c: Likewise.
15556         * reload1.c: Likewise.
15557         * reorg.c: Likewise.
15558         * resource.c: Likewise.
15559         * stmt.c: Likewise.
15560         * stor-layout.c: Likewise.
15561         * toplev.c: Likewise.
15562         * tree.c: Likewise.
15563         * unroll.c: Likewise.
15564         * genattrtab.c (main): Make generated file include "tm_p.h".
15565         * genemit.c (main): Likewise.
15566         * genoutput.c (main): Likewise.
15567         * genrecog.c (main): Likewise.
15568
15569         * i386.h: Delete all prototypes.
15570         * i386.c: Include "tm_p.h".
15571         (ix86_attr_length_default): Call constant_call_address_operand
15572         with correct number of arguments.
15573         * i386-protos.h: New file.
15574         * i386.md (unnamed patterns): Call constant_call_address_operand
15575         with correct number of arguments.
15576         (exception_receiver): Call load_pic_register with correct number
15577         of arguments.
15578
15579 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
15580
15581         * c-pragma.c (mark_align_stack): Dereference the void* properly.
15582
15583 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
15584
15585         * rtl.h (insns_safe_to_move_p): New function.
15586         * loop.c (find_and_verify_loops): Use it.
15587         * rtlanal.c (insns_safe_to_move_p): Define it.
15588
15589 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
15590
15591         * c-pragma.c: Include ggc.h.
15592         * Makefile.in (c-pragma.o): Update.
15593
15594 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15595
15596         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
15597         (LIB_SPEC): Likewise.
15598         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
15599         Reindent -YP/-p/-pg.
15600         Copied from config/sparc/sol2.h.
15601
15602 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
15603
15604         * c-pragma.c (mark_align_stack): New.
15605         (init_pragma): New.
15606         * c-pragma.h (init_pragma): Declare it.
15607         * c-lex.c (init_parse): Call it.
15608
15609 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15610
15611         * configure.in: Pick up thread library on Solaris/x86 just
15612         like on Solaris/sparc.
15613         * configure: Rebuilt.
15614
15615 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
15616
15617         * rtl.h (global_rtx_index): New enum.
15618         (global_rtl): Change to array of rtx.
15619         (pc_rtx, cc0_rtx): Redefine accordingly.
15620         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
15621         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
15622         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
15623         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
15624         (const_int_rtx): Change to array of rtx.
15625         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
15626         accordingly.
15627         * emit-rtl.c (global_rtl): Change to array of rtx.
15628         (const_int_rtx): Change to aray of rtx.
15629         (gen_rtx_CONST_INT): Redefine accordingly.
15630         (init_emit_once): Allocate and initialize global_rtl.  Likewise
15631         for const_int_rtx.  Add both as GC roots.
15632         * genattrtab.c (global_rtl): Update declaration.
15633
15634 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
15635
15636         * Makefile (USER_H): Add iso646.h back.
15637
15638 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
15639
15640         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
15641         zapping the LOG_LINKS of sched_before_next_call.
15642
15643         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
15644         * pa.c (insn_refs_are_delayed): Renamed from
15645         insn_sets_and_refs_are_delayed.
15646
15647 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
15648
15649         * functiion.h (struct function): Add x_whole_function_mode_p.
15650         (retrofit_block): Declare.
15651         * function.c (retrofit_block): New function.
15652         (identify_blocks): Add assertions.  Allow an incomplete set of
15653         block notes if we're still generating code for the function.
15654         * integrate.c: Include loop.h.
15655         (expand_inline_function): Call find_loop_tree_blocks to map block
15656         notes to blocks when in whole-function mode.  Use retrofit_block
15657         to insert new BLOCKs for the inlined function, rather than
15658         insert_block.
15659         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
15660         * Makefile.in (integrate.o): Depend on loop.h.
15661
15662 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
15663
15664         * tree.h (warn_about_unused_variables): Declare.
15665         * stmt.c (warn_about_unused_variables): New function, split out
15666         from ...
15667         (expand_end_bindings): Here.
15668
15669 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
15670
15671         * stmt.c (preserve_subexpressions_p): Don't crash when
15672         current_function->stmt is unset.
15673
15674 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
15675
15676         * stmt.c (expand_start_bindings): Allow callers to pass a flag
15677         indicating that no NOTE_INSN_BLOCK_BEG note is required.
15678         (expand_start_target_temps): Use it.
15679         * except.c (expand_eh_region_start_for_decl): Likewise.
15680         * expr.c (expand_expr): Likewise.
15681
15682 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
15683
15684         * fold-const.c (operand_equal_p): Pay attention to side effects.
15685
15686 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
15687
15688         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
15689         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
15690
15691         * tlink.c (scan_linker_output): Look for keywords before accepting
15692         a mangled name in quotes.
15693
15694 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
15695
15696         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
15697         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
15698
15699 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
15700
15701         * alpha.md: Revert Thu Nov 26 change that came in through the
15702         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
15703         Avoid earlyclobber when possible.
15704
15705 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15706
15707         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
15708
15709         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
15710         Define HAVE_ON_EXIT.
15711
15712 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15713
15714         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
15715         CTYPE_CONV in all ctype macros.
15716
15717         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
15718         from system.h.
15719
15720         * cexp.y (initialize_random_junk): Likewise.
15721
15722         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
15723
15724         * i370.c (handle_pragma): Likewise.
15725
15726         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
15727
15728         * v850.c (override_options): Likewise.
15729
15730         * doprint.c (_doprnt): Likewise.
15731
15732         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
15733         Likewise.
15734
15735         * fixinc/server.c (load_data): Likewise.
15736
15737         * fold-const.c (real_hex_to_f): Likewise.
15738
15739         * genattr.c (write_upcase, gen_attr): Likewise.
15740
15741         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
15742         write_upcase): Likewise.
15743
15744         * genemit.c (print_code): Likewise.
15745
15746         * genopinit.c (gen_insn): Likewise.
15747
15748         * genpeep.c (print_code): Likewise.
15749
15750         * genrecog.c (print_code): Likewise.
15751
15752         * optabs.c (init_libfuncs): Likewise.
15753
15754 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
15755
15756         * haifa-sched.c (sched_analyze): Keep the list of notes organized
15757         in pairs.
15758         (reemit_notes): Likewise.
15759
15760 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
15761
15762         * ggc.h (ggc_root): Move to ggc-common.c.
15763         (roots): Remove.
15764         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
15765         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
15766         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
15767         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
15768         * ggc-common.c (ggc_root): Move from ggc.h.
15769         (roots): Declare, static.
15770         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
15771         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
15772         null or check/set mark bit.
15773         (ggc_mark_roots): New.
15774         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
15775
15776 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
15777
15778         * m32r.c: Include toplev.h.
15779         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
15780         (gen_compare): Rename swap_p to must_swap to match uses.
15781         Add default abort case.
15782         (m32r_output_function_epilogue): Remove unused variables.
15783         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
15784         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
15785         define to empty parameter list.  Update all uses.
15786         (predicate decls): Use enum machine_mode not int.
15787         * m32r.md (movsi): Call abort, not fatal_insn.
15788         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
15789
15790 1999-09-14  Andrew Haley  <aph@cygnus.com>
15791
15792         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
15793         use $0 instead of 0.
15794
15795 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15796
15797         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
15798         computation out of loop over hard regs.
15799
15800 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
15801
15802         * function.c (identify_blocks): Don't shadow a variable in an
15803         outer scope.
15804         * integrate.c (integrate_decl_tree): Don't use pushlevel,
15805         pushdecl, or poplevel to build up the new BLOCK tree.
15806         (expand_inline_function): Likewise.
15807         (integrate_parm_decls): Likewise.
15808
15809 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
15810
15811         * c-typeck.c (qualify_type): Merge qualifiers from both types.
15812
15813 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
15814
15815         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
15816         * invoke.texi: Document this change.
15817
15818 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
15819
15820         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
15821         Free the struct.
15822         (mark_emit_status): Renamed from mark_emit_state.
15823         * except.c (mark_eh_status): Renamed from mark_eh_state.
15824         Check not null before marking.
15825         (free_eh_status): New.
15826         * expr.c (mark_expr_status, free_expr_status): New.
15827         * function.c (free_machine_status): New.
15828         (free_after_parsing): New.
15829         (free_after_compilation): Move bits to free_after_parsing; call
15830         free_eh_status, free_expr_status; zero the marked members of the
15831         function state.
15832         (prepare_function_start): No can_garbage_collect.
15833         Call init_eh_for_function.
15834         (expand_dummy_function_end): Free up current_function state.
15835         (mark_function_status): Renamed from mark_function_state.
15836         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
15837         * function.h (struct function): No can_garbage_collect.
15838         (free_machine_status, free_after_parsing): Declare.
15839         (free_eh_status, free_expr_status): Declare.
15840         * ggc.h (mark_expr_status): Declare.
15841         * stmt.c (free_stmt_status): Free the struct.
15842         (mark_stmt_status): Renamed from mark_stmt_state.
15843         (init_stmt): Don't call init_eh.
15844         (init_stmt_for_function): Don't call init_eh_for_function.
15845         * toplev.c (compile_file): Call init_eh.
15846         (rest_of_compilation): Free basic block info before ggc_collect.
15847         Call free_after_parsing; conditionally call free_after_compilation.
15848         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
15849         Check not null before marking.
15850         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
15851
15852 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
15853
15854         * c-lex.c (yylex): Initialize warn.
15855
15856 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
15857
15858         * pa.c (emit_move_sequence): Properly set the mode of the scratch
15859         register when performing secondary reloads for the SAR register.
15860
15861 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
15862
15863         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
15864         (NOTE_BLOCK): New macro.
15865         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
15866         * function.h (identify_blocks): Change prototype.
15867         * function.c (identify_blocks): Simplify.
15868         (reorder_blocks): Likewise.
15869         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
15870         NOTE_INSN_BLOCK_{BEG,END}.
15871         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
15872         the list of saved notes if the note isn't a
15873         NOTE_INSN_BLOCK_{BEG,END}.
15874         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
15875         NOTE_BLOCK_NUMBER.
15876         (reemit_notes): Adjust recreation of notes to reflect new saved
15877         note structure.
15878         * print-rtl.c (print_rtx): Print the address of the BLOCK when
15879         printing a block note.
15880         * stmt.c (block_vector): Remove.
15881         (find_loop_tree_blocks): Simplify.
15882         (unroll_block_trees): Likewise.
15883         * tree.h (reorder_block): Change prototype.
15884
15885 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
15886
15887         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
15888         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
15889         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
15890         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
15891         (atexit, exit): Simplify.
15892         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
15893         * config/lots: Remove defns of HAVE_ATEXIT.
15894
15895 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
15896
15897         * calls.c (precompute_arguments): Fix typo in comment.
15898         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
15899         TARGET_EXPR.
15900
15901 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
15902
15903         * dsp16xx.c (override_options): Fix typos in GC root registration.
15904
15905 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
15906
15907         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
15908         from config/svr4.h.
15909         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
15910         (FUNCTION_PROFILER): Redefine appropriately for Linux.
15911         (CC1_SPEC): Likewise.
15912
15913 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15914
15915         * genattr.c (main): Add extern prototype.  Call return, not exit.
15916         * genattrtab.c (main): Likewise.
15917         * gencheck.c (main): Likewise.
15918         * gencodes.c (main): Likewise.
15919         * genconfig.c (main): Likewise.
15920         * genemit.c (main): Likewise.
15921         * genextract.c (main): Likewise.
15922         * genflags.c (main): Likewise.
15923         * gengenrtl.c (main): Likewise.
15924         * genopinit.c (main): Likewise.
15925         * genoutput.c (main): Likewise.
15926         * genpeep.c (main): Likewise.
15927         * genrecog.c (main): Likewise.
15928
15929         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
15930         * genattrtab.c (get_insn_name): Likewise.
15931         * gencodes.c (get_insn_name): Likewise.
15932         * genconfig.c (get_insn_name): Likewise.
15933         * genemit.c (get_insn_name): Likewise.
15934         * genextract.c (get_insn_name): Likewise.
15935         * genflags.c (get_insn_name): Likewise.
15936         * genopinit.c (get_insn_name): Likewise.
15937         * genpeep.c (get_insn_name): Likewise.
15938
15939         * gencheck.c (usage): Add static prototype.
15940         * genextract.c (print_path): Constify a char*.
15941         * genopinit.c (optabs): Likewise.
15942         * genoutput.c (operand_data, data, output_predicate_decls,
15943         compare_operands): Likewise.
15944         * genrecog.c (write_tree): Add default case in switch.
15945
15946 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15947
15948         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
15949
15950         * print-rtl.c (get_insn_name): Remove prototype.
15951
15952         * toplev.h (progname): Declare const.
15953
15954         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
15955         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
15956         dump_sched_info, dump_local_alloc, regset_release_memory,
15957         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
15958         error_with_file_and_line, error_with_decl, error_for_asm, error,
15959         fatal, warning_with_file_and_line, warning_with_decl, warning,
15960         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
15961         Remove redundant prototypes.
15962
15963         (notice, check_lang_option, report_file_and_line, vnotice,
15964         mark_file_stack): Add static prototype.
15965         (set_fatal_function): Add prototype.
15966         (vnotice, report_file_and_line, set_fatal_function,
15967         check_lang_option): Constify a char*.
15968         (main): Prototype.  Call return, not exit.
15969
15970 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15971
15972         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
15973
15974         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
15975
15976         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
15977
15978         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
15979
15980 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15981
15982         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
15983         behave as if it's zero in all cases.
15984         (expand_function_start): Adjust call to assign_parms.
15985         * tree.h (assign_parms): Adjust prototype.
15986         * objc/objc-act.c (hack_method_prototype): Adjust call to
15987         assign_parms.
15988
15989 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
15990
15991         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
15992         arg_pointer_rtx fixed if the argument pointer register is
15993         not fixed.
15994         (NONZERO_BASE_PLUS_P): Likewise.
15995
15996 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
15997
15998         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
15999         match_insn2 to match_insn.
16000         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
16001
16002 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
16003
16004         * Makefile.in (USER_H): Remove va-foo.h.
16005
16006         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
16007         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
16008         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
16009         va-spur.h,va-v850.h}: Remove.
16010
16011 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
16012
16013         * sparc/sparc.md (eligible_for_return_delay): New attribute.
16014         (in_return_delay): Use it instead of match_insn.
16015
16016 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16017
16018         * config/alpha/va_list.h (va-alpha.h): Do not include.
16019         (__gnuc_va_list): Typedef as in varargs.h.
16020
16021 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
16022
16023         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
16024         DECL_LIVE_RANGE_RTL.
16025
16026 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
16027
16028         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
16029         not NOTE_BLOCK_NUMBER.
16030         (expand_eh_region_end): Likewise.
16031         (find_exception_handler_labels): Likewise.
16032         (scan_region): Likewise.
16033         (exception_optimize): Likewise.
16034         (update_rethrow_references): Likewise.
16035         (set_insn_eh_region): Likewise.
16036         * final.c (final_scan_insn): Likewise.
16037         * flow.c (make_edges): Likewise.
16038         * integrate.c (expand_inline_function): Likewise.
16039         * print-rtl.c (print_rtx): Likewise.
16040
16041 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
16042
16043         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
16044         terms of builtin functions and types.
16045
16046         * mips.c (mips_build_va_list): New.
16047         (mips_va_start, mips_va_arg): New.
16048         * mips.h (BUILD_VA_LIST_TYPE): New.
16049         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
16050
16051         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
16052         (sh_build_va_list, sh_va_start, sh_va_arg): New.
16053         * sh.h (BUILD_VA_LIST_TYPE): New.
16054         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
16055
16056 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
16057
16058         * recog.h (struct recog_data): Make dup_num, operand_address_p,
16059         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
16060         (struct insn_data): Likewise with n_operands, n_dups,
16061         n_alternatives, output_format.
16062         * regclass.c (scan_one_insn): Cast n_operands to int before
16063         arithmetic inside comparison.
16064
16065 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
16066
16067         * toplev.c (compile_function): Unconditionally emit nop.
16068
16069 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16070
16071         * haifa-sched.c (actual_hazard): Move declaration of variable
16072         `this_cost' into the scope where it is used.
16073
16074 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16075
16076         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
16077         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
16078         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
16079
16080         * genrecog.c (make_insn_sequence): Call memset, not bzero.
16081
16082         * jump.c (find_insert_position): Don't declare or define unless
16083         !HAVE_conditional_arithmetic.
16084         (returnjump_p_1, delete_prior_computation): Add static prototypes.
16085
16086         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
16087
16088         * recog.c (offsettable_address_p): Prototype function pointer.
16089         (preprocess_constraints): Call memset, not bzero.
16090
16091         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
16092         (gcc_obstack_init): Don't declare.
16093         (fix_sizetype): Add static prototype.
16094         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
16095         (tree_cons): Call memset, not bzero.
16096
16097         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
16098         definition in macro ASM_WEAKEN_LABEL.
16099         (mark_const_hash_entry): Add static prototype.
16100
16101 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16102
16103         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
16104
16105         * unroll.c (find_common_reg_term, subtract_reg_term,
16106         loop_find_equiv_value): Add static prototypes.
16107         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
16108         (copy_loop_body): Remove unreachable break statement.
16109
16110         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
16111
16112         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
16113
16114 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16115
16116         Undo some changes from the gcc2 merge:
16117         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
16118         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
16119         pointers.
16120
16121         Undo this change:
16122         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
16123         * emit-rtl.c (gen_lowpart_common): Disable optimization of
16124         initialized float-int union if the value is a NaN.
16125
16126 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16127
16128         * gthr-win32.h: New file.
16129
16130         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
16131         shared as a valid attribute.
16132         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
16133         * extend.texi: Document `shared' variable attribute.
16134
16135 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
16136
16137         * configure.in: Handle --enable-threads on FreeBSD.
16138         * configure: Rebuit.
16139
16140 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
16141
16142         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
16143         thread support.
16144         * configure: Rebuilt.
16145
16146 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
16147                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
16148                           Rosimildo DaSilva <rdasilva@connecttel.com>
16149
16150         * configure.in (m68k-*-rtemscoff*): Added.
16151         * configure.in (mips64orion-*-rtems*): Converted to ELF.
16152         * configure.in (sparc-*-rtemsaout*): Added as alias for old
16153         sparc-rtems configuration.
16154         * configure.in (sparc-*-rtemself*): Added.
16155         * configure.in (sparc-*-rtems*): Now ELF not a.out.
16156         * config/i386/rtems.h: Added comment.
16157         * config/sparc/rtemself.h: New file.
16158
16159         * configure.in (m68k-rtemself): Added.
16160         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
16161         and DWARF_DEBUGGING_INFO.
16162         * config/m68k/crti.s: New file.
16163         * config/m68k/crtn.s: New file.
16164         * config/m68k/t-crtstuff: New file.
16165         * config/m68k/rtemself.h: New file.
16166
16167         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
16168         global ctor/dtor and C++ exception handling.
16169         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
16170         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
16171         ENDFILE_SPEC.
16172         * config/i386/t-rtems-i386: New File.
16173
16174 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
16175
16176         * stmt.c (expand_end_case): Return right away if the case stack is
16177         empty.
16178
16179 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
16180
16181         * Makefile.in (version.c): Remove rule incorrectly brought in from
16182         the gcc2 merge.
16183
16184 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
16185
16186         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
16187         * msdos/top.sed:  Take into account a prepended $(SHELL) to
16188         move-if-change.
16189         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
16190
16191         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
16192
16193 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16194
16195         * regmove.c (fixup_match_1): Don't change an unchanging register.
16196         (stable_but_for_p): Renamed to:
16197         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
16198         Changed all callers.
16199
16200 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
16201
16202         * loop.c (strength_reduce): Don't call reg_used_between_p if the
16203         insn from BL2 is after the insn from BL.
16204
16205 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
16206
16207         * recog.h (INSN_OUTPUT_FORMAT_*): New.
16208         (struct insn_data): Merge `template' and `outfun' into `output'.
16209         Add `output_format'.
16210         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
16211         (struct data): Remove `outfun'; add `output_format'.
16212         (name_for_index): Remove declaration.
16213         (output_insn_data): Handle output formats.
16214         (process_template): Emit the bare array for @.
16215         (gen_expand, gen_split): Set output_format to NONE.
16216         * output.h (get_insn_template): Declare.
16217         * final.c (get_insn_template): New.
16218         (final_scan_insn): Use it.
16219         * toplev.c (compile_file): Likewise.
16220
16221         * c4x/c4x.c (c4x_process_after_reload): Likewise.
16222         * i860/i860.c (output_delayed_branch): Likewise.
16223         (output_delay_insn): Likewise.
16224
16225 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16226
16227         * rtl.c (obstack_alloc_rtx): Removed.
16228
16229 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
16230
16231         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
16232
16233 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
16234
16235         * i386.c (call_insn_operand): Reject const_int.
16236         (expander_call_insn_operand): Use call_insn_operand.
16237
16238 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16239
16240         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
16241
16242 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
16243
16244         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
16245         Use DImode operation.
16246
16247 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
16248
16249         * gcc.c: Include sys/resource.h.
16250         (report_times): New flag.
16251         (execute):  If report_times is set, calculate and report the
16252         CPU time consumed by each subprocess.
16253
16254         (rus, prus): New globals.
16255         (option_map): Add --time.
16256         (display_help): Document -time.
16257         (process_command): Set report_times if -time is given.
16258         Turn off -pipe if -time is given.
16259
16260         * invoke.texi: Document new option -time.
16261
16262         * configure.in: Check for getrusage.  Check if we have to
16263         prototype getrusage.
16264         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
16265         * configure: Regenerate.
16266         * config.in: Regenerate.
16267
16268 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
16269
16270         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
16271         fields.
16272
16273 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
16274
16275         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
16276         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
16277         (nan): Return _thenan_sf or _thenan_df as appropriate.
16278         (L_thenan_sf): Define _thenan_sf.
16279         (L_thenan_df): Define _thenan_df.
16280
16281         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
16282         (DPBIT_FUNCS): Add _thenan_df.
16283
16284 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
16285
16286         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
16287         TYPE_SIZE_UNIT.
16288
16289 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16290
16291         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
16292
16293         * gcc.h: New file.
16294         (lang_specific_driver): Don't take a function pointer parameter.
16295         All callers changed.
16296
16297         * gcc.c: Include gcc.h.
16298         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
16299         lang_specific_extra_outfiles, fatal): Don't declare.
16300         (multilib_defaults_raw): Constify.
16301         (read_specs): Call memset, rather than bzero.
16302         (main): Call return, not exit.
16303         (lookup_compiler): Call memcpy, not bcopy.
16304         (fatal): Make extern.
16305
16306         * cppspec.c: Include gcc.h.
16307         (lang_specific_driver): Initialize variable `quote'.  Constify a
16308         char*.  All calls to the function pointer parameter now
16309         explicitly call `fatal'.
16310
16311         * gccspec.c (lang_specific_driver): Include gcc.h.
16312
16313 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
16314
16315         * arm.c (note_invalid_constants): Use recog_data.operand_type
16316         for recog_op_type.
16317
16318 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16319
16320         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
16321         Declare.
16322
16323         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
16324         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
16325         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
16326         reload_secondary_in_reload, reload_secondary_out_reload,
16327         reload_secondary_in_icode, reload_secondary_out_icode,
16328         reload_reg_rtx, reload_when_needed): Delete declarations.
16329         (struct reload): New structure.
16330         (rld): Declare new array.
16331         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
16332         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
16333         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
16334         reload_secondary_in_reload, reload_secondary_out_reload,
16335         reload_secondary_in_icode, reload_secondary_out_icode,
16336         reload_reg_rtx, reload_when_needed): Delete definitions.
16337         (rld): New array.
16338         (whole file): Replace uses of the deleted arrays with uses of rld.
16339         * reload1.c (whole file): Replace uses of the deleted arrays with
16340         uses of rld.
16341         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
16342         explicit loops, not with bcopy.
16343
16344 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
16345
16346         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
16347         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
16348         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
16349         insn_name): Delete and consolidate into new structures.
16350         (insn_operand_predicate_fn): New.
16351         (insn_output_fn): New.
16352         (insn_gen_fn): New.
16353         (struct insn_operand_data): New.
16354         (struct insn_data): New.
16355         (insn_data): New.
16356         (OUT_FCN): Update for insn_data change.
16357         * builtins.c (expand_builtin_strlen): Likewise.
16358         (expand_builtin_memcmp): Likewise.
16359         * combine.c (make_extraction, simplify_comparison): Likewise.
16360         * cse.c (canon_reg, cse_insn): Likewise.
16361         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
16362         * expmed.c (store_bit_field, extract_bit_field): Likewise.
16363         (emit_store_flag): Likewise.
16364         * expr.c (convert_move, emit_block_move): Likewise.
16365         (clear_storage, emit_push_insn, expand_increment): Likewise.
16366         (do_store_flag): Likewise.
16367         * expr.h (GEN_FCN): Likewise.
16368         (insn_gen_function): Die.
16369         * final.c (final_scan_insn): Update for insn_data change.
16370         (output_asm_name): Likewise.
16371         * function.c (fixup_var_refs_1): Likewise.
16372         * loop.c (check_dbra_loop): Likewise.
16373         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
16374         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
16375         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
16376         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
16377         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
16378         * regmove.c (gen_add3_insn): Likewise.
16379         * reload.c (push_secondary_reload, combine_reloads): Likewise.
16380         (find_reloads, find_reloads_address_1): Likewise.
16381         (debug_reload_to_stream): Likewise.
16382         * reload1.c (emit_reload_insns, gen_reload): Likewise.
16383         * stmt.c (expand_end_case): Likewise.
16384         * toplev.c (compile_file): Likewise.
16385
16386         * c4x/c4x.c (c4x_process_after_reload): Likewise.
16387         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
16388
16389         * print-rtl.c (insn_name_ptr): Remove declaration.
16390         (get_insn_name): Declare.
16391         (print_rtx): Use it.
16392         * genoutput.c (insn_name_ptr): Remove.
16393         (next_operand_number): New.
16394         (struct operand_data): New.
16395         (null_operand, odata, odata_end): New.
16396         (struct data): Use struct operand_data.
16397         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
16398         (get_insn_name): Renamed from name_for_index.
16399         (output_prologue): Define NO_MD_PROTOTYPES.
16400         (output_predicate_decls): Break out from output_epilogue.
16401         Iterate over the operands list.
16402         (output_operand_data): Break out from output_epilogue.  Emit
16403         just the operands list.
16404         (output_insn_data): Break out from output_epilogue.  Emit just
16405         the insn data.
16406         (output_epilogue): Remove.
16407         (output_get_insn_name): New.
16408         (constraints, op_n_alternatives, predicates, address_p): Die.
16409         (modes, strict_low, seen): Die.
16410         (scan_operands): Take new param `d' instead of writing to
16411         seven global variables.
16412         (compare_operands): New.
16413         (place_operands): New.
16414         (validate_insn_alternatives): Update for struct data change.
16415         (gen_insn): Don't zero or copy 7 global arrays.  Update for
16416         scan_operands; call place_operands.
16417         (gen_peephole, gen_expand, gen_split): Likewise.
16418         (main): Update for new output routines.
16419
16420         * genattr.c (insn_name_ptr): Remove.
16421         (get_insn_name): New function.
16422         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
16423         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
16424         * genrecog.c: Likewise.
16425
16426         * alpha.md (adddi3): Make `pattern' array static.
16427
16428 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16429
16430         * config/c4x/c4x.h (c4x_rpts_cycles_string,
16431         c4x_cpu_version_string): Constify char *.
16432         * config/c4x/c4x.c (c4x_rpts_cycles_string,
16433         c4x_cpu_version_string): Likewise.
16434
16435 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
16436
16437         * tree.c (save_tree_status): Revert 10 Sep change.
16438         (restore_tree_status): Likewise.  Call obstack_free with NULL
16439         before freeing the obstack proper.
16440
16441 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
16442
16443         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
16444
16445         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
16446         surrounding context.
16447
16448 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
16449
16450         * tree.c (type_hash_canon): Put all types in the hash-table, when
16451         GC'ing.
16452
16453 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
16454
16455         * recog.h (struct recog_data, recog_data): New.
16456         (recog_foo variables): Kill.
16457         * recog.c (recog_operand, recog_operand_loc): Kill.
16458         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
16459         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
16460         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
16461         (recog_data): Define.
16462         (extract_insn): Update all recog_foo references to use recog_data.
16463         (preprocess_constraints, constrain_operands): Likewise.
16464         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
16465         * genattrtab.c (main): Likewise.
16466         * genextract.c (main): Likewise.
16467         * genoutput.c: Likewise.
16468         * genrecog.c (write_subroutine, main): Likewise.
16469         * local-alloc.c (block_alloc): Likewise.
16470         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
16471         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
16472         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
16473         * reload.c (find_reloads, find_reloads_toplev): Likewise.
16474         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
16475         (reload_cse_simplify_operands): Likewise.
16476
16477         * arc/arc.c (arc_final_prescan_insn): Likewise.
16478         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
16479         * h8300/h8300.c (notice_update_cc): Likewise.
16480         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
16481         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
16482         * mn10200/mn10200.c (notice_update_cc): Likewise.
16483         * mn10300/mn10300.c (notice_update_cc): Likewise.
16484         * romp/romp.c (update_cc): Likewise.
16485         * sparc/sparc.c (check_pic): Likewise.
16486         * v850/v850.c (notice_update_cc): Likewise.
16487
16488         * genemit.c (main): Don't declare recog_operand.
16489
16490 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
16491
16492         * ggc.h (rtvec_def): Forward declare.
16493         (tree_node): Likewise.
16494         (ggc_root): Define.
16495         (roots): Declare.
16496         (ggc_set_mark_rtx): Add prototype.
16497         (ggc_set_mark_rtvec): Likewise.
16498         (ggc_set_mark_tree): Likewise.
16499         * ggc-simple.c (ggc_root): Don't define.
16500         (roots): Don't declare.
16501         (ggc_mark_rtx): Remove.
16502         (ggc_mark_rtvec): Likewise.
16503         (ggc_mark_tree): Likewise.
16504         (ggc_mark_varray): Likewise.
16505         (ggc_mark_tree_hash_table_entry): Likewise.
16506         (ggc_mark_tree_hash_table): Likewise.
16507         (ggc_set_mart_rtx): New function.
16508         (ggc_set_mark_rtvec): Likewise.
16509         (ggc_set_mark_tree): Likewise.
16510         (ggc_add_root): Remove.
16511         (ggc_add_rtx_root): Likewise.
16512         (ggc_remove_tree_root): Likewise.
16513         (ggc_add_string_root): Likewise.
16514         (ggc_add_tree_varray_root): Likewise.
16515         (ggc_add_tree_hash_table_root): Likewise.
16516         (ggc_del_root): Likewise.
16517         (ggc_mark_rtx_ptr): Likewise.
16518         (ggc_mark_tree_ptr): Likewise.
16519         (ggc_mark_string_ptr): Likewise.
16520         (ggc_mark_tree_varray_ptr): Likewise.
16521         (ggc_mark_tree_hash_table_ptr): Likewise.
16522         * ggc-common.c: New file.
16523         * Makefile.in (OBJS): Add ggc-common.o.
16524         (ggc-common.o): List dependencies.
16525
16526 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
16527
16528         * cppalloc.c (xstrdup): Use memcpy.
16529         * cpperror.c (cpp_print_containing_files): Don't use
16530         cpp_notice.
16531         * cpplib.c (conditional_skip): Set temp->lineno.
16532         (do_endif): Make error message less obscure.
16533         (if_directive_name): New function.
16534         (cpp_get_token [case EOF]): Unwind the if stack and generate
16535         error messages for each unterminated conditional in this file.
16536         (parse_string):  Do not behave differently if -traditional.
16537
16538 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
16539
16540         * builtins.c (expand_builtin_va_arg): Cope with an array-type
16541         va_list decomposing to pointer-type.
16542         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
16543         (rs6000_va_arg): Likewise.
16544
16545 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
16546
16547         * except.c (start_dynamic_handler): Compute size using
16548         STACK_SAVEAREA_MODE.
16549
16550 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16551
16552         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
16553         include directory headers.  Don't define strrchr.  Don't provide
16554         my_* replacement functions.  Prefer PTR over `pointer_type'.
16555         Don't prototype system functions.  Don't redefine getopt.
16556
16557         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
16558         safe_read, safe_write, save_pointers, restore_pointers,
16559         is_id_char, in_system_include_dir, directory_specified_p,
16560         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
16561         find_corresponding_lparen, referenced_file_is_newer,
16562         save_def_or_dec, munge_compile_params, gen_aux_info_file,
16563         process_aux_info_file, identify_lineno, check_source,
16564         seek_to_line, forward_to_next_token_char, output_bytes,
16565         output_string, output_up_to, other_variable_style_function,
16566         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
16567         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
16568         find_static_definition, connect_defs_and_decs, add_local_decl,
16569         add_global_decls, needs_to_be_converted, visit_each_hash_node,
16570         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
16571         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
16572         scan_for_missed_items, edit_file, string_list_cons): Add static
16573         prototypes.
16574         (standard_exec_prefix, target_machine, target_version,
16575         default_syscalls_dir, string_list, string_list_cons, find_file,
16576         do_cleaning): Constify a char*.
16577         (safe_read, safe_write): Use PTR, not a char*.
16578         (is_id_char): Take an int, not a char.
16579         (main): Add prototype.  Call return, not exit.
16580
16581 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
16582
16583         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
16584         when comparing types.
16585
16586 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
16587
16588         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
16589         (strength_reduce): Release the varrays from the no-bivs early exit.
16590
16591         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
16592         the loop over the registers.
16593
16594         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
16595         for a new obstack.
16596         (restore_tree_status): Check that instead when freeing the obstack.
16597
16598 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
16599
16600         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
16601         as pointers.
16602
16603 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16604
16605         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
16606         operand size modifiers.
16607
16608 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16609
16610         * c-common.c (c_common_nodes_and_builtins): Don't build
16611         va_list_type_node.
16612         * c-common.h (enum c_tree_index and related accesor macros): Remove
16613         everything now declared in tree.h.
16614         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
16615         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
16616         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
16617         (error_mark_node, void_type_node, char_type_node, integer_type_node,
16618         unsigned_type_node, ptr_type_node, va_list_type_node,
16619         integer_zero_node, null_pointer_node, integer_one_node): Delete.
16620         (init_decl_processing): Call build_common_tree_nodes and
16621         build_common_tree_nodes_2 instead of building their nodes here.
16622         Don't add roots for these nodes.
16623         * stor-layout.c (size_zero_node, size_one_node): Delete.
16624         (set_sizetype): Make a new node for bitsizetype each time.
16625         * tree.c (global_trees): New variable.
16626         (init_obstacks): Add a gc root for it.
16627         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
16628         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
16629         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
16630         (build_common_tree_nodes): New function.
16631         (fix_sizetype): New function.
16632         (build_common_tree_nodes_2): New function.
16633         * tree.h (enum tree_index): New.
16634         (global_trees): Declare.
16635         Add accessor macros for all nodes now moved to global_trees.
16636         Delete their declarations.
16637
16638 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
16639
16640         * c-decl.c (finish_function): When processing a nested function,
16641         push and pop GC context around rest_of_compilation.
16642
16643 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
16644
16645         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
16646         Default ix86_arch to PROCESSOR_I386.
16647         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
16648         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
16649         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
16650         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
16651         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
16652         (EXTRA_SPECS): Remove deleted specs.
16653
16654 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
16655
16656         * function.c (assign_stack_local_1): Allocate from
16657         function->x_frame_offset, not frame_offset.
16658
16659 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
16660
16661         * ggc.h (lang_cleanup_tree): Remove.
16662         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
16663         * ggc-callbacks.c (lang_cleanup_tree): Remove.
16664
16665         * c-decl.c (finish_struct): Use ggc_alloc to allocate
16666         TYPE_LANG_SPECIFIC when garbage collecting.
16667         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
16668         (lang_cleanup_tree): Remove.
16669
16670 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
16671
16672         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
16673         * crtstuff.c: Not here.
16674         * dwarf2out.c: Or here.
16675         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
16676         info.
16677
16678 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
16679
16680         * function.h (free_after_compilation): Remove decl parameter.
16681         (free_varasm_status0: Likewise.
16682         (free_emit_status): Likewise.
16683         (free_stmt_status): Likewise.
16684         (free_after_compilation): Likewise.
16685         (init_lang_status): New variable.
16686         (free_lang_status): Likewise.
16687         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
16688         * function.c (init_lang_status): New variable.
16689         (free_lang_status): Likewise.
16690         (push_function_context_to): Don't set function::decl here.
16691         (free_after_copmilation): Make decl parameter implicit.  Call
16692         free_lang_status if defined.
16693         (prepare_function_start): Call init_lang_status if defined.
16694         (init_function_start): Set function::decl here.
16695         * profile.c (output_func_start_profiler): Don't call pushdecl
16696         until we've actually started the function.
16697         * stmt.c (free_stmt_status): Make decl parameter implicit.
16698         * toplev.c (rest_of_compilation): Don't pass decl to
16699         free_after_compilation.
16700         * varasm.c (free_varasm_status): Likewise.
16701
16702 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16703
16704         * except.c (call_get_eh_context): Add root when allocating static
16705         tree variable.
16706
16707 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
16708
16709         * arm.c: Include "ggc.h".
16710         (arm_add_gc_roots): New function.
16711         (arm_override_options): Call it.
16712         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
16713
16714         * arm.md (define_asm_attributes): Add a pool_range attribute.
16715
16716 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
16717
16718         * extend.texi (Volatiles): New node.
16719
16720 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
16721
16722         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
16723         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
16724         (struct ggc_any): Replace `mark' with `magic_mark'.
16725         (ggc_alloc_string): Use memcpy, not bcopy.
16726         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
16727         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
16728         (ggc_free_any): New.
16729         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
16730         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
16731         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
16732         Use IS_MARKED. Use ggc_free_any.
16733
16734 1999-09-09  Scott Bambrough <scottb@netwinder.org>
16735
16736         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
16737
16738 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
16739
16740         * toplev.c (main): Always init_ggc.
16741
16742 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
16743
16744         * except.c (find_all_handler_type_matches): Free the list if
16745         we found no matches.
16746
16747         * combine.c (SUBST): Break out to a real function do_SUBST.
16748         (SUBST_INT): Likewise.
16749         * gcse.c (free_pre_mem): Free `temp_bitmap'.
16750         (pre_insert): Free `inserted'.
16751         * loop.c (basic_induction_var): Always set `location'.
16752
16753         * function.c (expand_function_end): Add initial_trampoline as a root.
16754         * rtl.h (init_varasm_once): Declare.
16755         * toplev.c (compile_file): Call it.
16756         * ggc-simple.c (ggc_mark_string_ptr): New.
16757         (ggc_add_string_root): New.
16758         (ggc_collect): Disable collection avoidance temporarily.
16759         * ggc.h (ggc_add_string_root): Declare.
16760         * except.c (create_rethrow_ref): Use ggc_alloc_string.
16761         * optabs.c (init_libfuncs): Likewise.
16762         * varasm.c (named_section): Use ggc_alloc_string.
16763         (make_function_rtl): Likewise.
16764         (make_decl_rtl): Likewise.
16765         (assemble_static_space): Likewise.
16766         (assemble_trampoline_template): Likewise.
16767         (output_constant_def): Likewise.
16768         (force_const_mem): Likewise.
16769         (mark_const_hash_entry): New.
16770         (mark_pool_sym_hash_table): New.
16771         (mark_varasm_state): Use it.
16772         (init_varasm_once): New.
16773
16774         * expr.h (init_one_libfunc): Declare.
16775         * optabs.c (init_one_libfunc): New.
16776         (init_optabs): Use it.
16777         * config/gofast.h: Likewise.
16778         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
16779         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
16780
16781 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
16782
16783         * Makefile.in (cppexp.o): Depend on cpphash.h.
16784         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
16785         Include cpphash.h.
16786         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
16787         * cpplib.c (do_define): Generalise to handle poisoned definitions,
16788         redefining poisoned identifiers, etc.
16789         (do_undef): Don't allow poisoned identifiers to be undefined.
16790         (do_pragma): Add #pragma poison.
16791         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
16792
16793         * cccp.c: Add T_POISON node type.
16794         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
16795         poisoned xxx.
16796         (do_define): Generalise to handle poisoned definitions,
16797         redefining poisoned identifiers, etc.
16798         (do_undef): Don't allow poisoned identifiers to be undefined.
16799         (do_pragma): Add #pragma poison.
16800         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
16801
16802         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
16803         * c-pragma.h: Add ps_poison state.  We now always have generic
16804         pragmas.
16805
16806 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
16807
16808         * ggc.h (ggc_alloc): New function.
16809         (ggc_mark): Likewise.
16810         * ggc-simple.c (ggc_any): New structure.
16811         (ggc_status): Add anys.
16812         (n_anys_collected): New variable.
16813         (ggc_alloc): Define.
16814         (ggc_mark): Likewise.
16815         (ggc_collect): Collect the anys.
16816
16817 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16818
16819         * c-decl.c (mark_binding_level): Make static to match prototype.
16820
16821 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
16822
16823         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
16824
16825 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
16826
16827         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
16828         will use into account.  Expand the max width to 5.
16829         * rtl.c: Likewise.
16830
16831 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
16832
16833         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
16834         for the rtx length.
16835
16836 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
16837
16838         * alpha.md (call value patterns): Remove the result predicates.
16839
16840 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
16841
16842         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
16843         last change.
16844
16845 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16846
16847         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
16848         changed from extern char *, to extern PTR.  Also fix typo in
16849         NEED_DECLARATION_REALLOC test.
16850
16851         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
16852
16853 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16854
16855         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
16856         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
16857         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
16858         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
16859
16860         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
16861
16862         * cccp.c (pcfinclude): Likewise.
16863
16864         * global.c (allocno_compare): Likewise.
16865
16866         * haifa-sched.c (rank_for_schedule): Likewise.
16867
16868         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
16869
16870         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
16871
16872         * stupid.c (stupid_reg_compare): Likewise.
16873
16874         * tree.c (_obstack_allocated_p): Likewise.
16875
16876         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
16877
16878 1999-09-08  Bruce Korb  autogen@linuxbox.com
16879
16880         * Makefile.in: Give the hapless gperf user a hint about
16881         why "gperf -F" fails.
16882
16883 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
16884
16885         * lists.c: Include ggc.h.
16886         (zap_lists): New.
16887         (init_EXPR_INSN_LIST_cache): Install it.
16888
16889         * ggc-simple.c (init_ggc): Absorb the old init.
16890         (ggc_push_context): Use xcalloc.
16891         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
16892         (ggc_collect): Add [rvts] tags to the collection stats.
16893
16894 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
16895
16896         * cccp.c (main): Fix handling of -include and -imacros options.
16897
16898 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
16899
16900         * cpplib.c (cpp_push_buffer): Fix order of arguments.
16901
16902 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
16903
16904         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
16905         genrtl.c.
16906
16907 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
16908
16909         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
16910         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
16911         and SET_DEST. Update comment.
16912
16913 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16914
16915         * config/c4x/c4x.c: Include ggc.h.
16916         (c4x_add_gc_roots): New function.
16917         (c4x_override_options): Call c4x_add_gc_roots.
16918
16919 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
16920
16921         * defaults.h (TARGET_ESC): Move ...
16922         * system.h: ... here, where Linas had it in the first place.  Silly me.
16923
16924 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
16925
16926         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
16927         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
16928         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
16929         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
16930         * defaults.h (TARGET_ESC): Add default.
16931
16932 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
16933
16934         * configure.in: add i370-*-openedition, i370-*-mvs and
16935         i370-*-linux targets
16936
16937 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
16938
16939         * dsp16xxx.c: Include ggc.h
16940         (override_options): Mark GC roots.
16941         * mn10200.c: Include ggc.h.
16942         (asm_file_start): Mark GC roots.
16943         * tahoe.c: Include ggc.h.
16944         (extensible_operand): Mark GC roots.
16945
16946 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
16947
16948         * README: Add section discussing status of ELF ABI.
16949         * i370.c: Fix misc spelling mistakes.
16950         (i370_label_scan): Updated notes, exception handling.
16951         (i370_function_prolog): Simplify ELF stack handling.
16952         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
16953         (STACK_GROWS_DOWNWARD): ELF stack grows down.
16954         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
16955         * i370.md: (movdi): Add notes.
16956         (floatsidf2): Use stack not rtca for scratch float area.
16957         (iorsi3): Correct operand constraints.
16958         * x-oe: Restore TAROUTOPTS which are used by pax.
16959
16960 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
16961
16962         * rs6000.c: Include ggc.h.
16963         (rs6000_add_gc_roots): New function.
16964         (override_options): Call it.
16965
16966 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
16967
16968         * alpha.h (alpha_compare): New.
16969         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
16970         * alpha.c: Likewise for the definitions.
16971         (alpha_emit_conditional_branch): Update for alpha_compare.
16972         (alpha_emit_conditional_move): Likewise.
16973         * alpha.md (cmpdf, cmpdi): Likewise.
16974         (setcc patterns): Likewise.  Zero alpha_compare after use.
16975         (sne): Optimize (x != 0) into (0U < x).
16976
16977 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
16978
16979         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
16980         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
16981         (INIT_EXPANDERS): Remove.
16982         * alpha.c: Include ggc.h.
16983         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
16984         (alpha_init_machine_status, alpha_mark_machine_status): New.
16985         (override_options): Install them.
16986         (struct machine_function): Moved to alpha.h.
16987         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
16988         (alpha_init_expanders): Remove.
16989         (alpha_return_addr): Adjust to use current_function->machine.
16990         (alpha_ra_ever_killed): Likewise.
16991         (alpha_expand_epilogue): Likewise.
16992         * alpha.md (eh_epilogue): Likewise.
16993
16994 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
16995                           Melissa O'Neill  <oneill@cs.sfu.ca>
16996                           Geoffrey Keating  <geoffk@cygnus.com>
16997
16998         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
16999         call-used registers (call-saved registers must still be contiguous
17000         and end with r31, of course).
17001
17002 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
17003
17004         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
17005         (self_promoting_type_p): Delete.
17006         (self_promoting_args_p): Move ...
17007         * c-common.c: ... here.
17008         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
17009         (simple_type_promotes_to): New.
17010         * builtins.c (lang_type_promotes_to): New.
17011         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
17012         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
17013         * c-common.h: ... here.
17014         (self_promoting_args_p, simple_type_promotes_to): Declare.
17015         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
17016         (grokdeclarator): Likewise.
17017         * tree.h (lang_type_promotes_to): Declare.
17018
17019 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
17020
17021         Add some machine-dependent GC roots.
17022         * sparc.c: Include ggc.h.
17023         (sparc_add_gc_roots): New function.
17024         (mark_ultrasparc_pipeline_state): Likewise.
17025         (override_options): Call sparc_add_gc_roots.
17026         * pa.c: Include ggc.h.
17027         (pa_add_gc_roots): New function.
17028         (mark_deferred_plabels): Likewise.
17029         (override_options): Call pa_add_gc_roots.
17030         * mips.c: Include ggc.h.
17031         (mips_add_gc_roots): New function.
17032         (override_options): Use it.
17033
17034 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17035
17036         * cpperror.c (cpp_file_line_for_message): Constify a char*.
17037
17038         * cppexp.c (parse_number, parse_charconst, cpp_lex,
17039         cpp_parse_expr): Add static prototypes.
17040         (parse_charconst): Don't cast away const-ness.
17041         (token): Constify a char*.
17042
17043         * cppfiles.c (file_name_list, include_hash, find_include_file,
17044         finclude, initialize_input_buffer): Constify a char*.
17045         (file_cleanup, find_position): Add static prototypes.
17046
17047         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
17048         collect_expansion): Add static prototypes.
17049         (cpp_install, create_definition, monthnames): Constify a char*.
17050
17051         * cpphash.h (cpp_install): Likewise.
17052
17053         * cppinit.c (known_suffixes, default_include,
17054         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
17055         (base_name, dump_special_to_buffer, initialize_dependency_output):
17056         Add static prototypes.
17057
17058         * cpplib.c (my_strerror): Constify a char*.
17059         (null_underflow, null_cleanup, skip_comment, copy_comment,
17060         copy_rest_of_line, handle_directive, pass_thru_directive,
17061         get_directive_token, read_line_number, cpp_print_file_and_line,
17062         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
17063         v_cpp_warning_with_line, detect_if_not_defined,
17064         consider_directive_while_skipping): Add static prototypes.
17065         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
17066         cpp_pedwarn_with_file_and_line): Constify a char*.
17067
17068         * cpplib.h (cpp_options, include_hash, progname, definition,
17069         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
17070         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
17071         find_include_file, deps_output, include_hash): Constify a char*.
17072
17073         * cppmain.c (progname): Constify.
17074         (main): Add prototype.  Use return, not exit.
17075
17076         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
17077         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
17078         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
17079         check_protection): Add static prototype.
17080         (xfree): Remove.
17081         (progname, recognized_macrom, recognized_extern): Constify a char*.
17082         (main): Add prototype.
17083
17084         * gen-protos.c (progname): Constify a char*.
17085
17086 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
17087
17088         * emit-rtl.c (free_emit_status): Take decl as a parameter.
17089         (init_emit_once): Add more GC roots.
17090         * except.c (mark_func_eh_entry): New function.
17091         (mark_eh_node): Mark false_label and rethrow_label.
17092         (init_eh): Add more GC roots.
17093         * function.c (free_after_compilation): Take decl as a paramter.
17094         Call free_stmt_status.
17095         (mark_function_state): Don't assume x_parm_reg_stack_loc is
17096         non-NULL.
17097         * function.h (free_after_compilation): Change prototype.
17098         (free_varasm_status): Likewise.
17099         (free_emit_status): Likewise.
17100         (free_stmt_status): New function.
17101         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
17102         Remove, replacing with ...
17103         (ggc_status): New structure.
17104         (ggc_chain): New variable.
17105         (init_gcc): Define.
17106         (ggc_push_context): New function.
17107         (ggc_pop_context): Likewise.
17108         (ggc_alloc_rtx): Adjust for use of ggc_chain.
17109         (ggc_alloc_rtvec): Likewise.
17110         (ggc_alloc_tree): Likewise.
17111         (ggc_alloc_string): Likewise.
17112         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
17113         (ggc_mark_tree): Give language-dependent code a chance to mark
17114         `x' nodes.
17115         (ggc_mark_tree_varray): Handle empty arrays.
17116         (ggc_collect): Adjust for use of ggc_chain.  Clear
17117         bytes_alloced_since_last_gc.
17118         * ggc.h (ggc_pop_context): New function.
17119         (ggc_push_context): Likewise.
17120         * print-tree.c (print_node): Don't print obstacks when GC'ing.
17121         * stmt.c (free_stmt_status): New function.
17122         (init_stmt_for_function): Clear last_expr_value.
17123         * toplev.c (rest_of_compilation): Always call free_after_compilation.
17124         Conditionalize call to ggc_collect.
17125         (main): Call init_ggc.
17126         * tree.c (push_obstacks): Do the push, even when GC'ing.
17127         (push_obstacks_nochange): Likewise.
17128         (pop_obstacks): Liekwise.
17129         * varasm.c (free_varasm_status): Take decl as a parameter.
17130
17131 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
17132
17133         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
17134         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
17135         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
17136         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
17137
17138 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
17139
17140         * pa/x-pa-mpeix: New file for the MPE port.
17141
17142         * pa/quadlib.asm: New file for long double support.
17143
17144         * configure.in: Add hppa1.0-*-mpeix for MPE port.
17145         * configure: Rebuilt.
17146
17147 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
17148
17149         * final.c (shorten_branches): Fix last change.
17150
17151 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
17152
17153         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
17154
17155 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
17156
17157         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
17158         details.
17159
17160 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17161
17162         * c-aux-info.c (concat): Don't define.
17163
17164         * cccp.c (my_strerror): Likewise.  All callers changed to use
17165         xstrerror instead.
17166         (do_include): Call xstrdup, not xmalloc/strcpy.
17167         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
17168         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
17169
17170         * collect2.c (my_strsignal): Likewise.  All callers changed to use
17171         strsignal instead.
17172         (locatelib): Call xstrdup, not xmalloc/strcpy.
17173
17174         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
17175
17176         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
17177
17178         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
17179
17180         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
17181
17182         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
17183
17184         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
17185
17186         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
17187         malloc/realloc.
17188         (find_all_handler_type_matches): Likewise.  Don't check return
17189         value.
17190         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
17191         xmalloc, not malloc.
17192         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
17193
17194         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
17195         (init_spec): Call xcalloc, not xmalloc/bzero.
17196         (set_spec): Call xstrdup, not save_string.
17197         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
17198         (find_a_file): Call xstrdup, not xmalloc/strcpy.
17199         (process_command): Call xstrdup, not save_string.
17200         (main): Call xcalloc, not xmalloc/bzero.
17201
17202         * gcov.c (xmalloc): Don't define.
17203         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
17204         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
17205         (output_data): Call xcalloc, not xmalloc/bzero.
17206
17207         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
17208
17209         * mips-tdump.c (xmalloc): Don't define.
17210         (print_symbol): Call xmalloc, not malloc.
17211         (read_tfile): Call xcalloc, not calloc.
17212
17213         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
17214         Don't define.  All callers of xfree/my_strsignal changed to use
17215         free/strsignal instead.
17216         (allocate_cluster): Call xcalloc, not calloc.
17217
17218         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
17219         Fix memory leak, free allocated memory.
17220
17221         * prefix.c (translate_name): Call xstrdup, not save_string.
17222         (update_path): Likewise.
17223
17224         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
17225
17226         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
17227         Don't define.  Callers of xfree/savestring2 changed to use
17228         free/concat instead.
17229
17230         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
17231         (init_elim_table): Likewise.
17232
17233         * resource.c (init_resource_info): Likewise.
17234
17235         * stupid.c (stupid_life_analysis): Likewise.
17236
17237         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
17238         (open_dump_file): Call concat, not xmalloc/strcpy/...
17239         (clean_dump_file): Likewise.
17240         (compile_file): Call xstrdup, not xmalloc/strcpy.
17241
17242 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
17243
17244         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
17245         * v850.c (v850_va_arg): New.
17246
17247 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17248
17249         * haifa-sched.c: Tidy comments.
17250
17251 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17252
17253         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
17254         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
17255         $(out_object_file)): Depend on ggc.h.
17256         * c-common.c: Include "ggc.h".
17257         (combine_strings): If doing GC, use ggc_alloc_string.
17258         * c-decl.c: Include "ggc.h".
17259         (ggc_p): Define with value 0.
17260         (mark_binding_level): New function.
17261         (init_decl_processing): Add GC roots.
17262         (mark_c_function_context): New function.
17263         (lang_mark_false_label_stack): New function.
17264         (lang_mark_tree): New function.
17265         (lang_cleanup_tree): New function.
17266         * c-lang.c: Include "ggc.h".
17267         (lang_init): Call c_parse_init.
17268         * c-lex.c: Include "ggc.h".
17269         (check_linenum): If doing GC, don't copy filenames to permanent
17270         obstack.
17271         * c-parse.in: Include "ggc.h".
17272         (c_parse_init): New function.
17273         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
17274         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
17275
17276         * except.c (mark_eh_state): Mark more state.
17277         * function.c (mark_function_state): Likewise.
17278         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
17279         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
17280         * toplev.c (mark_file_stack): New function.
17281         (compile_file): If doing GC, use ggc_alloc_string on input filename.
17282         (main): Add root for input_file_stack.
17283
17284         * i386.c: Include "ggc.h".
17285         (ix86_mark_machine_status): New function.
17286         (override_options): Set mark_machine_status.
17287
17288 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17289
17290         * tree.c (copy_node): Copy node contents also if doing GC.
17291
17292 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
17293
17294         * collect2.c (scan_libraries): Fix double-thinko :-).
17295
17296 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
17297
17298         * collect2.c (scan_libraries): Fix thinko.
17299
17300         * cse.c (delete_trivially_dead_insns): Do not skip the last
17301         insn if it is a real insn.
17302
17303 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
17304
17305         * Makefile.in (ggc-simple.o): Depend on hash.h.
17306         * ggc.h (ggc_add_tree_hash_table_root): Declare.
17307         (ggc_mark_tree_varray): Likewise.
17308         (ggc_mark_tree_hash_table): Likewise.
17309         * ggc-simple.c: Include hash.h.
17310         (ggc_mark_tree_hash_table_ptr): New function.
17311         (ggc_mark_tree_hash_table_entry): Likewise.
17312         (ggc_mark_tree_hash_table): Likewise.
17313         (ggc_add_tree_hash_table_root): Likewise.
17314         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
17315         rtx, when defining fields.
17316
17317 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
17318
17319         * profile.c (output_func_start_profiler): Remove apparently
17320         nonsensical call to start_sequence.
17321
17322 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
17323
17324         * clipper/clipper.c (clipper_va_start): Fix typos.
17325
17326         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
17327         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
17328         (spur_va_arg): New stub.
17329
17330         * configure.in: Comment out pyramid.
17331
17332 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
17333
17334         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
17335         don't conflict with the bits that win32, cygwin, and dgux
17336         defines.
17337
17338 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
17339                           Bernd Schmidt <bernds@cygnus.co.uk>
17340
17341         * integrate.c (function_cannot_inline_p): Do not inline
17342         functions with forced labels.
17343
17344 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
17345                           Bernd Schmidt <bernds@cygnus.co.uk>
17346                           Mark Mitchell  <mark@codesourcery.com>
17347
17348         * Makefile.in (ggc-simple.o): Depend on varray.h.
17349         (rtl.o): Depend on ggc.h.
17350         (genattrtab.o): Depend on ggc.h.
17351         (print-tree.o): Likewise.
17352         (fold-const.o): Likewise.
17353         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
17354         (make_insn_raw): Don't cache insns when GC'ing.
17355         (emit_insn_before): Likewise.
17356         (emit_insn_after): Likewise.
17357         (emit_insn): Likewise.
17358         (start_sequence): Use xmalloc to allocate the sequence_stack.
17359         (end_sequence): Add free to free it.
17360         (gen_sequence): Don't cache insns when GC'ing.
17361         (clear_emit_caches): Don't use sequence_element_free_list.
17362         (init_emit): Use xcalloc, not xmalloc+bzero.
17363         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
17364         * function.c (pop_function_context_from): Use free to free the
17365         fixup_var_refs_queue.
17366         (put_reg_into_stack): Allocate it with xmalloc.
17367         * genattrtab.c: Include ggc.h.
17368         (operate_exp): Don't use obstack_free when GC'ing.
17369         (simplify_cond): Likewise.
17370         (simplify_text_exp): Likewise.
17371         (optimize_attrs): Likewise.
17372         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
17373         GC'ing.
17374         (gencode): Generate a #include for ggc.h.
17375         * ggc-callbacks.c (ggc_p): Define it to zero.
17376         * ggc-none.c (ggc_p): Likewise.
17377         * ggc-simple.c: Include varray.h.
17378         (ggc_mark_tree_varray): New function.
17379         (ggc_add_tree_varray_root): Likewise.
17380         (ggc_mark_tree_varray_ptr): Likewise.
17381         * ggc.h (ggc_p): Declare.
17382         (varray_head_tag): Likewise.
17383         (ggc_add_tree_varray_root): Declare.
17384         * print-tree.c (print_node): Don't check for TREE_PERMANENT
17385         inconsistencies when GC'ing.
17386         * rtl.c: Include ggc.h.
17387         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
17388         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
17389         (rtx_free): Don't call obstack_free when GC'ing.
17390         * toplev.c (rest_of_compilation): Call ggc_collect after every
17391         pass, if GC'ing.
17392         * tree.c (push_obstacks): Do nothing, if GC'ing.
17393         (pop_obstacks_nochange): Likewise.
17394         (pop_obstacks): Likewise.
17395         (make_node): Use ggc_alloc_tree when GC'ing.
17396         (copy_node): Likewise.
17397         (get_identifier): Use ggc_alloc_string when GC'ing.
17398         (build_string): Likewise.
17399         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
17400         (tree_cons): Likewise.
17401         (build1): Likewise.
17402         (type_hash_canon): Don't call obstack_free when GC'ing.
17403
17404 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
17405
17406         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
17407         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
17408
17409 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
17410                           Bernd Schmidt <bernds@cygnus.co.uk>
17411                           Mark Mitchell  <mark@codesourcery.com>
17412
17413         * Makefile.in (stor-layout.o): Depend on ggc.h.
17414         (expr.o): Depend on ggc.h.
17415         (profile.o): Depend on ggc.h.
17416         (stor-layout.o): Depend on ggc.h.
17417         * emit-rtl.c (init_emit_once): Add gc roots.
17418         * expr.c: Include ggc.h.
17419         (emit_block_move): Add gc roots.
17420         (clear_storage): Likewise.
17421         * expr.h (init_stor_layout_once): New function.
17422         * profile.c: Include ggc.h.
17423         (init_arc_profiler): profiler_label is a root.
17424         * scan.c (make_sstring_space): Trust xrealloc to function
17425         correctly with first parameter NULL.
17426         * stor-layout.c: Include ggc.h.
17427         (set_sizetype): Add gc root.
17428         (init_stor_layout_once): New function.
17429         * toplev.c (compile_file): Call it.
17430
17431 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
17432                           Bernd Schmidt <bernds@cygnus.co.uk>
17433                           Mark Mitchell  <mark@codesourcery.com>
17434
17435         * Makefile.in (tree.o): Depend on ggc.h.
17436         (varasm.o): Likewise.
17437         (function.o): Likewise.
17438         (stmt.o): Likewise.
17439         (except.o): Likewise.
17440         (optabs.o): Likewise.
17441         (emit-rtl.o): Likewise.
17442         * emit-rtl.c: Include ggc.h.
17443         (sequence_element_free_list): Remove, and all references.
17444         (mark_sequence): New functions.
17445         (mark_emit_state): New function.
17446         * except.c: Include ggc.h.
17447         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
17448         (mark_tree_label_node): New functions.
17449         (mark_eh_state): New function.
17450         * function.c: Include ggc.h.
17451         (mark_temp_slot, mark_function_chain): New functions.
17452         (mark_function_state): New function.
17453         (init_function_once): New function.
17454         * function.h (init_function_once): New function.
17455         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
17456         * ggc.h (label_node): Declare.
17457         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
17458         (lang_mark_false_label_stack): New function.
17459         (mark_temp_slot): Remove declaration.
17460         (mark_function_chain): Likewise.
17461         (mark_eh_state): Adjust prototype.
17462         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
17463         Likewise.
17464         * optabs.c: Include ggc.h.
17465         (mark_optab): New function.
17466         (init_optabs): Add gc roots.
17467         * stmt.c: Include ggc.h.
17468         (mark_cond_nesting, mark_loop_nesting): New functions.
17469         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
17470         (mark_stmt_state): New function.
17471         * toplev.c (compile_file): Call init_function_once.
17472         * tree.c: Include ggc.h.
17473         (type_hash): Move declaration earlier in file.
17474         (TYPE_HASH_SIZE, type_hash_table): Likewise.
17475         (init_obstacks): Add gc roots.
17476         (mark_type_hash): New function.
17477         * varasm.c: Include ggc.h.
17478         (mark_pool_constant): New function.
17479         (mark_varasm_state): New function.
17480
17481 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17482
17483         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
17484
17485 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
17486
17487         * c-decl.c (struct language_function): Renamed from struct c_function.
17488         Delete elt NEXT.
17489         (c_function_chain): Delete.
17490         (push_c_function_context): New arg F.  Don't warn about nested
17491         functions here.  Fill LANGUAGE elt of F.  Delete code to update
17492         c_function_chain.  Don't call push_function_context.
17493         (pop_c_function_context): New arg F.  Restore from there instead of
17494         from c_function_chain.  Don't call pop_function_context.  Clear out
17495         LANGUAGE field of F when done.
17496         * c-lang.c: Include "function.h"
17497         (lang_init): Initialize save_lang_status and restore_lang_status.
17498         * c-parse.in (nested_function, nested_function_notype): Warn about
17499         nested functions.  Call push_function_context/pop_function_context
17500         instead of the _c_ variants.
17501         * c-tree.h (push_c_function_context, pop_c_function_context): Update
17502         prototype.
17503         * Makefile.in (c-lang.o): Update dependencies.
17504
17505         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
17506         regno_pointer_flag, regno_pointer_align.
17507         (gen_reg_rtx): Use xrealloc to enlarge them.
17508         (free_emit_status): New function.
17509         * function.c (mark_machine_status, mark_lang_status): New variables.
17510         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
17511         in some bits from assign_stack_local.  All callers changed to use new
17512         name.
17513         (assign_stack_local): Just call assign_stack_local_1.
17514         (free_after_compilation): New function.
17515         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
17516         (trampoline_address): Likewise.
17517         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
17518         (prepare_function_start): Explicitly clear some more variables.
17519         * function.h (struct function): New elt can_garbage_collect.
17520         (mark_machine_status, mark_lang_status): Declare variables.
17521         (free_after_compilation, free_emit_status, free_varasm_status,
17522         init_varasm_status): Declare functions.
17523         * toplev.c (rest_of_compilation): Call free_after_compilation when
17524         done with the current function.
17525         * varasm.c (free_varasm_status): New function.
17526
17527 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
17528
17529         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
17530         (EXPAND_BUILTIN_VA_ARG): Define.
17531         * sparc.c (sparc_va_start): New.
17532         (sparc_va_arg): New.
17533
17534 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17535
17536         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
17537
17538 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17539
17540         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
17541
17542 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
17543
17544         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
17545         (OBJS): Add $(GGC).
17546         (ggc-callbacks.o): New target.
17547         * ggc-callbacks.c: New file.
17548
17549 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17550
17551         * expr.h: Collapse individual optab and libfunc vars to arrays.
17552         (optab_index, libfunc_index): New enumerations.
17553         (optab_table, libfunc_table): New arrays.
17554         Add accessor macros for both.
17555
17556         * optabs.c (optab_table, libfunc_table): New.
17557         Delete declarations for individual optab and libfunc vars.
17558
17559 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
17560
17561         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
17562
17563 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
17564
17565         * Makefile.in (GGC, GGC_LIB): New.
17566         (HOST_RTL): Include ggc-none.o.
17567         (ggc-simple.o): New target.
17568         (ggc-none.o): Likewise.
17569         * tree.h (tree_common): Add gc_mark.
17570         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
17571         (struct rtvec_def): Add gc_mark.
17572         * emit-rtl.c (global_rtl): Update static initializers to contain
17573         enough initializers.
17574         * ggc.h, ggc-none.c, ggc-simple.c: New files.
17575         * toplev.c (gc_time): New variable.
17576         (all_time): New variable.
17577         (compile_file): Print gc time.
17578         (print_time): Calculate percentage of the whole.
17579
17580 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17581
17582         Change obstack memory management and varasm constant pool handling so
17583         that nested functions are treated like any other functions.
17584         * function.c (init_machine_status): New variable.
17585         (push_function_context_to): Set contains_functions for the outer
17586         function.  Don't call save_varasm_status.
17587         (pop_function_context_from): Don't call restore_varasm_status.  Don't
17588         set current_function_contains_functions.
17589         (prepare_function_start): Call init_varasm_status rather than
17590         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
17591         is non-null.
17592         * function.h (struct function) Add field varasm.  Delete fields
17593         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
17594         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
17595         (init_machine_status): Declare.
17596         (save_varasm_status, restore_varasm_status): Delete declarations.
17597         (save_tree_status, restore_tree_status): Delete last argument.
17598         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
17599         code.  All callers changed.
17600         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
17601         save_constants_in_decl_trees, restore_constants, save_constants,
17602         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
17603         functions.
17604         (inlining): New variable.
17605         (reg_map, label_map, insn_map, orig_asm_operands_vector,
17606         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
17607         variables.
17608         (save_for_inline_nocopy): Don't save constants.
17609         Don't set inl_emit field in current_function.
17610         (expand_inline_function): Use emit field, not inl_emit, of the inlined
17611         function.  Set new variable inlining before
17612         calling copy_rtx_and_substitute.
17613         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
17614         constant pool references if inlining is nonzero.
17615         Delete ADDRESS and (most of the) CONST cases.
17616         (output_inline_function): Save and restore current_function/
17617         current_function_decl.  Delete restore_constants code.  Don't call
17618         init_const_rtx_hash_table.
17619         * output.h (init_const_rtx_hash_table): Don't declare.
17620         * rtl.h (struct function): Declare.
17621         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
17622         * toplev.c (rest_of_compilation): Don't treat nested functions or
17623         functions containing them specially.  Delete all code to deal with
17624         save_for_inline_copying.
17625         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
17626         inline_obstacks): Delete variables.
17627         (save_tree_status): Lose arg CONTEXT.  All callers changed.
17628         Simply allocate a new function_maybepermanent_obstack for the new
17629         function, delete all the special cases.
17630         Don't save inline_obstacks.
17631         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
17632         Delete special handling for function_maybepermanent_obstack; simply
17633         free it if empty.
17634         Don't restore inline_obstacks.
17635         (permanent_allocation):  Delete code that frees inline_obstacks.
17636         (print_inline_obstack_statistics): Delete function.
17637         (dump_tree_statistics): Don't call it.
17638         * varasm.c (struct varasm_status): New.
17639         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
17640         last_pool, pool_offset, const_double_chain): Delete global
17641         variables, replace with accessor macros.
17642         (immed_double_const): Don't walk const_double_chain outside a
17643         function, but don't treat nested functions specially anymore.
17644         (immed_real_const_1): Likewise.
17645         (clear_const_double_mem): Don't treat nested functions specially.
17646         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
17647         (save_varasm_status, restore_varasm_status): Delete functions.
17648         (init_varasm_status): New function.
17649         (force_const_mem): Don't treat nested functions specially.
17650         (find_pool_constant): Accept new arg F, search for constants in
17651         that function's pool rather than the current one.  All callers
17652         changed.
17653         (get_pool_constant_for_function, get_pool_mode_for_function): New
17654         functions.
17655
17656         * i386.c (init_386_machine_status): New function, mostly from
17657         clear_386_stack_locals.
17658         (struct machine_functions): Rename element names to avoid name
17659         clashes.
17660         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
17661         macros, replacing global variables.
17662         (clear_386_stack_locals, save_386_machine_status,
17663         restore_386_machine_status): Delete functions.
17664         (override_options): Initialize init_machine_status.
17665         * i386.h (INIT_EXPANDERS): Delete macro.
17666         (save_386_machine_status, restore_386_machine_status,
17667         clear_386_stack_locals): Delete declarations.
17668
17669 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17670
17671         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
17672         (doloop_begin):  Simplify pattern and use emit_jump_insn.
17673         (doloop_end): Simplify pattern, switch operand order,
17674         and use emit_jump_insn.
17675
17676 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
17677
17678         * function.h (struct function): Add new element LANGUAGE.
17679         (save_lang_status): Declare new variable.
17680         (restore_lang_status): Likewise.
17681         * function.c (save_lang_status): Define.
17682         (restore_lang_status): Likewise.
17683         (push_function_context_to): Call language-specific save function.
17684         (pop_function_context_from): Call language-specific restore function.
17685
17686 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
17687
17688         * i386.md (movsf_1): Check REG_P before use of REGNO.
17689         (movdf_1): Likewise.
17690         (movxf_1): Likewise.
17691         (extendsfdf2): Likewise.
17692         (extendsfxf2): Likewise.
17693         (extenddfxf2): Likewise.
17694
17695 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17696
17697         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
17698         constants into memory.
17699         (c4x_shiftable_constant): New function.
17700         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
17701         (c4x_shiftable_constant): Declare.
17702         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
17703         ashlqi3_noclobber): Add new patterns and associated splitters.
17704
17705 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
17706
17707         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
17708         * dwarf2out.c (dwarf2out_frame_init): Likewise.
17709         * final.c (shorten_branches): Likewise.
17710         * global.c (global_alloc): Likewise.
17711         * haifa-sched.c (build_control_flow): Likewise.
17712         * stmt.c (check_for_full_enumeration_handling): Likewise.
17713         (estimate_case_costs): Likewise.
17714
17715 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
17716
17717         * rtl.h (RTL_CHECKC2): Fix typo in last change.
17718
17719 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
17720
17721         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
17722         (recompute_reg_usage): Likewise.
17723         * rtlanal.c (find_regno_fusage): Likewise.
17724
17725         * rtl.c (rtl_check_failed_code1): New function.
17726         (rtl_check_failed_code2): New.
17727         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
17728         (RTL_CHECKC1, RTL_CHECKC2): New.
17729         (XC*): New accessor macros.
17730         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
17731         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
17732         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
17733         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
17734         (TRAP_*, RANGE_INFO_*): Likewise.
17735
17736 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17737
17738         * Makefile.in (tlink.o): Don't depend on toplev.h.
17739
17740         * collect2.c (c_file, o_file, export_file, import_file, ldout,
17741         output_file, nm_file_name, ldd_file_name, strip_file_name,
17742         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
17743         add_prefix, prefix_from_env, prefix_from_string, do_wait,
17744         fork_execute, maybe_unlink, add_to_list,
17745         extract_init_priority, write_list, dump_list,
17746         dump_prefix_list, write_list_with_asm, write_c_file,
17747         write_c_file_stat, write_c_file_glob, scan_prog_file,
17748         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
17749         ignore_library, extract_string, notice, dump_file, target_machine,
17750         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
17751         read_file, print_load_command): Constify a char*.
17752         (fdopen, error, fatal, fatal_perror): Don't prototype.
17753         (my_strerror): Remove.  All callers use xstrerror instead.
17754         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
17755         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
17756         to xcalloc/strcpy/strcat/...  to one call to concat.
17757         (main, scan_prog_file, scan_libraries): Use an intermediate
17758         `const char **' to build an argv array.
17759         (mapfile, libselect, libcompare, locatelib): Add prototypes.
17760
17761         * collect2.h (collect_execute, collect_wait, dump_file,
17762         file_exists): Constify a char*.
17763         (ldout, c_file_name, temporary_obstack, permanent_obstack,
17764         temporary_firstobj, vflag, debug): Add extern declarations.
17765         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
17766
17767         * tlink.c: Don't include toplev.h.
17768         (vflag, debug, ldout, c_file_name, temporary_obstack,
17769         permanent_obstack, temporary_firstobj): Don't declare.
17770         (tlink_execute, frob_extension, symbol_hash_lookup,
17771         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
17772         recompile_files, read_repo_files, demangle_new_symbols,
17773         scan_linker_output): Constify a char*.
17774         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
17775         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
17776
17777 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
17778
17779         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
17780         (relative) rather than jsr (absolute) subroutine call insns.
17781         * config/m68k/m68k-coff.h: Ditto.
17782
17783 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
17784
17785         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
17786         now rework these too.
17787         (arm_reorg): If an insn can't reach the end of the current pool,
17788         ensure that we emit that pool before the insn.
17789
17790 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
17791
17792         * tlink.c (scan_linker_output): Skip the initial underscore in
17793         a mangled name if appropriate.
17794
17795 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17796
17797         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
17798         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
17799         error_with_ivar, gen_declarator, create_builtin_decl,
17800         my_build_string, generate_descriptor_table, generate_ivars_list,
17801         generate_dispatch_table, check_protocols, TAG_GETCLASS,
17802         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
17803         dump_base_name, lang_decode_option, build_encode_expr,
17804         start_class, finish_class, encode_pointer, really_start_method,
17805         gen_declaration, dump_interface, handle_class_ref, handle_impent):
17806         Constify.
17807         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
17808         Add static prototypes.
17809         (build_objc_string_decl, build_selector_reference_decl,
17810         encode_bitfield, build_class_reference_decl): Remove unused
17811         parameter, all callers changed.
17812         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
17813         (objc_printable_name): Likewise.  Change second parameter to type int.
17814         (init_objc): Use memcpy, not bcopy, to avoid casts.
17815
17816 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
17817
17818         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
17819         reg notes on a deleted insn.
17820         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
17821
17822 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
17823
17824         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
17825
17826 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17827
17828         * stmt.c (expand_asm_operands): Fix index into inout_mode when
17829         reading it.
17830
17831 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
17832
17833         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
17834         * tm.texi (MD_ASM_CLOBBERS): Document it.
17835
17836 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
17837
17838         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
17839         * except.c (expand_rethrow): Remove unused variable.
17840         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
17841         * flow.c (replace_insns): Likewise.
17842         (create_edge_list, verify_edge_list): Likewise.
17843         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
17844
17845         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
17846         is special code to run.
17847         (main): Don't define operands to emit_operand.
17848         * genrecog.c (main): Don't emit an empty peephole2_insn function.
17849
17850         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
17851
17852         * alpha/alpha.h (normal_memory_operand): Declare.
17853         (reg_no_subreg_operand): Declare.
17854         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
17855
17856 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
17857
17858         * c-parse.in (compstmt_primary_start): New, broken out of first
17859         part of compstmt handling in primary.
17860         (primary): Use it.  Add an error clause.
17861         (compstmt_nostart): Renamed from compstmt; remove all
17862         initial invocations of compstmt_start.
17863         (compstmt): New.
17864
17865 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
17866
17867         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
17868         needed.
17869
17870 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
17871
17872         * combine.c (simplify_shift_const): Remove extra semicolon.
17873         * dwarf2out.c (remove_AT): Likewise.
17874         * expmed.c (expand_mult): Likewise.
17875         * gcov.c (create_program_flow_graph): Likewise.
17876         * reorg.c (mostly_true_jump): Likewise.
17877
17878 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
17879
17880         * fold-const.c (fold_range_test): Do not try to fold the range
17881         test if the rhs or lhs has side effects.
17882
17883         * combine.c (simplify_rtx): Recognize another case of a synthesized
17884         sign extension.
17885
17886         * varasm.c (mark_constant_pool): When marking indirect references,
17887         only look at SYMBOL_REFs.
17888
17889         * except.c (expand_fixup_region_end): Do not peek at
17890         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
17891
17892 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
17893
17894         * flags.h: New variables align_loops, align_loops_log,
17895         align_jumps, align_jumps_log, align_labels, align_labels_log,
17896         align_functions, align_functions_log.
17897         * toplev.c: Define them.
17898         (f_options): Handle -falign-* when they have no argument.
17899         (main): Add logic to set variables for -falign-functions,
17900         -falign-jumps, -falign-labels, -falign-loops.
17901         Make it -fsched-verbose=<n> and -finline-limit=<n>.
17902         (display_help): Change help to match options.
17903         * final.c (LABEL_ALIGN): Default to align_labels_log.
17904         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
17905         (LOOP_ALIGN): Default to align_loops_log.
17906         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
17907         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
17908         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
17909         * varasm.c (assemble_start_function): Handle align_functions.
17910
17911         * config/sparc/sparc.h: Don't declare sparc_align_*.
17912         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
17913         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
17914         sparc.c.
17915         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
17916         it's a promise.
17917         * config/sparc/sparc.c: Delete sparc_align_loops,
17918         sparc_align_jumps, sparc_align_funcs and the corresponding string
17919         variables.
17920         (sparc_override_options): Default align_functions on ultrasparc.
17921         Delete -malign-* handling.
17922
17923         * config/mips/mips.c (override_options):  On 64-bit targets,
17924         try to align code to 64-bit boundaries.
17925         (print_operand): New substitution, %~,
17926         which aligns labels to align_labels_log.
17927         * config/mips/mips.md (div_trap_normal): Use %~.
17928         (div_trap_mips16): Likewise.
17929         (abssi): Likewise.
17930         (absdi2): Likewise.
17931         (ffssi2): Likewise.
17932         (ffsdi2): Likewise.
17933         (ashldi3_internal): Likewise.
17934         (ashrdi3_internal): Likewise.
17935         (lshrdi3_internal): Likewise.
17936         (casesi_internal): Likewise.
17937
17938 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
17939
17940         Merge new ia32 backend from the branch!
17941
17942         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
17943         See ChangeLog.P2 on new_ia32_branch for details.
17944
17945         * rtl.h (stack_regs_mentioned_p): Delete prototype.
17946         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
17947         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
17948         * i386/gas.h (ASM_FILE_START): Define.
17949         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
17950         for name change of ix86_valid_decl_attribute_p.
17951         (i386_pe_valid_type_attribute_p): Similarly.
17952
17953 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
17954
17955         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
17956         to step through CC modes.
17957
17958 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17959
17960         * regmove.c (fixup_match_1): Don't move INSN in front of P if
17961         it would end up in the shadow of a live flags regsiter.
17962
17963 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17964
17965         * reload1.c: Fix many indentation problems.
17966         * reload.c: Likewise.
17967
17968 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
17969
17970         * alias.c (non_local_reference_p): Constify fmt.
17971
17972 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
17973
17974         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
17975
17976 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
17977
17978         * cse.c (delete_trivially_dead_insns): Do not delete stores to
17979         the internal_arg_pointer.
17980
17981 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
17982
17983         Merge peephole2 from new_ia32_branch:
17984         * Makefile.in (STAGESTUFF): Add *.peephole2.
17985         (mostlyclean): Likewise.
17986         (recog.o): Depend on resource.h.
17987
17988         * final.c (peephole): Conditionalize decl on HAVE_peephole.
17989         (final_scan_insn): Likewise for the invocation of peephole.
17990         * genconfig.c (main): Look for peephole and peephole2 patterns.
17991         Emit HAVE_peephole* accordingly.
17992         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
17993         * flags.h (flag_peephole2): Declare.
17994         * toplev.c: New pass peephole2.  New flag -fpeephole2.
17995
17996         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
17997         * gencodes.c (main): Likewise.
17998         * genextract.c (main): Likewise.
17999         * genoutput.c (main): Likewise.
18000         * genemit.c (max_operand_1): Look for the max scratch operand.
18001         (gen_rtx_scratch): New.
18002         (gen_exp): Use it, and pass on new arg subroutine_type.
18003         (gen_expand): Take max scratch into account.
18004         (gen_split): Emit peephole2 functions.
18005         (output_peephole2_scratch): New.
18006         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
18007         * genrecog.c (routine_type): Add PEEPHOLE2.
18008         (IS_SPLIT): New.
18009         (make_insn_sequence): Match outer parallel for peep2.  Discard
18010         top level scratches and dups.
18011         (add_to_sequence): New args insn_type and top.  Update all callers.
18012         Handle toplevel peep2 matching insns.
18013         (write_subroutine): Handle peep2.
18014         (write_tree_1): Likewise.
18015         (write_tree): Likewise.
18016         (main): Likewise.
18017         (change_state): New arg afterward.  Update all callers.
18018         Handle matching separate insns.
18019         * recog.c (recog_next_insn): New.
18020         (peephole2_optimize): New.
18021         * rtl.def (DEFINE_PEEPHOLE2): New.
18022         * resource.c (find_free_register): New argument last_insn.  Use it
18023         to find a register available through the entire span.
18024         * resource.h (find_free_register): Update prototype.
18025
18026 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
18027
18028         * i386.c (output_strlen_unroll): Don't write xops[7]
18029         label if it wasn't set.
18030
18031 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
18032
18033         * cpplib.c (struct directive): Const-ify name pointer and
18034         function pointer prototype.
18035         (validate_else, do_define, do_line, do_include, do_undef,
18036         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
18037         do_elif, do_endif, do_sccs, do_assert, do_unassert,
18038         do_warning): Const-ify second arg.
18039         (directive_table): Mark const.  Reorder entries by frequency
18040         of usage, record statistics.
18041
18042 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
18043
18044         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
18045         bounds- check RTL accesses if --enable-checking.
18046         (RTVEC_ELT): Bounds check if --enable-checking.
18047         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
18048         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
18049         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
18050         GET_NUM_ELEM.
18051         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
18052         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
18053
18054         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
18055         (NOTE_SOURCE_FILE): Use X0STR.
18056         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
18057         MEM_ALIAS_SET): Use X0INT.
18058         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
18059         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
18060         Use X0EXP.
18061         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
18062         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
18063         (rtl_check_failed_bounds, rtl_check_failed_type1,
18064         rtl_check_failed_type2, rtvec_check_failed_bounds): New
18065         functions.
18066         (fancy_abort): Fix comment.
18067
18068         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
18069         (cse_insn): Decrement LABEL_NUSES for jump target before
18070         deleting jump insn.
18071         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
18072         * final.c (alter_subreg): Compute regno before changing x to
18073         REG; set REGNO(x) after changing it.
18074         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
18075         notes containing CONST_INTs.
18076         (delete_eh_regions): Use NOTE_EH_HANDLER.
18077         * function.c (put_reg_into_stack): Make reg a MEM before
18078         initializing it.
18079         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
18080         delete insn.
18081         (gen_mem_addressof): Make reg a MEM before initializing it.
18082         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
18083         X0WINT.
18084         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
18085         deleting an insn, not after.
18086         (block_alloc): Only look at PATTERN(insn) if we have to, and
18087         only if it's format class 'i'.
18088         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
18089         CONST_INT before using its INTVAL.
18090         * print-rtl.c (print_rtx): Use X0STR.
18091         * regmove.c (fixup_match_1): Don't look at PATTERN of
18092         non-class-'i' insn chain elements.
18093         * reload.c (loc_mentioned_in_p): Take address of
18094         in->fld[1].rtx directly.
18095         * reload1.c (reload): Change reg to a MEM before initializing
18096         it.
18097         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
18098         have no names.
18099         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
18100
18101 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
18102
18103         * config/mips/mips.c (machine_dependent_reorg): Force a
18104         barrier to output the local constant pool if a barrier hasn't
18105         been found at a natural point in the instruction stream.
18106
18107 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18108
18109         * c-parse.in (language_string): Constify.
18110
18111         * dwarf2out.c (language_string): Remove declaration.
18112
18113         * dwarfout.c (language_string): Likewise.
18114
18115         * toplev.c (language_string, init_parse, finish_parse): Likewise.
18116
18117         * tree.h (language_string, init_parse, finish_parse): Declare.
18118
18119         * i386/sun386.h (language_string): Remove declaration.
18120
18121         * mips.h (language_string): Likewise.
18122
18123         * nextstep.h (language_string): Likewise.
18124
18125         * nextstep21.h (language_string): Likewise.
18126
18127         * rs6000.c (language_string): Likewise.
18128
18129 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18130
18131         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
18132         (getpwd.o): Remove target.
18133
18134         * getpwd.c: Delete file.  Its in libiberty now.
18135
18136         * dbxout.c (getpwd): Don't prototype.
18137         * dwarf2out.c (getpwd): Likewise
18138         * dwarfout.c (getpwd): Likewise
18139         * final.c (getpwd): Likewise.
18140         * protoize.c (getpwd): Likewise.
18141
18142 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18143
18144         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
18145
18146 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
18147
18148         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
18149         mark_set_resources.
18150
18151 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
18152
18153         * fixinc/Makefile.in (subdir): New.
18154         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
18155         (Makefile): New.
18156
18157 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
18158
18159         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
18160         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
18161         be shared.
18162
18163         * invoke.texi: Fix typo.
18164
18165         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
18166         changed.  Handle autoincrement addressing modes.
18167
18168         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
18169         just like we would the virtual incoming args register when
18170         integrating.
18171
18172 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
18173
18174         * rs6000.h (ASM_FILE_START): Specify complete filename, including
18175         path, in .file directive.
18176
18177 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
18178
18179         * gcc.texi (External Bugs): Remove obsolete note about Perl on
18180         SunOS.
18181
18182 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
18183
18184         * stdbool.h: Make the typedef name _Bool, with bool a #defined
18185         alias.
18186
18187 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18188
18189         * tree.c (tree_code_name): Constify a char*.
18190
18191         * tree.h (tree_code_name, decl_printable_name): Likewise.
18192
18193         * function.h (struct function): Likewise.
18194
18195         * toplev.c (decl_name, decl_printable_name): Likewise.
18196
18197         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
18198
18199         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
18200         (init_objc): Remove function pointer cast.
18201
18202 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
18203
18204         * pa.md (interspace_jump): New pattern.
18205         (builtin_longjmp): New expander.
18206
18207 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
18208
18209         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
18210         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
18211         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
18212
18213 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
18214
18215         * jump.c (delete_prior_computation): Also check calls
18216         to constant functions.  Don't bother checking for a
18217         REG_UNUSED note before adding it.
18218         (delete_computation): Handle multi-word hard registers
18219         when synthesizing missing REG_DEAD notes for a register
18220         which is both set and used by an insn.
18221
18222 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18223
18224         * loop.c (this_loop_info): New variable.
18225         (loop_has_call, loop_has_volatile, loop_has_tablejump,
18226         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
18227         All uses updated.
18228         (prescan_loop, strength_reduce): New argument loop_info.  All callers
18229         updated.
18230         (scan_loop): New variable loop_info, initialise to address of
18231         this_loop_info.
18232         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
18233         Delete variable loop_has_multiple_exit targets and replace with
18234         field in this_loop_info.
18235         (find_and_verify_loops): Rename this_loop to this_loop_num.
18236         (strength_reduce): Delete loop_iteration_info.  Replace variable
18237         loop_info with function argument of same name.
18238         (insert_bct): Rework test for loop being completely unrolled.
18239
18240         * loop.h (struct loop_info): New fields num, loops_enclosed,
18241         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
18242         has_indirect_jump, and cont.  Redefine use of unroll_number.
18243         (loop_unroll_number): Delete.
18244
18245         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
18246         field of loop_info.
18247         (loop_iterations): Delete variable vtop and instead use
18248         loop_info->vtop computed in prescan_loop.
18249
18250 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
18251
18252         * fix-header.c (main): Do not pass a null pointer to strcmp.
18253
18254 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
18255
18256         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
18257         filenames.
18258         * configure: Rebuilt.
18259
18260 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
18261
18262         * jump.c (jump_optimize_1): Do not delete assignments to
18263         internal_arg_pointer.
18264         * cse.c (delete_trivially_dead_insns): Always consider a set of
18265         the internal_arg_pointer live.
18266
18267 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
18268
18269         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
18270         (update_life_info) [REG_WAS_0]: Search the original insns rather
18271         than the new insns for the note.  Fix typos finding note_dest.
18272         If no dest found, discard the note rather than abort.
18273         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
18274         (replace_insns): Remove the old insn list after update_life_info
18275         not before.
18276
18277 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
18278
18279         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
18280         sched_analyze_insn.
18281         (sched_analyze_1): Let add_dependence care for not adding dups.
18282         (sched_analyze_2): Likewise.
18283         (add_branch_dependences): Likewise.
18284
18285 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
18286
18287         * i386/winnt.c (export_list): New type.
18288         (exports_head): Rename to
18289         (export_head):  this.
18290         (i386_pe_record_exported_symbol): Add is_data flag.
18291         (i386_pe_asm_file_end): Emit directive for exported variables.
18292         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
18293         prototype.
18294         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
18295         (ASM_DECLARE_OBJECT_NAME): Likewise.
18296         (ASM_DECLARE_FUNCTION_NAME): Likewise.
18297         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18298
18299 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
18300
18301         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
18302
18303         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
18304         operand.
18305
18306 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
18307
18308         * config/openbsd.h: Define SET_ASM_OP.
18309         * tm.texi: cross-reference SET_ASM_OP in the index.
18310
18311 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
18312
18313         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
18314         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
18315         and class_narrowest_mode at compile time.  Kill init_rtl.
18316         Mark rtx_length, mode_class, mode_size, mode_unit_size,
18317         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
18318         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
18319         EXTRA_CC_NAMES.
18320         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
18321         format.
18322         * rtl.h: Declare rtx_length and rtx_format as const.
18323         * machmode.def: Define CC().  Use CC() to define CCmode.  If
18324         EXTRA_CC_MODES is defined, expand it here.
18325         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
18326         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
18327         const.  Kill all references to EXTRA_CC_MODES.
18328
18329         * toplev.c: Don't prototype or call init_rtl.
18330         * optabs.c: Don't call init_mov_optab.
18331         * genemit.c: Don't generate init_mov_optab.  Don't call
18332         init_rtl.
18333         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
18334         here.
18335         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
18336         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
18337         genrecog.c: Don't call init_rtl.
18338
18339         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
18340         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
18341         definition of EXTRA_CC_MODES.
18342
18343         * md.texi: Kill ref to EXTRA_CC_NAMES.
18344         * tm.texi: Document new way to define EXTRA_CC_MODES.
18345
18346         * genrecog.c: Do not look up the name of a define_split.
18347         (Unrelated bugfix.)
18348
18349 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
18350
18351         * config/v850/v850.md: Fix typo introduced by previous delta.
18352
18353 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18354
18355         * gcc.c (fatal): Make definition static to match prototype.
18356
18357 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18358
18359         * combine.c (get_last_value): Don't look for earlier sets if the last
18360         known set is somewhere in between the insns being combined.
18361
18362 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
18363
18364         * configure.in: Don't use shell ! to negate exit codes
18365         * configure: Regenerate
18366
18367 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
18368
18369         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
18370         the fact that ALIGN is measured in bits, not bytes.
18371
18372 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
18373
18374         * errors.c: New file; defines functions error, warning, and
18375         fatal, variables have_error and progname.
18376         * errors.h: New file; prototypes and decls for stuff in errors.c.
18377
18378         * Makefile: Add rules to build errors.o and
18379         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
18380         genopinit, genrecog, genextract, genpeep, genattr, and
18381         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
18382         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
18383         genpeep.o, genattr.o, and genoutput.o.
18384
18385         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
18386         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
18387         define or prototype fatal.  Set progname at beginning of main.
18388         * genoutput.c:  Likewise, and don't define or prototype error
18389         either.
18390
18391         * c-typeck.c (c_expand_start_case): Return immediately if exp
18392         is an ERROR_MARK.
18393         * fold-const.c (operand_equal_p): Return immediately if arg1
18394         or arg0 are ERROR_MARKs.
18395         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
18396         fields of type ERROR_MARK when calculating if the record can
18397         go in a register.
18398
18399 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
18400         with much help from Jeffrey A Law and Richard Henderson
18401
18402         * i386.md: In the 6 insns which call output_fix_trunc,
18403         earlyclobber operands[0].
18404
18405 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
18406
18407         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
18408         creating new registers.
18409
18410 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
18411
18412         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
18413         i386_reg_alloc_order, i386_regparm_string,
18414         i386_align_loops_string, i386_align_jumps_string,
18415         i386_align_funcs_string, i386_preferred_stack_boundary_string,
18416         and i386_branch_cost_string as type "const char *".
18417         * i386.c: Define all above strings as type "const char *".
18418
18419 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
18420
18421         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
18422         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
18423
18424 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
18425
18426         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
18427         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
18428
18429 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
18430
18431         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
18432         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
18433         (dwarf2out_line, dwarf2out_finish): Likewise.
18434         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
18435
18436 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18437
18438         * tree.c (lang_unsave_expr_now) : Correct return type.
18439         * tree.h (lang_unsave_expr_now) : Same.
18440
18441 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
18442
18443         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
18444         instead of duplicating code.
18445
18446 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18447
18448         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
18449
18450 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
18451
18452         * tree.h: fancy_abort always takes three args.
18453         * resource.c: Move include of system.h before toplev.h.
18454
18455 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
18456
18457         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
18458         as SYMBOL_REFs.
18459
18460 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
18461
18462         * system.h: Don't redefine abort or trim_filename.
18463         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
18464         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
18465         whether or not __FUNCTION__ is available.
18466         * tree.h: Duplicate rtl.h's definition of abort, for files
18467         that don't include rtl.h.  Delete all code to perform type
18468         checking with a compiler other than GCC.
18469         * varray.h: Delete all code to perform type checking with a
18470         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
18471         its arguments exactly once, using a statement expression.
18472         Adjust the VARRAY_<type> accessor macros to match.
18473         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
18474         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
18475         caller's location.  Define fatal_insn and fatal_insn_not_found
18476         as macros that use _fatal_insn and _fatal_insn_not_found.
18477         (fancy_abort, trim_filename): Kill prototypes.
18478
18479         * rtl.c (trim_filename): Move here from toplev.c.
18480         (fancy_abort): New function.
18481         (DIR_SEPARATOR): Provide default definition.
18482         * tree.c (tree_check_failed, tree_class_check_failed): Go
18483         through fancy_abort.
18484         (tree_check, tree_class_check, cst_or_constructor_check,
18485         expr_check): Delete.
18486         * varray.c (varray_check_failed): New function.
18487         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
18488         _fatal_insn and _fatal_insn_not_found.  Go through
18489         fancy_abort.
18490         (trim_filename, fancy_abort): Delete.
18491
18492         * builtins.c (expand_builtin_args_info): Report ICE with abort.
18493         * except.c (start_catch_handler): Report ICE with error/abort
18494         combo.
18495         * final.c (output_operand_lossage): Likewise.
18496         * flow.c (verify_flow_info): Likewise.
18497
18498         * gcc.c: Prototype fatal.
18499         * gengenrtl.c: Undef abort after including rtl.h not system.h.
18500         * genattr.c, genattrtab.c, genemit.c, genextract.c,
18501         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
18502         Don't define fancy_abort.
18503
18504 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
18505
18506         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
18507         canonization.
18508
18509 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
18510
18511         * m88k.h (VERSION_INFO2): Kill.
18512         (VERSION_STRING): Kill.
18513         (TM_RCS_ID): Kill.
18514         (VERSION_INFO1): Tidy.
18515         (TARGET_VERSION): Update.
18516         * m88k/dgux.h (VERSION_INFO2): Kill.
18517         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
18518         * m88k/luna.h (VERSION_INFO1): Tidy.
18519         * m88k/sysv4.h (VERSION_INFO1): Likewise.
18520         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
18521         (output_file_start): Adjust for death of VERSION_STRING.
18522
18523 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
18524
18525         * cpplib.c (detect_if_not_defined): New function.
18526         (do_if): Use it to detect potential once-only headers.
18527
18528 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
18529
18530         * c-common.c (combine_strings): Always set TREE_CONSTANT.
18531
18532 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18533
18534         * combine.c (nonzero_bits) : Allow single-ly set registers to be
18535         anywere in the function only if they are pseudos and set before
18536         being used (not live at the start of the function).
18537         (num_sign_bit_copies) : Same.
18538         (get_last_value_validate) : Same.
18539         (get_last_value) : Same.
18540
18541 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
18542
18543         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
18544         where N and M are constant and N is an integer multiple of M.
18545
18546 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18547
18548         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
18549         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
18550         sbitmap_union_of_preds): Add prototypes.
18551         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
18552         the intersection of successors with the new flow graph structures.
18553         (sbitmap_intersection_of_preds): New function to compute the
18554         intersection of predecessors with the new flow graph structures.
18555         (sbitmap_union_of_succs): New function to compute the union of
18556         successors with the new flow graph structures.
18557         (sbitmap_union_of_preds): New function to compute the union of
18558         predecessors with the new flow graph structures.
18559         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
18560         (expr_reaches_here_p): Use edge and basic_block structures instead
18561         of s_preds and s_succs.
18562         (compute_cprop_avinout): Use new sbitmap routines.
18563         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
18564         of s_preds and s_succs.
18565         * flow.c (compute_flow_dominators): Compute dominators using
18566         edges and basic blocks instead of s_preds and s_succs.
18567
18568 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18569
18570         * lists.c (unused_insn_list, unused_expr_list): New file for
18571         maintaining various types of lists. New statics for maintaining a
18572         cache of available INSN_LIST and EXPR_LIST nodes.
18573         (free_list): Static function for freeing a list of INSN/EXPR nodes.
18574         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
18575         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
18576         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
18577         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
18578         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
18579         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
18580         (free_INSN_LIST_node): Free an individual INSN_LIST node.
18581         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
18582         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
18583         (remove_dependence, free_pending_lists): Use new global routines.
18584         (flush_pending_lists, sched_analyze_insn): Use new global routines.
18585         (sched_analyze, compute_block_backward_dependences): Use new routines.
18586         (sched_analyze_1, sched_analyze_2): Use new routines.
18587         (schedule_insns): Use new global routines.
18588         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
18589         prototypes.
18590         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
18591         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
18592         prototypes.
18593         * toplev.c (rest_of_compilation): Initialize node cache.
18594         * Makefile.in (OBJS): Add lists.o to list of object files.
18595         (lists.o): Add dependancies.
18596
18597 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
18598
18599         * config/v850/v850.md: Fix compile time warning messages.
18600         * config/v850/v850.c: Fix compile time warning messages.
18601         * config/v850/v850.h: Fix compile time warning messages.
18602
18603 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18604
18605         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
18606         Remove unused prototype for `init_lengths'.
18607
18608 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18609
18610         * calls.c (emit_call_1): Mark parameter `stack_size' with
18611         ATTRIBUTE_UNUSED.
18612         (expand_call): Initialize variable `insn'.
18613         (emit_library_call): Likewise for variable `high_to_save'.
18614         (emit_library_call_value): Likewise.
18615         (store_one_arg): Likewise for variables `lower_bound' and
18616         `upper_bound'.
18617
18618         * combine.c (try_combine): Likewise for variables `i2_code_number'
18619         and `other_code_number'.
18620         (find_split_point): Likewise for variables `pos', `unsignedp' and
18621         `inner'.
18622         (simplify_if_then_else): Likewise for variables `op' and `c1'.
18623         (simplify_and_const_int): Remove unused variable `width'.
18624         (merge_outer_ops): Likewise.
18625
18626         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
18627         HOST_WIDE_INT' when comparing against one.
18628         (simplify_relational_operation): Likewise.
18629         (cse_insn): Initialize variables `src_eqv_volatile',
18630         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
18631
18632         * final.c (init_final): Constify parameter `filename'.
18633         (final_start_function): Mark parameter `optimize' with
18634         ATTRIBUTE_UNUSED.
18635         (profile_function): Likewise for parameters `first' and `optimize'.
18636         (output_source_line): Likewise for parameter `file'.
18637
18638         * integrate.c (subst_constants): Cast a value to `size_t' when
18639         comparing against one.
18640         (mark_stores): Initialize variable `mode'.  Cast a value to
18641         `size_t' when comparing against one.
18642
18643         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
18644
18645         * loop.c (move_movables): Initialize variable `first'.
18646         (strength_reduce): Likewise for variable `increment'.
18647         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
18648         value to `size_t' when comparing against one.
18649         (load_mems): Initialize variable `end_label'.
18650
18651         * output.h (init_final): Constify parameter.
18652
18653         * reload.c (decompose): Initialize variable `base'.
18654
18655         * reload1.c (reload): Likewise for variable `is_scalar'.
18656         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
18657         (choose_reload_regs): Initialize variable `mode'.
18658         (emit_reload_insns): Likewise for variable `store_insn'.
18659         (reload_cse_noop_set_p): Mark parameter `insn' with
18660         ATTRIBUTE_UNUSED.
18661         (reload_combine): Initialize variable `set'.
18662
18663         * unroll.c (unroll_loop): Likewise for variable `local_label'.
18664         (copy_loop_body): Cast a value to `size_t' when comparing against
18665         one.
18666
18667         * varasm.c (assemble_variable): Initialize variable `size_tree'.
18668         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
18669         (remove_from_pending_weak_list): Mark parameter `name' with
18670         ATTRIBUTE_UNUSED.
18671
18672 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18673
18674         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
18675         gcse dump file.
18676
18677 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
18678
18679         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
18680         (ASM_DECLARE_FUNCTION_NAME): Define.
18681         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
18682         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
18683         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
18684         not already defined.
18685
18686 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18687
18688         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
18689         of n_popped when call/call_value are not defined.
18690
18691 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
18692
18693         * tm.texi: GNU CC -> GCC conversion.
18694         (CC1_SPEC): Indicate it is used for all language front ends.
18695
18696 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
18697
18698         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
18699         NOTE_INSN_EH_REGION_END correctly.
18700
18701 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
18702                           Jeff Law <law@cygnus.com>
18703
18704         * loop.c (strength_reduce): Automatically unroll loops if the
18705         unrolled loop size is smaller than the rolled loop size.
18706
18707         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
18708         and delete comment that code should be rewritten.
18709
18710 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
18711
18712         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
18713         as reachable.
18714
18715         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
18716
18717 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
18718
18719         * fixinc/mkfixinc.sh: Don't fix uwin headers.
18720         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
18721         (LINK_SPEC): Add -u _main when building executables.
18722         (ASM_DECLARE_FUNCTION): Update from Cygwin.
18723         (ASM_FILE_END): Use the default for ix86-pe.
18724         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
18725
18726 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
18727
18728         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
18729         and ASM_CLOSE_PAREN are empty strings.
18730
18731 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
18732                           Geoffrey Keating <geoffk@cygnus.com>
18733
18734         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
18735         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
18736         (unprotoize.o): Ditto.
18737         (test-protoize-simple): Don't define STD_PROTO_DIR.
18738         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
18739         changes to make 'test-protoize-simple' pass.
18740         (STD_PROTO_DIR): Remove define.
18741         (STANDARD_EXEC_PREFIX): Supply default define.
18742         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
18743         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
18744         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
18745         (GET_ENV_PATH_LIST): New macro.
18746         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
18747         (do_processing): Initialize default_syscalls_dir using new
18748         macros.  Use it to initialize syscalls_absolute_filename.
18749
18750 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
18751
18752         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
18753         B into a register before emit_conditional_move.
18754
18755 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
18756
18757         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
18758         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
18759         multiplicand out of (+ (* a b) (* c d)).
18760
18761 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
18762                           Richard Henderson  <rth@cygnus.com>
18763
18764         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
18765         (new_insn_dead_notes): Likewise.
18766         (update_n_sets): Likewise.
18767         (update_flow_info): Move to flow.c, renamed to update_life_info;
18768         extend to handle multiple source insns.
18769         * flow.c: Include resource.h
18770         (unlink_insn_chain): New.
18771         (split_hard_reg_notes): New.
18772         (maybe_add_dead_note): New.
18773         (maybe_add_dead_note_use): New.
18774         (find_insn_with_note): New.
18775         (new_insn_dead_notes): New.
18776         (update_n_sets): New.
18777         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
18778         (maybe_remove_dead_notes): New.
18779         (update_life_info): New.
18780         (prepend_reg_notes): New.
18781         (replace_insns): New.
18782         * output.h (update_life_info): Declare.
18783         * recog.c (split_block_insns): Use update_life_info.
18784         * resource.c (find_free_register): Use reg_alloc_order, don't use
18785         fixed regs, make sure the mode is supported, don't use new regs.
18786         (reg_dead_p): New.
18787         * rtl.h (replace_insns): Declare.
18788
18789 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
18790
18791         * expr.c (expand_expr): Cope with COND_EXPRs with one
18792         non-returning branch.
18793
18794 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
18795
18796         * expr.c (store_expr): Always pass down the target, even when not
18797         doing CSE.
18798
18799 1999-08-24  Nick Clifton  <nickc@cygnus.com>
18800
18801         * configure.in: Define target_cpu_default for v850 targets.
18802         * configure: Regenerate
18803
18804         * config/v850/v850.h (TARGET_CPU_generic): Define.
18805         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
18806         addresses are 4 byte aligned.
18807
18808         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
18809         addresses.
18810
18811 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18812
18813         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
18814         (main): Add prototypes.
18815
18816         * genattrtab.c (substitute_address, write_const_num_delay_slots,
18817         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
18818         (write_attr_get): Emit prototypes along with function definition.
18819         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
18820         (write_complex_function): Emit static prototype along with
18821         function definition.
18822
18823         * genemit.c (gen_split): Emit prototypes along with function
18824         definition.
18825
18826         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
18827         Likewise for predicates and `insn_operand_predicate'.
18828         (process_template): Emit static prototype along with function
18829         definition.
18830
18831         * genrecog.c (make_insn_sequence): Constify a char*.  Add
18832         prototypes for get_split_*().
18833         (write_subroutine): Emit prototypes along with function
18834         definition.
18835
18836 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18837
18838         * gcse.c (find_avail_set): Follow chains of register-register copies.
18839         Use oprs_not_set_p to guarantee that the returned value can be
18840         substituted.
18841         (cprop_insn): Don't verify the return value of find_avail_set with
18842         oprs_not_set_p.
18843
18844         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
18845         (cprop_cc0_jump): New function.
18846         (cprop_insn): Break out new function cprop_jump and use it.
18847         Also use cprop_cc0_jump for machines with CC0.
18848         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
18849
18850         * tree.h (current_function_calls_setjmp,
18851         current_function_calls_longjmp): Delete declarations.
18852         * dsp16xx.c: Include "function.h".
18853         * elxsi.c: Likewise.
18854         * gmicro.c: Likewise.
18855         * h8300.c: Likewise.
18856         * i370.c: Likewise.
18857         * m32r.c: Likewise.
18858         * mn10200.c: Likewise.
18859         * mn10300.c: Likewise.
18860         * ns32k.c: Likewise.
18861         * spur.c: Likewise.
18862         * v850.c: Likewise.
18863
18864         * rtl.h (rtx_equal_function_value_matters): Declare.
18865         * toplev.c (rtx_equal_function_value_matters): Don't declare.
18866         * cse.c: Likewise.
18867         * function.c: Likewise.
18868         * emit-rtl.c: Likewise.
18869
18870 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
18871
18872         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
18873         call.
18874
18875 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18876
18877         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
18878         exactly.
18879
18880 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
18881
18882         * cpp.texi: Add a node documenting macro varargs (copied
18883         from extend.texi).
18884
18885 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
18886
18887         * cppspec.c: Put a null pointer at the end of the new argv.
18888
18889 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
18890
18891         * configure.in: Remove code to select/de-select the haifa
18892         scheduler.  Every scheduled port gets haifa now.
18893         * configure: Rebuilt.
18894         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
18895         * sched.c Deleted.
18896         * Makefile.in: Corresponding changes.
18897
18898 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18899
18900         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
18901         All callers changed.
18902         (prepare_float_lib_cmp): Likewise.
18903         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
18904         * expr.h (emit_float_lib_cmp): Delete declaration.
18905         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
18906         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
18907         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
18908         specially.
18909         (cmptf): Now conditional on TARGET_HARD_QUAD.
18910
18911 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
18912
18913         * resource.c (mark_target_live_regs): Use
18914         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
18915
18916 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18917
18918         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
18919
18920         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
18921
18922         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
18923
18924 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18925
18926         * rtl.h (rtx_format): Constify a char*.
18927
18928         * rtl.c (rtx_format): Likewise.
18929         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
18930         (init_rtl): Use accessor macro, not `rtx_format'.
18931
18932         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
18933         char*.
18934
18935         * caller-save.c (mark_referenced_regs): Likewise.
18936
18937         * combine.c (subst, make_compound_operation, known_cond,
18938         gen_rtx_combine, update_table_tick, get_last_value_validate,
18939         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
18940
18941         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
18942         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
18943         count_reg_usage): Likewise.
18944
18945         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
18946         Likewise.
18947
18948         * final.c (leaf_renumber_regs_insn): Likewise.
18949
18950         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
18951         dump_edge_info, count_reg_references): Likewise.
18952
18953         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
18954         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
18955         Likewise.
18956
18957         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
18958         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
18959         add_label_notes): Likewise.
18960
18961         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
18962         clear_struct_flag, count_sub_rtxs, count_alternatives,
18963         compares_alternatives_p, contained_in_p, walk_attr_value,
18964         write_expr_attr_cache): Likewise.
18965
18966         * genconfig.c (walk_insn_part): Likewise.
18967
18968         * genemit.c (max_operand_1, gen_exp): Likewise.
18969
18970         * genextract.c (walk_rtx): Likewise.
18971
18972         * genflags.c (num_operands): Likewise.
18973
18974         * genoutput.c (scan_operands): Likewise.
18975
18976         * genpeep.c (match_rtx): Likewise.
18977
18978         * genrecog.c (add_to_sequence): Likewise.
18979
18980         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
18981         Likewise.
18982
18983         * integrate.c (save_constants, copy_for_inline,
18984         copy_rtx_and_substitute, subst_constants, restore_constants):
18985         Likewise.
18986
18987         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
18988         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
18989
18990         * local-alloc.c (contains_replace_regs, memref_referenced_p):
18991         Likewise.
18992
18993         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
18994         add_label_notes, replace_call_address, count_nonfixed_reads,
18995         invariant_p, find_single_use_in_loop, find_mem_givs,
18996         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
18997         Likewise.
18998
18999         * print-rtl.c (reg_names, print_rtx): Likewise.
19000
19001         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
19002
19003         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
19004         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
19005         print_blocks): Likewise.
19006
19007         * regclass.c (fix_register, record_address_regs,
19008         reg_scan_mark_refs): Likewise.
19009
19010         * regmove.c (stable_but_for_p): Likewise.
19011
19012         * reload.c (loc_mentioned_in_p, operands_match_p,
19013         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
19014         copy_replacements, refers_to_regno_for_reload_p,
19015         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
19016         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
19017         Likewise.
19018
19019         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
19020         delete_address_reloads_1, count_occurrences,
19021         reload_cse_mem_conflict_p, reload_combine_note_use,
19022         add_auto_inc_notes): Likewise.
19023
19024         * resource.c (mark_referenced_resources, mark_set_resources):
19025         Likewise.
19026
19027         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
19028         reg_mentioned_p, regs_set_between_p, modified_between_p,
19029         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
19030         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
19031         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
19032         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
19033
19034         * sched.c (sched_analyze_2, attach_deaths): Likewise.
19035
19036         * stupid.c (stupid_mark_refs): Likewise.
19037
19038         * unroll.c (remap_split_bivs): Likewise.
19039
19040         * varasm.c (mark_constants): Likewise.
19041
19042         * a29k/a29k.c (uses_local_reg_p): Likewise.
19043
19044         * alpha/alpha.c (summarize_insn): Likewise.
19045
19046         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
19047         eliminate_lr2ip): Likewise.
19048
19049         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
19050
19051         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
19052         reg_mentioned_in_mem): Likewise.
19053
19054         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
19055         symbolic_reference_mentioned_p): Likewise.
19056
19057         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
19058
19059         * sh/sh.c (regs_used, mark_use): Likewise.
19060
19061         * vax/vax.c (vax_rtx_cost): Likewise.
19062
19063 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19064
19065         * machmode.h (mode_name): Constify a char*.
19066
19067         * rtl.c (mode_name): Likewise.
19068
19069         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
19070
19071         * optabs.c (init_libfuncs): Constify a char*.
19072
19073         * print-tree.c (mode_name): Remove redundant declaration.
19074         (print_node): Use accessor macro, not `mode_name'.
19075
19076         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
19077         not `mode_name'.
19078         (new_spill_reg): Constify a char*.
19079
19080         * tree.c (mode_name): Remove redundant declaration.
19081
19082 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19083
19084         * rtl.c (rtx_name): Constify a char*.
19085
19086         * rtl.h (rtx_name, fix_sched_param): Likewise.
19087
19088         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
19089         (mypr): Use accessor macro, not `rtx_name'.
19090
19091         * genemit.c (print_code): Constify a char*.
19092
19093         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
19094
19095         * genpeep.c (print_code): Constify a char*.
19096
19097         * genrecog.c (print_code): Likewise.
19098
19099         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
19100         end_bb): Add static prototype.
19101         (draw_edge): Constify a char*.
19102         (end_bb): Remove unused parameter.
19103
19104         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
19105         print_block_visualization): Constify a char*.
19106
19107 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
19108
19109         * c-common.c (c_get_alias_set): Update comment.
19110
19111 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
19112
19113         * linux.h (LIB_SPEC): Added.
19114
19115 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19116
19117         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
19118
19119 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
19120
19121         * tree.c (expr_check): Fix typo in last change.
19122
19123 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
19124
19125         * rtl.def (NOTE): Change format to "iuu0n".
19126         (ADDR_DIFF_VEC): Change format to "eEee0".
19127         (ADDRESSOF): Change format to "eit".
19128
19129         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
19130         (RTVEC_ELT): Change to match.
19131         (XVECEXP): Use XVEC and RTVEC_ELT.
19132         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
19133         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
19134         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
19135         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
19136         TRAP_CONDITION, TRAP_CODE): Use XEXP.
19137         (INTVAL): Use XWINT.
19138         (ADDRESSOF_DECL): Use XTREE.
19139         (SET_ADDRESSOF_DECL): Delete.
19140         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
19141         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
19142         ifdefed out since 2.6 at least.
19143         (gen_rtvec_vv): Delete prototype.
19144
19145         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
19146         not rtunion.
19147         (copy_most_rtx): Handle 't' format letter.
19148         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
19149         (gen_rtvec_vv): Delete function.  All callers changed to use
19150         gen_rtvec_v instead.
19151         * print-rtl.c (print_rtx): Move special casing of NOTEs to
19152         the '0' format letter.
19153
19154         * function.c (gen_mem_addressof): Don't use
19155         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
19156         instead.
19157         * integrate.c (copy_rtx_and_substitute): Likewise.
19158         Copy 't' slots with XTREE.
19159         (subst_constants): Treat 't' slots like '[swi]' slots.
19160         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
19161         * jump.c (rtx_equal_for_thread_p): Likewise.
19162         * rtlanal.c (rtx_equal_p): Likewise.
19163         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
19164         only four arguments.
19165         * gengenrtl.c (type_from_format): Provide correct types for
19166         'b' and 't' slots.
19167
19168
19169         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
19170         If a recent gcc is in use (always in stage2 and beyond), use
19171         statement expressions, so we don't make a function call unless
19172         the check fails.  Evaluate arguments exactly once.
19173         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
19174         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
19175         Delete.
19176         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
19177         they evaluate their arguments exactly once, irrespective of
19178         the compiler in use.
19179
19180         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
19181         is used by the currently-enabled check macros.  This is:
19182         (tree_check_failed, tree_class_check_failed): For gcc.
19183         (tree_check, tree_class_check, cst_or_constructor_check,
19184         expr_check): For other compilers.
19185
19186         * gencheck.c: Do not define any *_CHECK1 macros.
19187
19188 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
19189                           Mark Mitchell <mark@codesourcery.com>
19190
19191         * c-common.c (c_get_alias_set): Fix support for poitners and
19192         references.
19193
19194 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
19195
19196         * alias.c: Include tree.h.
19197         (nonlocal_reference_p, mark_constant_function): New functions.
19198         * flow.c (life_analysis): Call mark_constant_function.
19199         * rtl.h (mark_constant_function): Declare it.
19200
19201 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
19202
19203         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
19204         unrecognisable switches.
19205
19206 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19207
19208         * loop.c (recombine_givs): Set ix field after sorting.
19209         (recombine_givs): Remove bogus index / giv lockstep looping.
19210
19211 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19212
19213         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
19214         on CODE.
19215         (emit_store_flag_force): Use do_compare_rtx_and_jump.
19216         (do_cmp_and_jump): Formatting fixes.
19217         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
19218         do_compare_rtx_and_jump instead of compare_from_rtx.
19219         (do_compare_rtx_and_jump): New function; mostly copied from
19220         compare_from_rtx.
19221         (do_jump_for_compare): Delete.
19222         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
19223         MIN_EXPR.
19224         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
19225         of compare/do_jump_for_compare pairs.
19226         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
19227         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
19228         compare_from_rtx/do_jump_for_compare pairs.
19229         (do_jump_by_parts_equality): Likewise.
19230         (do_jump_by_parts_equality_rtx): Likewise.
19231         * expr.h (do_compare_rtx_and_jump): Declare.
19232         * optabs.c (prepare_cmp_insn): New function, contains most of the code
19233         that used to be in emit_cmp_insn.
19234         (cmp_available_p): New function.
19235         (prepare_operand): New function.
19236         (emit_cmp_and_jump_insn_1): New function, contains some code that used
19237         to be in emit_cmp_insn.
19238         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
19239         parameters to be pointers; don't emit final compare but modify some of
19240         the values pointed to by the args so the caller can perform the
19241         correct comparison.
19242         (expand_binop): Call emit_store_flag_force with signed forms of
19243         comparison code.
19244         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
19245         emit_jump_insn pair.
19246         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
19247         emit_cmp_and_jump_insn_1.  Call emit_queue.
19248         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
19249         arg.
19250         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
19251         jump sets cc0 before deleting it.
19252         * integrate.c (expand_inline_function): Likewise.
19253         * unroll.c (unroll_loop): Similar changes in several places.
19254         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
19255         before deleting it.
19256
19257 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19258
19259         * Makefile.in (insn-recog.o): Update dependencies.
19260         * genrecog.c (main): Make generated file include "function.h".
19261
19262 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
19263
19264         * cse.c (cse_insn): Call never_reached_warning when a jump is
19265         changed to be unconditional.
19266         * flags.h: Declare warn_notreached.
19267         * flow.c (delete_block): Call never_reached_warning when
19268         a block is deleted.
19269         * jump.c (delete_barrier_successors): Call never_reached_warning
19270         when we delete everything after a BARRIER.
19271         (never_reached_warning): New function.
19272         * rtl.h: Declare never_reached_warning.
19273         * toplev.c (warn_notreached): New variable.
19274         (lang_independent_options): Set warn_notreached
19275         when -Wunreachable-code.
19276         (compile_file): We need line numbers for -Wunreachable-code.
19277
19278 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
19279
19280         * haifa-sched.c (insn_unit): Fix typo on out of range test.
19281         * sched.c (insn_unit): Likewise.
19282
19283 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
19284
19285         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
19286
19287 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
19288
19289         * flow.c (create_edge_list): Use xmalloc, not malloc.
19290
19291 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
19292
19293         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
19294         C-style comments.  Do not lose the character before double slash.
19295
19296 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
19297
19298         * basic-block.h (struct edge_list): Stucture to maintain a vector
19299         of edges.
19300         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
19301          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
19302         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
19303         New function prototypes.
19304         * flow.c (create_edge_list): Function to create an edge list.
19305         (free_edge_list): Discards memory used by an edge list.
19306         (print_edge_list): Debug output showing an edge list.
19307         (verify_edge_list): Internal consistency check for an edge list.
19308         (find_edge_index): Function to find an edge index for a pred and succ.
19309
19310 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
19311
19312         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
19313         hashtable.
19314
19315 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
19316
19317         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
19318
19319 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19320
19321         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
19322
19323 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
19324
19325         * toplev.c (rest_of_compilation): Allow machine dependent
19326         reorganisation pass to place information into the RTL dump
19327         file if it so wishes.
19328
19329 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
19330
19331         * explow.c (hard_function_value): Use VOIDmode instead of
19332         MAX_MACHINE_MODE.
19333         * stmt.c (expand_return): Likewise.
19334         * stor-layout.c (get_best_mode): Likewise.
19335
19336         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
19337         emit call instead of emit_insn call.
19338
19339 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19340
19341         * configure.in: Handle --disable/enable-win32-registry.
19342         * install.texi: Document --disable/enable-win32-registry.
19343         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
19344         (WIN32_REGISTRY_KEY): New macro.
19345         * prefix.c: Use to enable/disable win32-specific code.
19346         (lookup_key): Use versioned key.
19347         * configure: Regenerate.
19348         * config.in: Likewise.
19349
19350 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
19351
19352         * cpplib.c (read_line_number): New fn, split out of...
19353         (do_line): Here.
19354
19355 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19356
19357         tree.c (lang_unsave_expr_now) : New.
19358         (unsave_expr_now): Call lang_unsave_expr_now.
19359         tree.h (lang_unsave_expr_now) : New.
19360
19361 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
19362
19363         * toplev.c (flag_new_exceptions): On by default.
19364
19365 1999-08-13  Michael Meissner  <meissner@cygnus.com>
19366
19367         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
19368
19369 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
19370
19371         * dwarfout.c (fundamental_type_code): Return FT_boolean for
19372         INTEGER_TYPE with precision==1, it's __java_boolean.
19373
19374 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19375
19376         * global.c (prune_preferences): Move some invariants out of the
19377         inner loop.
19378
19379 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
19380
19381         * configure.in (alpha*-dec-osf*): Add osf5.
19382
19383 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
19384
19385         * configure.in: Rework handling of ARM GNU/Linux slightly.
19386         (arm*-*-linux-gnuoldld): New target.
19387         * configure: Regenerate.
19388         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
19389         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
19390         * config/arm/linux-oldld.h: New file.
19391         * config/arm/linux-elf26.h: Don't include linux-elf.h.
19392         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
19393         Don't define.
19394         * config/arm/linux-elf.h (ASM_SPEC): Define.
19395         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
19396         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
19397         for 26-bit APCS and old linker.
19398         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
19399         `arm_elf'.
19400         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
19401         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
19402         don't define `arm' or `arm_elf'.
19403         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
19404         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
19405
19406 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
19407
19408         * rtl.texi: Fix typo.
19409
19410 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
19411
19412         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
19413
19414 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
19415
19416         * extend.texi (C++ Signatures): Remove node.
19417         * invoke.texi: Remove discussion of -fhandle-signatures,
19418         signature, sigof, __signature__, and __sigof__.
19419
19420 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
19421
19422         * Makefile.in (JAVAGC): Removed.
19423
19424 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19425
19426         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
19427
19428 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
19429
19430         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
19431
19432 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
19433
19434         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
19435         a register that is already known to be a pointer.
19436
19437 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
19438
19439         * fixinc/inclhack.tpl: Only install assert.h conditionally.
19440         * fixinc/inclhack.sh: Regenerated.
19441         * fixinc/fixincl.sh: Regenerated.
19442
19443 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
19444
19445         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
19446         Fix documentation of -ansi flag to describe its C++ behavior.
19447         Remove bogus reference to GCC 2.9.
19448
19449 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
19450
19451         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
19452         note if it is non-NULL.
19453
19454 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
19455
19456         * except.h (eh_nesting_info): Add new structure defintion.
19457         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
19458         (reachable_handlers, update_rethrow_references): Add function
19459         prototypes.
19460         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
19461         a rethrow symbol instead of an integer exception region number.
19462         * flow.c (Make_edges): Use new exception nesting routines to determine
19463         which handlers are reachable from a CALL or asynchronous insn.
19464         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
19465         goto receivers.
19466         (delete_eh_regions): Update rethrow labels, and don't delete
19467         regions which are the target of a rethrow.
19468         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
19469         avoid overloading the SYMBOL_REF_USED flag.
19470         (rethrow_symbol_map): Use new rethrow_ref field.
19471         (rethrow_used): Use new rethrow_ref field.
19472         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
19473         of an integer.  Fix formatting.
19474         (output_exception_table_entry): Use new rethrow_ref field.
19475         (can_throw): Check for EH_REGION_NOTE before deciding
19476         whether a CALL can throw or not.
19477         (scan_region): Call rethrow_used() instead of accessing data structure.
19478         (update_rethrow_references): New function to make sure only regions
19479         which are still targets of a rethrow are flagged as such.
19480         (process_nestinfo): New static function to initialize a handler
19481         list for a specific region.
19482         (init_eh_nesting_info): New function to allocate and initialize
19483         the list of all EH handlers reachable from all regions.
19484         (reachable_handlers): New function to retrieve the list of handlers
19485         reachable from a specific region and insn.
19486         (free_eh_nesting_info): New function to dispose of a list of
19487         reachable handlers.
19488
19489 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
19490
19491         * flow.c (split_edge): Set JUMP_LABEL field.
19492         (commit_one_edge_insertion): Set head correctly for insert_before.
19493         When inserting insns, update insn block numbers if allocated.
19494
19495 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19496
19497         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
19498         retry_incomplete_types): Add static prototype.
19499         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
19500         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
19501         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
19502         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
19503         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
19504         Constify a char*.
19505
19506         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
19507         dwarf2out_start_source_file, dwarf2out_line): Likewise.
19508
19509 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19510
19511         * output.h (assemble_name): Constify a char*.
19512
19513         * varasm.c (UNIQUE_SECTION, assemble_start_function,
19514         assemble_variable, assemble_name): Likewise.
19515
19516         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
19517
19518         * arm/pe.c (arm_pe_unique_section): Likewise.
19519
19520         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
19521
19522         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
19523
19524         * i386/interix.c (i386_pe_unique_section): Likewise.
19525
19526         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
19527
19528         * i386/winnt.c (i386_pe_unique_section): Likewise.
19529
19530         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
19531
19532         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
19533
19534         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
19535
19536         * pa/pa.c (output_call): Likewise.
19537
19538         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
19539
19540         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
19541
19542         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
19543         Likewise.
19544
19545         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
19546         Likewise.
19547
19548         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
19549
19550         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
19551         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
19552
19553         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
19554
19555 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19556
19557         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
19558
19559 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19560
19561         * tree.h (lang_identify): Constify a char*.
19562         (print_error_function): Add extern prototype.  Constify a char*.
19563
19564         * c-lang.c (lang_identify): Constify a char*.
19565
19566         * objc/objc-act.c (lang_identify): Constify a char*.
19567
19568 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19569
19570         * genpeep.c (main): Make generated file include "function.h".
19571         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
19572
19573 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19574
19575         * Makefile.in: Update dependencies.
19576         * alias.c: Include "function.h"
19577         * c-decl.c: Likewise.
19578         * caller-save.c: Likewise.
19579         * calls.c: Likewise.
19580         * combine.c: Likewise.
19581         * cse.c: Likewise.
19582         * explow.c: Likewise.
19583         * final.c: Likewise.
19584         * global.c: Likewise.
19585         * graph.c: Likewise.
19586         * local-alloc.c: Likewise.
19587         * loop.c: Likewise.
19588         * optabs.c: Likewise.
19589         * profile.c: Likewise.
19590         * recog.c: Likewise.
19591         * regclass.c: Likewise.
19592         * regmove.c: Likewise.
19593         * reload.c: Likewise.
19594         * reorg.c: Likewise.
19595         * resource.c: Likewise.
19596         * sched.c: Likewise.
19597         * stupid.c: Likewise.
19598         * config/1750a/1750a.c: Likewise.
19599         * config/a29k/a29k.c: Likewise.
19600         * config/arc/arc.c: Likewise.
19601         * config/arm/arm.c: Likewise.
19602         * config/arm/thumb.c: Likewise.
19603         * config/c4x/c4x.c: Likewise.
19604         * config/clipper/clipper.c: Likewise.
19605         * config/convex/convex.c: Likewise.
19606         * config/fx80/fx80.c: Likewise.
19607         * config/i860/i860.c: Likewise.
19608         * config/m68k/m68k.c: Likewise.
19609         * config/m88k/m88k.c: Likewise.
19610         * config/mips/mips.c: Likewise.
19611         * config/pdp11/pdp11.c: Likewise.
19612         * config/pyr/pyr.c: Likewise.
19613         * config/romp/romp.c: Likewise.
19614         * config/sh/sh.c: Likewise.
19615         * config/tahoe/tahoe.c: Likewise.
19616         * config/vax/vax.c: Likewise.
19617         * config/we32k/we32k.c: Likewise.
19618         * config/sparc/sparc.c: Include "function.h".
19619         (mem_min_alignment): Test current_function rather than
19620         regno_pointer_align.
19621         * config/pa/pa.c: Likewise.
19622         (compute_frame_size): Delete declaration of
19623         current_function_outgoing_args_size.
19624         * config/arc/arc.h (current_function_varargs): Delete declaration.
19625         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
19626         declaration.
19627         * config/i370/i370.h (current_function_outgoing_args_size): Delete
19628         declaration.
19629         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
19630         current_function_uses_pic_offset_table.
19631         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
19632         of current_function_returns_pointer.
19633         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19634         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19635         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19636         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19637         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19638         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19639         * config/m88k/m88k.c: Include "function.h"
19640         (call_used_regs, current_function_pretend_args_size,
19641         current_function_outgoing_args_size, frame_pointer_needed): Delete
19642         declarations.
19643         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
19644         declaration.
19645         * config/mips/mips.h (current_function_calls_alloca): Delete
19646         declaration.
19647         * config/mn10200/mn10200.h (current_function_needs_context,
19648         rtx_equal_function_value_matters): Delete declarations.
19649         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
19650         flag_pic): Delete declarations.
19651         * config/pa/pa.h (current_function_pretend_args_size,
19652         current_function_decl): Delete declarations.
19653         * config/pa/som.h (current_function_varargs): Delete declaration.
19654         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
19655         declaration.
19656         * config/pyr/pyr.h (current_function_pretend_args_size,
19657         current_function_args_size, current_function_calls_alloca): Delete
19658         declarations.
19659         * config/sh/sh.h (current_function_varargs): Delete declaration.
19660         * config/sparc/sparc.h (current_function_outgoing_args_size,
19661         current_function_calls_alloca, current_function_decl): Delete
19662         declarations.
19663         * config/spur/spur.h (current_function_pretend_args_size,
19664         current_function_calls_alloca): Delete declarations.
19665         * config/v850/v850.c (current_function_outgoing_args_size): Delete
19666         declaration.
19667         * config/vax/vms.h (current_function_name): Delete declaration.
19668         * gcse.c: Include "function.h".
19669         (current_function_name, current_function_calls_setjmp): Delete
19670         declarations.
19671         * haifa-sched.c: Include "function.h".
19672         (forced_labels): Delete declaration.
19673         * jump.c: Likewise.
19674         * reg-stack.c: Likewise.
19675         * reload1.c: Likewise.
19676         * genemit.c (main): Make generated file include function.h.
19677         * genoutput.c (output_prologue): Likewise.
19678
19679         * builtins.c (saveregs_value, apply_args_value): Delete variables.
19680         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
19681         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
19682         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
19683         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
19684         macros for some of them.
19685         (emit_filename, emit_lineno): Delete declarations.
19686         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
19687         regno_pointer_* variables through current_function.
19688         (gen_inline_header_rtx): Delete function.
19689         (save_emit_status): Delete function.
19690         (set_new_last_label_num): New function.
19691         (clear_emit_caches): New function.
19692         (restore_emit_status): Just clear last_labelnum and call
19693         clear_emit_caches.
19694         (get_last_insn_anywhere): Variable sequence_stack is now accessed
19695         through macro seq_stack.
19696         (add_insn_after): Likewise.
19697         (add_insn_before): Likewise.
19698         (remove_insn): Likewise.
19699         (pop_topmost_sequence): Likewise.
19700         (in_sequence_p): Likewise.
19701         (start_sequence_for_rtl_expr): Likewise.
19702         (start_sequence): Likewise, and likewise for
19703         sequence_rtl_expr/seq_rtl_expr.
19704         (push_topmost_sequence): Likewise.
19705         (end_sequence): Likewise.
19706         (init_virtual_regs): Now takes a "struct emit_status *" argument.
19707         All callers changed.  Store into that pointer instead of globals.
19708         (init_emit): Allocate emit elt of current_function.
19709         Changes for sequence_rtl_expr/sequence_stack renaming.
19710         Call clear_emit_caches instead of doing it in-line.
19711         Access regno_pointer_* variables through current_function.
19712         (init_emit_once) Don't clear sequence_stack.
19713
19714         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
19715         Delete variables.
19716         (arg_pointer_save_area): Delete declaration.
19717         (finish_expr_for_function): Renamed from init_queue; no longer static.
19718         (init_expr): Don't call init_queue.
19719         (save_expr_status, restore_expr_status): Delete functions.
19720         (expand_expr): Changes to reflect new layout of struct function.
19721         Don't access current_function_check_memory_usage when current_function
19722         is 0.
19723         * expr.h (forced_labels, save_expr_regs, saveregs_value,
19724         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
19725         current_function_outgoing_args_size, current_function_arg_offset_rtx,
19726         current_function_uses_const_pool, function_call_count,
19727         current_function_uses_pic_offset_table, nonlocal_labels,
19728         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
19729         current_function_check_memory_usage, nonlocal_goto_handler_slots,
19730         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
19731         declarations.
19732         (finish_expr_for_function): Declare.
19733         * flags.h (current_function_has_nonlocal_label,
19734         current_function_has_nonlocal_goto, current_function_is_thunk,
19735         current_function_has_computed_jump): Delete declarations.
19736         * flow.c (forced_labels): Delete declaration.
19737         * function.c (current_function_pops_args,
19738         current_function_returns_struct, current_function_returns_pcc_struct,
19739         current_function_needs_context, current_function_calls_setjmp,
19740         current_function_calls_longjmp, current_function_has_nonlocal_label,
19741         current_function_has_nonlocal_goto, current_function_is_thunk,
19742         current_function_has_computed_jump, current_function_calls_alloca,
19743         current_function_contains_functions, current_function_returns_pointer,
19744         current_function_epilogue_delay_list, current_function_args_size,
19745         current_function_pretend_args_size, current_function_arg_offset_rtx,
19746         current_function_outgoing_args_size, current_function_varargs,
19747         current_function_stdarg, current_function_args_info, cleanup_label,
19748         current_function_name, current_function_uses_const_pool,
19749         current_function_instrument_entry_exit, current_function_return_rtx,
19750         current_function_uses_pic_offset_table, nonlocal_labels,
19751         current_function_internal_arg_pointer, current_function_cannot_inline,
19752         current_function_check_memory_usage, function_call_count,
19753         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
19754         nonlocal_goto_stack_level, return_label, save_expr_regs,
19755         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
19756         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
19757         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
19758         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
19759         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
19760         Delete variables.
19761         (push_function_context_to): Don't save them.  Don't call
19762         save_storage_status, save_emit_status or save_expr_status.
19763         (pop_function_context_from): Don't restore them.  Don't call
19764         restore_storage_status or restore_expr_status.
19765         (get_func_frame_size): New function.
19766         (get_frame_size): Use it.
19767         (assign_outer_stack_local): Reflect some member name changes in struct
19768         function.
19769         (put_reg_into_stack): Likewise.
19770         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
19771         seq_rtl_expr.
19772         (fixup_var_refs): Likewise.
19773         (fix_lexical_addr): Likewise.
19774         (trampoline_address): Likewise.
19775         (prepare_function_start): Clear field inlinable of current_function.
19776         (init_function_for_compilation): New function.
19777         (expand_dummy_function_end): New function.
19778         (expand_function_end): Call finish_expr_for_function.
19779         * function.h (struct emit_status): New; fields moved here from struct
19780         function and from global variables.  Add accessor macros for some of
19781         the fields.
19782         (struct expr_status): Likewise.
19783         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
19784         (struct function): Add fields expr and emit, inlinable, inl_emit,
19785         original_arg_vector, original_decl_initial, inl_last_parm_insn,
19786         inl_max_label_num.  Add many comments.
19787         Add accessor macros for all elts of struct function that no longer
19788         have a global variable.
19789         (cleanup_label, return_label, frame_offset, tail_recursion_label,
19790         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
19791         stack_slot_list): Delete declarations.
19792         (get_func_frame_size): Declare.
19793         (save_expr_status, restore_expr_status, save_emit_status,
19794         save_storage_status, restore_storage_status): Delete declarations.
19795         (init_virtual_regs): Declare.
19796         * output.h (current_function_pops_args,
19797         current_function_returns_struct, current_function_returns_pcc_struct,
19798         current_function_needs_context, current_function_calls_setjmp,
19799         current_function_calls_longjmp, current_function_calls_alloca,
19800         current_function_has_nonlocal_label, current_function_varargs,
19801         current_function_has_computed_jump, current_function_returns_pointer,
19802         current_function_contains_functions, current_function_args_size,
19803         current_function_pretend_args_size, current_function_stdarg,
19804         current_function_outgoing_args_size, current_function_args_info,
19805         current_function_name, current_function_return_rtx,
19806         current_function_epilogue_delay_list,
19807         current_function_uses_const_pool, current_function_cannot_inline):
19808         Delete declarations.
19809         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
19810         regno_reg_rtx): Delete declaration.
19811         (REGNO_POINTER_FLAG): Delete macro.
19812         * stmt.c (expand_goto): Changes to reflect that some fields in struct
19813         function were renamed.
19814         * stor-layout.c (save_storage_status, restore_storage_status): Delete
19815         functions.
19816         * toplev.c: Include "function.h".
19817         (current_function_decl): Delete declaration.
19818         (compile_file): Call init_dummy_function_start and
19819         expand_dummy_function_end around some initializations that need to
19820         emit rtl.
19821         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
19822         Call init_function_for_compilation.
19823         * unroll.c: Include "function.h"
19824         (unroll_loop): Access regno_pointer_* variables through
19825         current_function.
19826
19827         * tree.h (struct tree_decl): Add elt f to saved_insns member.
19828         (DECL_SAVED_INSNS): use it.
19829         (expand_dummy_function_end): Declare.
19830         (init_function_for_compilation): Declare.
19831         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
19832         that it's no longer an INLINE_HEADER.
19833         (expand_call): Likewise.
19834         * integrate.c (finish_inline): Delete function.
19835         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
19836         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
19837         args.  Don't generate an INLINE_HEADER rtx, just return the arg
19838         vector.  All callers changed.
19839         (save_for_inline_copying):  Create a duplicate struct emit_status to
19840         hold the emit state for compiling the current function.  Use this and
19841         the other new fields in struct function that are for integration
19842         instead of an INLINE_HEADER.
19843         Use memcpy instead of bcopy.
19844         Store the current struct function in DECL_SAVED_INSNS of fndecl.
19845         (save_for_inline_nocopy): Similar changes, except no new emit_status
19846         is needed here.
19847         (expand_inline_function): Get information from function structure,
19848         not from an inline header rtx.
19849         (output_inline_function): Lose code to extract the necessary
19850         information from an inline header; simply put back the function
19851         structure into current_function.  Clear its inlinable elt.
19852         * rtl.def (INLINE_HEADER): Delete.
19853         * rtl.h: Delete all accessors for an INLINE_HEADER.
19854         (gen_inline_header_rtx): Delete declaration.
19855         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
19856         Delete declarations.
19857         (REGNO_POINTER_ALIGN): Delete.
19858         (clear_emit_caches): Declare.
19859         (set_new_last_label_num): Declare.
19860
19861 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
19862
19863         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
19864
19865         * except.c (expand_eh_region_start_for_decl): Always start a new block.
19866         * stmt.c (is_eh_region): Make sure current_function is present, too.
19867
19868 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
19869
19870         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
19871         for 64bit PA targets.
19872
19873         * pa.h (SELECT_SECTION): Define.
19874         * som.h (SELECT_SECTION): Delete.
19875
19876 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19877
19878         * alias.c (init_alias_analysis): Wrap call to
19879         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
19880
19881 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
19882
19883         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
19884         <sys/asm.h> contains an asm comment with an apostrophe
19885         * fixinc/inclhack.sh:  regen
19886         * fixinc/fixincl.x:  regen
19887
19888 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
19889
19890         * function.c (init_function_start): Clear prologue & epilogue.
19891         (prologue_epilogue_contains): New function.
19892         * alias.c (init_alias_analysis): Use it.
19893         * rtl.h (prologue_epilogue_contains): Declare it.
19894
19895 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
19896
19897         * jump.c (onlyjump_p): New function.
19898         * rtl.h: Declare it.
19899         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
19900         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
19901
19902 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
19903
19904         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
19905         to invert loops.  Simplify block scanning.
19906
19907 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
19908
19909         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
19910         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
19911
19912 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
19913
19914         * config/sparc/liteelf.h: New file to support sparclite-elf target
19915         * config/sparc/t-sp86x: New file to support sparc86x targets
19916         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
19917         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
19918         * configure.in: Support above target triplets
19919         * configure: Regenerated
19920
19921 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
19922
19923         * fixinc/server.c (server_setup): Do not prefix function used as
19924         parameter with `&'.
19925
19926 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
19927
19928         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
19929         Remove fp reg alternatives.
19930
19931 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
19932
19933         * Makefiin (TAROUTOPTS): Kill.
19934         (install-headers-tar): Use "xpf" for tar headerfile extraction
19935         * i370/x-oe (TAROUTOPTS): Delete.
19936         * m68k/x-apollo68 (TAROUTOPTS): Delete.
19937         * m68k/x-hp320 (TAROUTOPTS): Delete.
19938         * m68k/x-hp320g (TAROUTOPTS): Delete.
19939         * gcc.texi: Update bug reporting text.
19940
19941 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
19942
19943         * reg-stack.c (change_stack) Fixed problem with negative array index.
19944
19945 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
19946
19947         * extend.texi, install.texi: Fix spelling mistakes.
19948
19949         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
19950         (s-attrtab); No longer try to use pre-made insn-attrtab file.
19951         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
19952         PREMADE_ATTRTAB_MD.
19953         * mips/t-ecoff: Likewise.
19954         * mips/t-elf: Likewise.
19955         * mips/t-mips: Likewise.
19956         * mips/t-osfrose: Likewise.
19957         * mips/t-r3900: Likewise.
19958         * mips/t-svr3: Likewise.
19959         * mips/t-svr4: Likewise.
19960         * mips/t-ultrix: Likewise.
19961
19962         * gcc.texi: Document recommend means to provide software floating
19963         point libraries in libgcc.a
19964
19965 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
19966
19967         * c-lex.c (yylex): We can have a number with no digits.
19968
19969 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
19970
19971         * jump.c (delete_prior_computation): New function, broken
19972         out of delete_computation.  Check for side effects with
19973         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
19974         multi-word hard registers.
19975         (delete_computation): Use it.  Check for side effects with
19976         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
19977         missing REG_DEAD note for a register which is both set and
19978         used by an insn.
19979
19980 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
19981
19982         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
19983         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
19984         (ASM_FILE_START): Import _mcount with the right type.
19985         (ASM_DECLARE_FUNCTION_NAME): Define.
19986         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
19987         * pa.c (output_function_prologue): Always emit the function's label
19988         here.
19989         * pa.h (TEXT_SPACE_P): Define.
19990         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
19991         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
19992         * som.h (TEXT_SPACE_P): Delete.
19993         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
19994         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
19995
19996 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
19997
19998         * expr.c (emit_group_load): Allow src to be a CONCAT.
19999
20000 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20001
20002         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
20003         (___mulsi3): Use '!' comment character.
20004
20005 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20006
20007         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
20008
20009 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
20010
20011         * gcc.c: Update URLs and mail addresses.
20012         * gcc.texi: Likewise.
20013
20014 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
20015
20016         * rs6000.c (current_file_function_operand): Return zero for
20017         weak functions.
20018         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
20019         weak symbols.
20020         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
20021         for weak symbols.
20022
20023 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
20024
20025         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
20026         allocate space in the stack frame for the PIC register.
20027
20028 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
20029
20030         * m68k.md (xordi3, anddi3): These patterns are not available on
20031         the coldfire.
20032
20033 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
20034
20035         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
20036         (PUT_REAL): Likewise.
20037
20038 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20039
20040         * final.c (shorten_branches): Don't add an alignment for loops
20041         that have no label inside.
20042
20043 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20044
20045         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
20046         prototypes in macro HAVE_cmpstrsi.
20047
20048         * cpplib.c (cpp_get_token): Remove unused label `op3'.
20049
20050         * emit-rtl.c (operand_subword): Remove unused variable
20051         `bits_per_word'.
20052
20053         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
20054
20055         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
20056
20057 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
20058
20059         * cpphash.c (macroexpand): Delete leading whitespace when arg
20060         is concatenated before.
20061         (unsafe_chars): Correct test for whether + and - can extend a
20062         token.
20063
20064         * cppinit.c (cpp_start_read): Do dependencies for
20065         -include/-imacros files also.
20066
20067         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
20068         tokenizing non-directive lines.
20069         (cpp_expand_to_buffer): Temporarily disable no-output mode.
20070         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
20071         the input file.
20072
20073 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
20074
20075         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
20076
20077         * c-lex.c: Sync with C++ frontend.
20078         (linemode): New variable.
20079         (parse_float): imag, conversion_errno, and type are output only.
20080         (yylex): Adjust.  Move initial '.' case into main switch.
20081         Use linemode.
20082         (handle_generic_pragma): Just deal with tokens.
20083         (readescape): Use ISXDIGIT and ISGRAPH.
20084         * c-parse.in: Add END_OF_LINE token.
20085
20086         * c-lex.c (lang_init): Generalize.
20087         (nextchar): Remove.  Replace uses with UNGETC.
20088         (skip_white_space): Handle linemode here.  Optimize for cpplib.
20089         (skip_white_space_on_line): Remove.
20090         (extend_token_buffer_to): New fn.
20091         (extend_token_buffer): Use it.
20092         (read_line_number, check_newline): Just deal with tokens.
20093         (token_getch, token_put_back): New fns.
20094         (yylex): Use them.  More cpplib optimizations.  Simplify.
20095
20096 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
20097                           Jason Merrill  <jason@yorick.cygnus.com>
20098
20099         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
20100         (consume_string): Make this smart about USE_CPPLIB.
20101         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
20102         (yylex): Rewrite to be intelligent about USE_CPPLIB.
20103         Also, clean up cases where we redundantly set token_buffer[0].
20104         (read_line_number): New fn.
20105         (ignore_escape_flag): New variable.
20106
20107 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
20108
20109         * a29k/t-a29kbare: Fix some comments.
20110         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
20111         (FPBIT, DPBIT): Define.
20112         * a29k/t-vx29k: Likewise.
20113         * arc/t-arc: Likewise.
20114         * arm/t-arm-elf: Likewise.
20115         * arm/t-bare: Likewise.
20116         * arm/t-pe: Likewise.
20117         * arm/t-pe-thumb: Likewise.
20118         * arm/t-semi: Likewise.
20119         * arm/t-thumb: Likewise.
20120         * arm/t-thumb-elf: Likewise.
20121         * arm/t-thumb-linux: Likewise.
20122         * h8300/t-h8300: Likewise.
20123         * i960/t-i960: Likewise.
20124         * i960/t-vxworks960: Likewise.
20125         * m32r/t-m32r: Likewise.
20126         * mips/t-ecoff: Likewise.
20127         * mips/t-elf: Likewise.
20128         * mips/t-r3900: Likewise.
20129         * pa/t-pro: Likewise.
20130         * rs6000/t-aix43: Likewise.
20131         * rs6000/t-beos: Likewise.
20132         * rs6000/t-newas: Likewise.
20133         * rs6000/t-ppccomm: Likewise.
20134         * rs6000/t-rs6000: Likewise.
20135         * rs6000/t-winnt: Likewise.
20136         * rs6000/t-xnewas: Likewise.
20137         * rs6000/t-xrs6000: Likewise.
20138         * sh/t-sh: Likewise.
20139         * sparc/t-elf: Likewise.
20140         * sparc/t-sparcbare: Likewise.
20141         * sparc/t-sparclite: Likewise.
20142         * sparc/t-splet: Likewise.
20143         * v850/t-v850: Likewise.
20144         * mn10200/t-mn10200: Fix comments.
20145         * mn10300/t-mn10300: Likewise.
20146
20147         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
20148         dummy operand.  Allocate a new pseudo for the dummy operand.
20149         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
20150
20151         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
20152
20153 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
20154
20155         * configure: Rebuilt.
20156         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
20157
20158 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
20159
20160         * recog.c (preproces_constraints): Zero recog_op_alt before
20161         processing the constraints.
20162
20163         * arm.c (typedef minipool_node): Renamed from pool_node.
20164         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
20165         (add_minipool_constant): New function.
20166         (dump_minipool): New function.
20167         (find_barrier): Remove special case for getting the insn size of
20168         an insn that references the constant pool.
20169         (minipool_fixup): New structure.
20170         (push_minipool_barrier): New function.
20171         (push_minipool_fix): New function.
20172         (note_invalid_constants): New function.
20173         (add_pool_constant, dump_table, fixit, broken_move): Delete.
20174         (arm_reorg): Rewrite code to fix up the constant pool into a
20175         series of mini-pools embedded in the insn stream.
20176         (arm_output_epilogue): New function, made mainly from the body
20177         of output_func_epilogue.
20178         (output_func_epilogue): Move insn generation part of epilogue code
20179         to arm_output_epilogue.
20180         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
20181         * arm.md (pool_range): New attribute.
20182         (zero_extendqidi2): Add attribute pool_range.
20183         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
20184         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
20185         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
20186         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
20187         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
20188         (epilogue): New expand.
20189         (epilogue_insn): New insn.  Call arm_output_epilogue.
20190
20191         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
20192         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
20193
20194 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
20195
20196         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
20197
20198 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
20199
20200         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
20201
20202 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
20203
20204         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
20205
20206 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
20207
20208         * global.c: Fix comment.
20209
20210 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
20211
20212         * gcc.c (access_check): New static function.
20213         (find_a_file): Use it when searching a directory list.
20214         * collect2.c (find_a_file): Don't accept directories found when
20215         searching a directory list.
20216
20217 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
20218
20219         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
20220         function parameters with `&'.
20221         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
20222
20223 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
20224
20225         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
20226         or tidy_fallthru_edge if the last insn in the block is not
20227         an unconditional jump or a simple conditional jump.
20228
20229 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20230
20231         * Makefile.in (c-decl.o): Depends on defaults.h.
20232
20233 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
20234
20235         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
20236         PA1.1 and above.
20237         (CLASS_MAX_NREGS): Likewise.
20238
20239 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
20240
20241         * cse.c (cse_insn): Fix dumb thinko in last change.
20242
20243 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20244
20245         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
20246         "const char *".
20247
20248 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
20249
20250         * dwarf2out.c (add_location_or_const_value_attribute): Correct
20251         test for sizes of passed and declared parameter types.
20252
20253 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20254
20255         * fixincludes: Fix the return type of bsearch, char* -> void*.
20256
20257         * fixinc/inclhack.def: Likewise.
20258
20259 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
20260
20261         * invoke.texi (-fdump-translation-unit): New option.
20262
20263 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
20264
20265         * expr.h (PROMOTE_PROTOTYPES): Move ...
20266         * defaults.h: ... to here.
20267         * c-decl.c: Include defaults.h instead of expr.h.
20268         * c-typeck.c: Include defaults.h.
20269
20270 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
20271
20272         * toplev.h (errorcount): Declare.
20273         (warningcount): Likewise.
20274         (sorrycount): Likewise.
20275         * c-lex.c (errorcount): Don't declare.
20276         * dwarf2out.c (errorcount): Don't declare.
20277
20278 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
20279
20280         * config/libgloss.h: Add a note discouraging use with ELF.
20281         * configure.in: Don't use libgloss.h for ELF targets.
20282         Always use_collect2 on a.out targets.
20283
20284 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
20285
20286         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
20287         (force_to_mode, case ASHIFTRT): Add shiftrt label.
20288
20289 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20290
20291         * loop.c (strength_reduce): When doing biv->giv conversion, update
20292         reg note of NEXT->insn.
20293
20294 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20295
20296         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
20297
20298 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20299
20300         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
20301         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
20302         Ensure expr.h is included.
20303         * c-typecheck.c (convert_arguments): Ditto.
20304
20305         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
20306
20307         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
20308         * config/convex/convex.h: Ditto.
20309         * config/dsp16xx/dsp16xx.h: Ditto.
20310         * config/fx80/fx80.h: Ditto.
20311         * config/gmicro/gmicro.h: Ditto.
20312         * config/i370/i370.h: Ditto.
20313         * config/i386/i386.h: Ditto.
20314         * config/m32r/m32r.h: Ditto.
20315         * config/m68k/m68k.h: Ditto.
20316         * config/m88k/m88k.h: Ditto.
20317         * config/mips/mips.h: Ditto.
20318         * config/pa/pa.h: Ditto.
20319         * config/pyr/pyr.h: Ditto.
20320         * config/tahoe/tahoe.h: Ditto.
20321         * config/we32k/we32k.h: Ditto.
20322
20323         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
20324         based on arch size.
20325
20326         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
20327
20328         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
20329         from comment.
20330
20331         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
20332
20333 1999-08-02  Richard Henderson  <rth@cygnus.com>
20334
20335         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
20336         for the register spill block.
20337         (m32r_va_arg): New.
20338         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
20339         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
20340
20341         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
20342         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
20343         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
20344
20345 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20346
20347         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
20348         MAX_WCHAR_TYPE defined in sparc.h.
20349         * config/sparc/linuxaout.h: Likewise.
20350         * config/sparc/linux64.h: Likewise.
20351         Also default to -mvis if CPU is UltraSPARC.
20352
20353 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20354
20355         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
20356         (RTX_OK_FOR_OLO10): Likewise.
20357         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
20358         %lo(), allow it in addresses...
20359         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
20360         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
20361         does not make sense.
20362         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
20363         (sparc_output_scratch_registers): New function.
20364         (output_function_prologue, sparc_flat_output_function_prologue): Use
20365         it.
20366         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
20367         defined.
20368         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
20369         * configure.in: Add check for .register pseudo-op support in as and
20370         check for offsetable %lo().
20371         * acconfig.h: Add templates for the above checks.
20372         * configure: Regenerate.
20373
20374 1999-08-02  Richard Henderson  <rth@cygnus.com>
20375
20376         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
20377         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
20378         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
20379
20380 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20381
20382         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
20383         reg_biv_class.
20384
20385 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20386
20387         * config/float-sparc.h: New file.
20388         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
20389         sparc-*-linux-gnu and sparc64-*-linux*.
20390
20391 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20392
20393         * rs6000.c (rs6000_va_list): Type is an array.
20394         (rs6000_va_start): Don't doubly adjust for varargs.
20395         (rs6000_va_arg): Evaluate long long GPR adjustment.
20396
20397 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
20398
20399         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
20400         -maix64 and -maix32.
20401         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
20402         LINK_SPEC): Change appropriately.
20403         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
20404         (u_short_cint_operand): Likewise.
20405         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
20406         for 64-bit hosts.
20407         * rs6000/t-aix43 (MULTILIB): Change to -m64.
20408
20409         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
20410
20411 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
20412
20413         * rs6000/rs6000.c (num_insns_constant_wide): Correct
20414         for type promotion.
20415         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
20416         (non_add_cint_operand): Likewise.
20417         (logical_operand): Likewise.
20418         (non_logical_cint_operand): Likewise.
20419         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
20420         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
20421         (rs6000_select_rtx_section): Suppress warning.
20422         (small_data_operand): Suppress warning.
20423         (rs6000_got_register): Suppress warning.
20424         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
20425         type, so `J' is generally the wrong constraint for a SImode value;
20426         use `L' instead.
20427         (andsi3_internal2): Likewise.
20428         (andsi3_internal3): Likewise.
20429         (iorsi3_internal1): Likewise.
20430         (xorsi3_internal1): Likewise.
20431         (movsi): Likewise.
20432         (movsf_softfloat): Likewise.
20433         (scc insns): Likewise.
20434         (movsi+2): Preserve sign bits of SImode constant.
20435         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
20436         (movdf+1): Sign-extend properly.
20437         (movdi_32+1): Sign-extend properly.
20438         (scc insns): Sign-extend properly.
20439
20440         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
20441         K, L, and T.
20442
20443 1999-08-02  Richard Henderson  <rth@cygnus.com>
20444
20445         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
20446         -mcpu parsing code.
20447         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
20448         * alpha.md (all fp insns): Likewise.
20449
20450 1999-08-02  Nick Clifton  <nickc@cygnus.com>
20451
20452         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
20453         already defined.
20454
20455 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
20456
20457         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
20458         pic_load_label generator directly.
20459         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
20460         No longer a named pattern.
20461
20462 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
20463
20464         * explow.c (force_reg): Call force_operand if X does not
20465         satisfy general_operand.
20466
20467 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
20468
20469         * fix-header.c (main): When testing for CONTINUED, use string
20470         equality, not pointer equality.
20471
20472 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
20473
20474         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
20475
20476 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
20477
20478         * cse.c (cse_insn): Fix loop which deletes insns after a jump
20479         that has become an unconditional jump.
20480
20481         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
20482         (output_function_epilogue): Similarly.
20483
20484 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20485
20486         * tree.h (init_dummy_function_start): Declare.
20487
20488 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20489
20490         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
20491         last_expr_type, last_expr_value, block_start_count, block_stack,
20492         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
20493         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
20494         dynamically in stmt elt of struct function for each function.
20495         (struct nesting): Rename function_call_count elt to n_function_calls,
20496         target_temp_slot_level to block_target_temp_slot_level.  All users
20497         changed.
20498         (struct stmt_status): New structure definition.
20499         Add many accessor macros for stmt_status elements which previously
20500         were global variables.
20501         (init_stmt_for_function): Allocate stmt elt for current_function.
20502         Reflect that block_start_count was renamed to
20503         current_block_start_count.
20504         (save_stmt_status, restore_stmt_status): Delete functions.
20505         (preserve_subexpressions_p): Don't access loop_stack when outside
20506         a function.
20507         (expand_start_bindings): Reflect that block_start_count was renamed to
20508         current_block_start_count.
20509         (expand_fixup): Likewise.
20510         (expand_decl): Don't access block_stack when outside a function.
20511         (expand_decl_cleanup): Likewise.
20512         (expand_dcc_cleanup): Likewise.
20513         (expand_dhc_cleanup): Likewise.
20514         (expand_anon_union_decl): Likewise.
20515         (set_file_and_line_for_stmt): New function.
20516         (in_control_zone_p): New function.
20517
20518         * function.h (struct function): Add new elt stmt.
20519         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
20520         case_stack, nesting_stack, nesting_depth, block_start_count,
20521         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
20522         emit_lineno, goto_fixup_chain.
20523         (save_eh_status, restore_eh_status, save_stmt_status,
20524         restore_stmt_status): Delete declarations.
20525         * function.c (push_function_context_to): Don't call save_stmt_status.
20526         (pop_function_context_to): Don't call restore_stmt_status.
20527         * tree.h (in_control_zone_p): Declare.
20528         * rtl.h (set_file_and_line_for_stmt): Declare.
20529
20530         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
20531         call set_file_and_line_for_stmt.
20532
20533 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
20534
20535         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
20536         Also update copyright.
20537
20538 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20539
20540         * c-pragma.c: Don't include "except.h".
20541         * emit-rtl.c: Likewise.
20542         * stor-layout.c: Likewise.
20543         * tree.c: Likewise.
20544         * varasm.c: Likewise.
20545
20546         * flow.c: Include "function.h".
20547         * tree.h (init_dummy_function_start): Declare new function.
20548
20549         * except.h (struct eh_status): New structure.
20550         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
20551         been included.
20552         (eh_return_stub_label, ehstack, catchstack, ehqueue,
20553         catch_clauses, false_label_stack, caught_return_label_stack,
20554         protect_list, current_function_ehc): Add accessor macros for the
20555         corresponding fields in current_function->eh; delete declarations
20556         for all items that used to be declared here.
20557         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
20558         catch_clauses, false_label_stack, caught_return_label_stack,
20559         protect_list, current_function_ehc): Delete variables.
20560         (init_eh_for_function): Allocate current_function->eh.
20561         (save_eh_status, restore_eh_status): Delete functions.
20562
20563         * function.h (struct function): Add fields next_global and eh.
20564         Delete all exception handling related fields.
20565         * function.c (current_function): New variable.
20566         (all_functions): New variable.
20567         (push_function_context_to): Don't allocate a struct function,
20568         use current_function instead.  Call init_dummy_function_start when
20569         outside a function.  Clear current_function before returning.
20570         (pop_function_context_from): Restore current_function.
20571         Don't free the restored struct function.
20572         (prepare_function_start): New function.
20573         (init_dummy_function_start): New function.
20574         (init_function_start): Break out some code into prepare_function_start
20575         and call it here.
20576
20577         * stmt.c (save_stmt_status): Don't call save_eh_status.
20578         (restore_stmt_status): Don't call restore_eh_status.
20579
20580         * Makefile.in: Update dependencies.
20581
20582 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
20583
20584         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
20585         of depending on a magic constant value.  Update comments.
20586         (hppa_expand_prologue): Similarly.
20587
20588         * pa.md (reload_indi, reload_outdi): Allow any register for the
20589         original reload register.
20590
20591 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
20592
20593         * cccp.c (print_help): Change marcos to macros.
20594
20595 1999-07-30  Richard Henderson  <rth@cygnus.com>
20596
20597         * c-typeck.c (initializer_constant_valid_p): Move ...
20598         * c-common.c (initializer_constant_valid_p): ... here.  Use
20599         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
20600         of label addresses.
20601         * c-common.h (initializer_constant_valid_p): Declare.
20602         * c-tree.h (initializer_constant_valid_p): Remove.
20603
20604 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
20605
20606         * config/i386/sol2-c1.asm: Align the stack.
20607         * config/i386/sol2-gc1.asm: Likewise.
20608
20609 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
20610
20611         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
20612         -Asparclite for sparc86x.
20613         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
20614         sparc86x.
20615         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
20616
20617 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
20618
20619         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
20620         the user if using the non-default arch size in BI_ARCH configuration.
20621         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
20622
20623         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
20624         Fix patterns so that they actually match.
20625         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
20626         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
20627         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
20628         TARGET_HARD_MUL32.
20629         (mulsidi3): Reflect this in the expand.
20630         (smulsi3_highpart): Only on TARGET_ARCH32.
20631         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
20632         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
20633         (umulsidi3): Reflect this in the expand.
20634         (umulsi3_highpart): Only on TARGET_ARCH32.
20635         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
20636         don't require g0 to be zero.
20637         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
20638         ({,u}divsi3): New expands.
20639         ({,u}divsi3_sp64): New patterns.
20640         (after lshrdi3_v8plus): Four new patterns to help combiner
20641         optimizing nested mixed mode shifts.
20642
20643         * config/sparc/sparc.c (sparc_override_options): Use deprecated
20644         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
20645         speed things up. Don't use them by default on plain v9 in 64bit
20646         mode, according to what SPAMv9 sais.
20647
20648         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
20649         top 32 bits of %[og][0-7] in signal handlers.
20650         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
20651
20652 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
20653
20654         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
20655         (ashlsi3): Corresponding changes.
20656
20657         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
20658
20659 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
20660
20661         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
20662
20663 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20664
20665         * arm.h (Hint): Delete macro.
20666         Substitute HOST_WIDE_INT for Hint in some prototypes.
20667         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
20668
20669 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
20670
20671         * builtins.c (expand_builtin_setjmp): Use force_operand to
20672         make sure that the buffer address is in a suitable form to be
20673         passed to force_reg.
20674
20675 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
20676
20677         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
20678         them here.
20679
20680 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
20681
20682         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
20683         proper mode in the condition string.
20684         (icacheflush, dcacheflush): Remove modes from match_operands.
20685
20686         * pa.c (emit_move_sequence): Always convert scratch_reg to the
20687         proper mode before using it.
20688
20689         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
20690         pair.
20691
20692         * pa.c (store_reg): Do not call add_high_const generator directly.
20693         (load_reg, set_reg_plus_d): Likewise.
20694         * pa.md (add_high_const): No longer a named pattern.
20695
20696         * pa.c (legitimize_address): Consistently use Pmode rather than
20697         SImode.  Do not call gen_pic2_highpart directly anymore.
20698         * pa.md (pic2_highpart): No longer a named pattern.
20699         (pic2_lo_sum): Similarly.  Reformat to make more readable.
20700
20701         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
20702         needed.
20703
20704         * README: Update.
20705
20706 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20707
20708         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
20709
20710 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
20711
20712         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
20713         and tag the spill mems.
20714         (hppa_va_start): New.
20715         (hppa_va_arg): New.
20716         * pa.h (EXPAND_BUILTIN_VA_START): New.
20717         (EXPAND_BUILTIN_VA_ARG): New.
20718
20719 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
20720
20721         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
20722         and tag the spill mems.
20723         (mn10300_va_start): New.
20724         (mn10300_va_arg): New.
20725         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
20726         (EXPAND_BUILTIN_VA_ARG): New.
20727
20728 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
20729
20730         * mn10200.c (mn10200_va_arg): New.
20731         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
20732
20733 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
20734
20735         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
20736         rather than play with TREE_INT_CST_LOW.
20737
20738 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
20739
20740         * config/arm/telf.h: Include dbxelf.h.
20741         (CPP_PREDEFINES): Only define if not already defined.
20742         (ASM_IDENTIFY_GCC): Likewise.
20743         (SUBTARGET_EXTRA_SECTIONS): Likewise.
20744         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
20745         * config/arm/thumb.h (LINK_SPEC): Only define if not already
20746         defined.
20747         (DBX_DEBUGGING_INFO): Don't define.
20748         * config/arm/linux-telf.h: New file.
20749         * config/arm/linux-tgas.h: New file.
20750         * config/arm/t-thumb-linux: New file.
20751         * config/arm/uclinux-elf.h: New file.
20752         * config/arm/uclinux-telf.h: New file.
20753         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
20754         thumb-*-uclinux): New targets.
20755         * configure: Regenerate.
20756
20757 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
20758
20759         * pa.md (post_store, pre_load): New expanders.
20760         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
20761         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
20762         need to directly generate RTL for them.
20763         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
20764         changes.
20765
20766 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
20767
20768         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
20769         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
20770         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
20771         (secndary_reload_class): Make TARGET_ELF conditional compile.
20772         (print_operand_address): Similar.
20773         (output_toc): Print all values as hex.
20774         (get_issue_rate): Rearrange and add RS64A and PPC630.
20775         * rs6000.h (processor_type): Add RS64A and PPC630.
20776         (PROCESSOR_POWERPC64): New.
20777         (PROMOTE_MODE): Use word_mode.
20778         (RTX_COSTS): Add RS64A and PPC630.
20779         * rs6000.md (scheduling information): Add lmul and ldiv
20780         representing 64-bit integer multiply and divide.  Add rs64a and
20781         PPC630 information.
20782         (ashldi3): Add support for "rldic" instruction.
20783         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
20784
20785 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
20786
20787         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
20788         instead of V8 for sparclite86x in cpu_table.
20789
20790 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20791
20792         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
20793         output_file_directive.
20794
20795 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
20796
20797         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
20798         tree for op1, not the rtl.
20799
20800 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
20801
20802         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
20803         to m88k_va_start, leaving only the register spill.
20804         (m88k_build_va_list): New.
20805         (m88k_va_start): New.
20806         (m88k_va_arg): New.
20807         * m88k.h (BUILD_VA_LIST_TYPE): New.
20808         (EXPAND_BUILTIN_VA_START): New.
20809         (EXPAND_BUILTIN_VA_ARG): New.
20810
20811 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
20812
20813         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
20814         Rename from expand_builtin_saveregs.
20815         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
20816
20817 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
20818
20819         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
20820         for the register spill block.
20821         (i960_build_va_list): New.
20822         (i960_va_start): New.
20823         (i960_va_arg): New.
20824         * i960.h (BUILD_VA_LIST_TYPE): New.
20825         (EXPAND_BUILTIN_VA_START): New.
20826         (EXPAND_BUILTIN_VA_ARG): New.
20827         * i960.md (store_multiple): Use change_address on individul mems.
20828
20829 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
20830
20831         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
20832         an ARRAY_TYPE.
20833         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
20834         (expand_builtin_va_end): Evaluate arg for side effects.
20835         * c-common.c (c_common_nodes_and_builtins): Construct a
20836         va_list_arg_type_node to handle array decomposition to pointer.
20837
20838 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
20839
20840         * except.c (st_dynamic_cleanup): Use force_operand on the
20841         buffer's address.
20842
20843 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
20844
20845         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
20846         * c4x.c (c4x_va_arg): New.
20847
20848 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
20849
20850         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
20851         has manual_pop set.
20852
20853 1999-07-26  Nathan Sidwell  <nathan@acm.org>
20854
20855         * eh-common.h (__eh_matcher): Prototype correctly.
20856
20857 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
20858
20859         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
20860         (TARGET_SINGLE_PIC_BASE): Likewise.
20861         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
20862         definitions.
20863         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
20864         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
20865         (TARGET_OPTIONS): Add -mpic-register=N.
20866         (OUTPUT_INT_ADDR_CONST): New macro.
20867         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
20868         LEGITIMATE_PIC_OPERAND_P): Likewise.
20869         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
20870         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
20871         output_addr_const directly.
20872         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
20873         ARM port.
20874         (thumb_pic_register, thumb_pic_register_string): Declare.
20875
20876         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
20877         from arm.c.
20878         (label_mentioned_p): New function: Imported from arm.c.
20879         (legitimize_pic_address): New function: Imported from arm.c.
20880         (is_pic):New function: Imported from arm.c.
20881         (thumb_finalize_pic):New function: Imported from arm.c.
20882         (add_constant): Cope with PIC constants.
20883         (fixit): Cope with PIC constants.
20884         (output_return): Do not treat the PIC register as live if
20885         TARGET_SINGLE_PIC_BASE is true.
20886         (thumb_function_prologue): Do not treat the PIC register as live if
20887         TARGET_SINGLE_PIC_BASE is true.
20888         (thumb_expand_prologue): Do not treat the PIC register as live if
20889         TARGET_SINGLE_PIC_BASE is true.
20890         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
20891         TARGET_SINGLE_PIC_BASE is true.
20892         (thumb_print_operand): Accept '|'.
20893         (thumb_override_options): Process PIC options.
20894
20895         * config/arm/thumb.md (movsi): Support PIC.
20896         (call_insn): Change "i" constraint to "X".
20897         (call_value_insn): Likewise.
20898         (consttable_4, consttable_8, consttable_end): Set and clear
20899         "making_const_table" as appropriate.
20900         (pic_load_addr, pic_add_dot_plus_four): New insns.
20901
20902         * invoke.texi (Thumb Options): Fix spelling.  Document new
20903         options -msingle-pic-base and -mpic-register=.
20904
20905 1999-07-26  Andrew Haley  <aph@cygnus.com>
20906
20907         * config/m32r/initfini.c (__init): Use a full word immediate for
20908         __fini: this allows it to be placed in any memory region.
20909
20910         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
20911         -mmodel=medium.  This is OK for all memory models.
20912
20913 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
20914
20915         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
20916         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
20917
20918 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
20919
20920         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
20921         defined.
20922
20923         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
20924
20925 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
20926
20927         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
20928         (BUILD_VA_LIST_TYPE): New.
20929         (EXPAND_BUILTIN_VA_START): New.
20930         (EXPAND_BUILTIN_VA_ARG): New.
20931         * i860.c (output_delayed_branch): Disable.
20932         (output_delay_insn): Likewise.
20933         (i860_saveregs): New.
20934         (i860_build_va_list): New.
20935         (i860_va_start): New.
20936         (i860_va_arg): New.
20937         * i860.md: Disable all peepholes using output_delayed_branch.
20938         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
20939
20940 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
20941
20942         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
20943         (BUILD_VA_LIST_TYPE): New.
20944         (EXPAND_BUILTIN_VA_START): New.
20945         (EXPAND_BUILTIN_VA_ARG): New.
20946         * clipper.c (clipper_builtin_saveregs): Only dump registers.
20947         Return the address of the save area.
20948         (clipper_build_va_list): New.
20949         (clipper_va_start): New.
20950         (clipper_va_arg): New.
20951
20952 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
20953
20954         * arc.h (EXPAND_BUILTIN_VA_START): New.
20955         (EXPAND_BUILTIN_VA_ARG): New.
20956         * arc.c (arc_setup_incoming_varargs): Set alias set of
20957         varargs save area.
20958         (arc_va_start): New.
20959         (arc_va_arg): New.
20960
20961 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
20962
20963         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
20964         (BUILD_VA_LIST_TYPE): New.
20965         (EXPAND_BUILTIN_VA_START): New.
20966         (EXPAND_BUILTIN_VA_ARG): New.
20967         * alpha.c (alpha_builtin_saveregs): Delete.
20968         (alpha_build_va_list): New.
20969         (alpha_va_start): New.
20970         (alpha_va_arg): New.
20971
20972 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
20973
20974         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
20975         column zero.
20976         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
20977         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
20978
20979         * gcc.texi: More changes related to list conversion.
20980         * invoke.texi: Likewise.
20981
20982 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
20983
20984         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
20985         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
20986         (expand_builtin_next_arg): Accept ARGLIST not EXP.
20987         (stabilize_va_list): New function.
20988         (std_expand_builtin_va_start): New function.
20989         (expand_builtin_va_start): New function.
20990         (get_varargs_alias_set): New function.
20991         (std_expand_builtin_va_arg): New function.
20992         (expand_builtin_va_arg): New function.
20993         (expand_builtin_va_end): New function.
20994         (expand_builtin_va_copy): New function.
20995         (expand_builtin): Call them.
20996         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
20997         __builtin_{varargs_start,stdarg_start,end,copy}.
20998         (build_va_arg): New function.
20999         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
21000         (build_va_arg): Declare.
21001         * c-decl.c (ptr_type_node, va_list_type_node): New.
21002         * c-parse.gperf (__builtin_va_arg): New.
21003         * c-parse.in (VA_ARG): New token.
21004         (unary_expr): Recognize it.
21005         * expr.c (expand_expr): Expand VA_ARG_EXPR.
21006         * expr.h (std_expand_builtin_va_start): Declare.
21007         (std_expand_builtin_va_arg): Declare.
21008         (expand_builtin_va_arg): Declare.
21009         (get_varargs_alias_set): Declare.
21010         * tree.def (VA_ARG_EXPR): New.
21011         * tree.h (BUILT_IN_VARARGS_START): New.
21012         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
21013         (ptr_type_node, va_list_type_node): Declare.
21014         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
21015         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
21016         * m88k.h, m88k.c: Likewise.
21017         * mn10300.h, mn10300.c: Likewise.
21018         * pa.h, pa.c: Likewise.
21019         * rs6000.h, rs6000.c: Likewise.
21020         * sh.h, sh.c: Likewise.
21021         * sparc.h, sparc.c: Likewise.
21022
21023         * emit-rtl.c (operand_subword): Copy alias set.
21024         (change_address): Likewise.
21025
21026 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
21027
21028         * pa.c (compute_frame_size): Scan all the used callee saved registers,
21029         not just the first one.
21030
21031 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
21032
21033         * config/arm/arm.h (TARGET_SWITCHES): Add
21034         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
21035         (TARGET_OPTIONS): Add -mpic-register=.
21036         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
21037         (arm_pic_register_string): Declare.
21038         (NEED_PLT_GOT): Delete, replace with ...
21039         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
21040         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
21041         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
21042         * config/arm/arm.c (arm_override_options): Add new option
21043         -mpic-register=N.
21044         (arm_pic_register_string): New variable.
21045         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
21046         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
21047         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
21048         (output_return_instruction): Likewise.
21049         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
21050         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
21051         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
21052
21053         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
21054         mention of -msched-prolog.  Document new options -msingle-pic-base
21055         and -mpic-register=.
21056
21057 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
21058
21059         * haifa-sched.c (reemit_notes): Tidy.
21060         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
21061         haifa's routine.
21062
21063 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
21064
21065         * explow.c (trunc_int_for_mode): New function.
21066         (plus_constant_wide): Use it.
21067         * combine.c (simplify_and_const_int): Likewise.
21068         (merge_outer_ops): Likewise.
21069         (simplify_shift_const): Likewise.
21070         * cse.c (simplify_unary_operation): Likewise.
21071         (simplify_binary_operation): Likewise.
21072         * emit-rtl.c (operand_subword): Likewise.
21073         * rtl.h: Declare it.
21074
21075 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21076
21077         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
21078         (use NUM_REGS instead of NUM_INTS).
21079
21080 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21081
21082         * builtins.c: New file.
21083         * expr.c (saveregs_value, apply_args_value):  Delete definition,
21084         moved into builtins.c.
21085         (string_constant): No longer static.
21086         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
21087         apply_args_size, apply_result_size, result_vector,
21088         expand_builtin_apply_args, expand_builtin_apply,
21089         expand_builtin_return): Delete functions, moved into builtins.c.
21090         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
21091         * expr.h (saveregs_value, apply_args_value): Declare variables.
21092         (expand_builtin, string_constant): Declare functions.
21093         * Makefile.in: Update to build builtin.o.
21094
21095 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
21096
21097         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
21098         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
21099         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
21100         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
21101         false.
21102         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
21103         Define to zero.
21104
21105 1999-07-21  Michael Meissner  <meissner@cygnus.com>
21106
21107         * print-rtl.c (print_rtx): Print the names of the virtual
21108         registers.
21109
21110 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
21111
21112         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
21113         introduced in previous delta.
21114
21115 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21116
21117         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
21118         to avoid name clash.
21119
21120 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21121
21122         * c-lex.c (yylex) : Correct the test for overflow when lexing
21123         integer literals.
21124
21125 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
21126
21127         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
21128         (adjust_priority): Always call ADJUST_PRIORITY.
21129         (schedule_insn): Only put insns into the ready at cost 0.
21130         (schedule_block): Remove redundant initial sort.  Give clock_var
21131         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
21132         is not 0.
21133         * tm.texi (MD_SCHED_REORDER): Update docs.
21134
21135         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
21136         * sparc.c (ultra_reorder_called_this_block): Delete.
21137         (ultrasparc_sched_init): Don't set it.
21138         (ultrasparc_sched_reorder): Don't check it.
21139
21140 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
21141
21142         * rs6000.h (struct rs6000_args): Add sysv_gregno.
21143         * rs6000.c (init_cumulative_args): Init sysv_gregno.
21144         (function_arg_boundary): Align DFmode.
21145         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
21146         to get fp reg and stack overflow correct.
21147         (function_arg): Likewise.
21148         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
21149         (setup_incoming_varargs): Restructure for ABI_V4; use
21150         function_arg_advance to skip final named argument.
21151         (expand_builtin_saveregs): Properly unskip the last integer arg
21152         when doing varargs.  Adjust overflow location calculation.
21153
21154         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
21155         explicitly unsigned.
21156         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
21157         (__VA_GP_REGSAVE): Similarly.
21158         (__va_longlong_p): Delete.
21159         (__va_arg_type_violation): New declaration.
21160         (va_arg): Restructure.  Flag promotion errors.  Align double.
21161         TFmode passed by reference.
21162
21163         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
21164         in the HOST_BITS_PER_WIDE_INT > 32 case.
21165
21166 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
21167
21168         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
21169
21170 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
21171
21172         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
21173         * toplev.c (documented_lang_options): Add -fpreprocessed.
21174         * cpplib.h (struct cpp_buffer): Add preprocessed.
21175         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
21176         (cpp_start_read): Don't expand macros or emit an initial #line
21177         directive if -fpreprocessed.
21178
21179 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
21180
21181         * cpplib.h (struct cpp_buffer): Added manual_pop for
21182         better C++ tokenization.
21183         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
21184         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
21185         * c-common.c (cpp_token): Make non-static.
21186
21187 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21188
21189         * c-common.h: New file.
21190         * c-common.c (permanent_obstack): Delete unused declaration.
21191         (c_global_trees): New array.
21192         (c_common_nodes_and_builtins): New function; split off common code
21193         from init_decl_processing in both c-decl.c and cp/decl.c.
21194         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
21195         c_global_trees and accessor macros defined in c-common.h.
21196         Include c-common.h.
21197         * c-decl.c: Delete definitions for tree nodes that were replaced by
21198         c_global_trees.
21199         (init_decl_processing): Build void_list_node.
21200         Call c_common_nodes_and_builtins; delete code to generate the common
21201         builtins here.
21202         * objc/objc-act.c (build_module_descriptor): Rename variable
21203         void_list_node to avoid clash with c-common.h.
21204
21205         * Makefile.in: Update dependencies.
21206         * objc/Make-lang.in: Likewise.
21207
21208 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
21209
21210         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
21211         (UNIQUE_SECTION_P): Likewise.
21212         (UNIQUE_SECTION): Likewise.
21213
21214 1999-07-19  Linas Vepstas  <linas@linas.org>
21215
21216         * config/i370/README: New file.
21217         * config/i370/linux.h: New file.
21218         * config/i370/mvs.h: New file.
21219         * config/i370/oe.h: New file.
21220         * config/i370/t-linux: New file.
21221         * config/i370/t-mvs: New file.
21222         * config/i370/t-oe: New file.
21223         * config/i370/x-oe: New file.
21224         * config/i370/xm-linux.h: New file.
21225         * config/i370/xm-mvs.h: New file.
21226         * config/i370/xm-oe.h: New file.
21227
21228         * i370.c (label_node_t): Add first_ref_page, label_addr,
21229         label_first_ref, label_last_ref members.
21230         (mvs_need_base_reload): Renamed from mvs_label_emitted.
21231         (MAX_MVS_LABEL_SIZE): Define.
21232         (MAX_LONG_LABEL_SIZE): Define.
21233         (alias_node_t, alias_anchor, alias_number): New.
21234         (mvs_function_table): Reorder for EBCDIC.
21235         (ascebc, ebcasc): Unconditionally define.
21236         (i370_branch_dest, i370_branch_length): New functions.
21237         (i370_short_branch, i370_label_scan): New functions.
21238         (mvs_get_label): Renamed from mvs_add_label.  Search for
21239         an existing label before creating a new one.
21240         (mvs_add_label): New function.
21241         (mvs_get_label_page): New function.
21242         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
21243         over the entire list.
21244         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
21245         (mvs_check_page) [TARGET_ELF_ABI]: New function.
21246         (mvs_add_alias, mvs_need_alias): New functions.
21247         (mvs_get_alias, mvs_check_alias): New functions.
21248         (handle_pragma): New function.
21249         (mvs_function_check): New function.
21250         (unsigned_jump_follows_p): Search harder.
21251         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
21252         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
21253         * i370.h (TARGET_VERSION): Delete.
21254         (CPP_SPEC, CPP_PREDEFINES): Delete.
21255         (mvs_label_emitted): Delete.
21256         (TARGET_EBCDIC): Delete.
21257         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
21258         (HANDLE_PRAGMA): Define.
21259         (HARD_REGNO_NREGS): Handle complex modes.
21260         (HARD_REGNO_MODE_OK): Likewise.
21261         (CLASS_MAX_NREGS): Likewise.
21262         (RET_REG): Likewise.
21263         (EXTRA_CONSTRAINT): Define.
21264         (RETURN_IN_MEMORY): True for DImode.
21265         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
21266         (FUNCTION_PROFILER): Delete.
21267         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
21268         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
21269         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
21270         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
21271         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
21272         (ASM_FILE_START): Add "RMODE ANY".
21273         (ASM_OUTPUT_EXTERNAL): Check for aliases.
21274         (ASM_GLOBALIZE_LABEL): Likewise.
21275         (ASM_OUTPUT_LABELREF): Likewise.
21276         (ASM_OUTPUT_COMMON): Likewise.
21277         (PRINT_OPERAND): Handle 'K', 'W', default.
21278         (PRINT_OPERAND_ADDRESS): New.
21279         (Lots of defines): Add support for TARGET_ELF_ABI.
21280         * i370.md (attr length): New.  Define for all patterns.
21281         (*): Lots of tweeks to assembly output and constraints.
21282
21283 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
21284
21285         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
21286         Disable patterns performing SImode comparisons with SImode values
21287         if TARGET_POWERPC64 and instruction does not sign-extend or does
21288         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
21289         differ for signed quantities.
21290         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
21291         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
21292         (decrement_and_branch_on_count): Add 64-bit variant.
21293
21294 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21295
21296         * final.c (output_asm_insn): When searching for the matching string
21297         for a given dialect, don't run past the end of the list of
21298         alternatives if there are fewer alternatives in the template than
21299         dialects.
21300
21301 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
21302
21303         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
21304         Removed paragraph about compression of files and size limitation,
21305         duplicated in the FAQ.  Use gcc-patches for posting patches.
21306         * gcc.c (main): Updated URL with bug reporting instructions to
21307         gcc.gnu.org.  Removed e-mail address.
21308         * system.h (abort): Likewise.
21309
21310 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21311
21312         * Makefile.in (stmp-multilib-sub): Make the files extracted
21313         from $(LIBGCC1) writable.
21314
21315 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
21316
21317         * config/arm/aout.h: Reformat for improved readability.
21318
21319         * config/arm/arm.h: Reformat for improved readability.
21320         Replace uses of fprintf with asm_fprintf where appropriate.
21321         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
21322         function declaration assembler actions.
21323         (NUM_INTS): New macro: Convert from bytes to words.
21324         (NUM_REGS): New macro: Compute number of registers required to
21325         hold a quanitity of tyep MODE.
21326         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
21327         types.
21328         (NUM_ARG_REGS): New macro: The number of argument registers
21329         available.
21330         (ARG_REGISTER): New macro: Compute the register number of the Nth
21331         argument register.
21332         (LAST_ARG_REGNUM): New macro: The number of the last argument
21333         register.
21334         (SP_REGNUM): New macro: Register number of the stack pointer.
21335         (FP_REGNUM): New macro: Register number of the frame pointer.
21336         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
21337         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
21338         CUMULATIVE_ARGS so that it counts registers not bytes.
21339
21340         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
21341         TARGET_INTERWORK.
21342         Replace uses of fprintf with asm_fprintf where appropriate.
21343         (output_ascii_pseudo_op): Replace with version from thumb.c
21344
21345         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
21346
21347         * config/arm/elf.h (CPP_PREDEFINES): Replace with
21348         SUBTARGET_CPP_SPEC.
21349         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
21350         (ASM_FILE_START): Emit ASM_APP_OFF.
21351
21352 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
21353
21354         * pa.c (compute_frame_size): Round frame according to
21355         STACK_BOUNDARY rather than a hardwired value.
21356
21357         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
21358
21359         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
21360         of "1".
21361         * configure: Rebuilt.
21362
21363         * configure.in (hppa*-*-linux*): New configuration.
21364         * configure: Rebuilt.
21365         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
21366         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
21367         * pa/pa-linux.h: New file.
21368         * pa/t-linux: New file.
21369         * pa/xm-linux.h: New file.
21370
21371         * pa.c (hppa_legitimize_address): Change references from SImode to
21372         either Pmode or word_mode as appropriate.
21373         (emit_move_sequence, store_reg, load_reg): Likewise.
21374         (set_reg_plus_d, hppa_expand_prologue): Likewise.
21375         (output_mul_insn): Likewise.
21376         * pa.h (PROMOTE_MODE): Likewise.
21377         (INITIALZE_TRAMPOLINE): Likewise.
21378         (Pmode): Define to word_mode.
21379
21380         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
21381         value of 4.  Allocate 8 bytes for each FP register save.
21382         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
21383         value of 4.
21384         (hppa_expand_prologue): Likewise.
21385         * pa.h (PROMOTE_MODE): Likewise.
21386         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
21387         (FUNCTION_ARG_BOUNDARY): Likewise.
21388
21389         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
21390
21391         * pa.c (out_of_line_prologue_epilogue): Delete.
21392         (override_options): Remove -mspace related code.
21393         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
21394         (compute_frame_size): Only allocate space for register that
21395         actually need to be saved.
21396         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
21397         (TARGET_SWITCHES): Remove -mspace, -mno-space
21398         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
21399         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
21400         * pa/ee.asm, pa/ee_fp.asm: Delete.
21401
21402         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
21403
21404         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
21405         directive in column zero.
21406
21407 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
21408
21409         * m68k.c (output_function_prologue): Fix computation of save mask
21410         when generating PIC code.
21411
21412 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
21413
21414         * tree.c (build_type_attribute_variant): Move current_obstack restore
21415         after build_qualified_type call.
21416
21417 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
21418
21419         * configure.in: Use t-iris6, even with GNU LD.
21420         * config/mips/iris6gld.h: Fix typo in linker spec.
21421         * config/mips/t-iris6gld: Remove.
21422
21423 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
21424
21425         * rs6000.md (insv, extzv): Remove SImode dependence in named
21426         patterns.  Explicitly generate DImode RTL if PowerPC64 and
21427         operand is DImode.
21428         (insvdi): Reverse start and size in instruction template.
21429
21430 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
21431
21432         * invoke.texi: Typo fixes.
21433
21434 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
21435
21436         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
21437         handle at this time instead of silently generating incorrect code.
21438         (gen_imagpart): Likewise.
21439
21440         * reload.c (find_reloads): Emit a USE for a pseudo register without
21441         a hard register if we could not create an optional reload for the
21442         pseudo.
21443
21444 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21445
21446         * c-typeck.c (output_init_element, process_init_element):
21447         When advancing constructor_unfilled_fields for a RECORD_TYPE,
21448         check for nameless bit fields.
21449
21450 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
21451
21452         * regclass.c (scan_one_insn): Notice subregs that change the
21453         size of their operand.
21454         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
21455
21456 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
21457
21458         * configure.in (alpha*-*-*): Include alpha/t-ieee.
21459         * configure: Rebuilt.
21460         * alpha/t-ieee: New file.
21461
21462 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
21463
21464         * rs6000.c (find_addr_reg): Do not select r0 as an address
21465         register.
21466
21467 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
21468
21469         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
21470
21471 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
21472
21473         * rs6000.md (movsf): Do not force easy FP constants into memory.
21474
21475         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
21476         immed_double_const to ensure they are properly truncated then
21477         sign extended.
21478
21479 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
21480
21481         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
21482         always unless NO_DEBUG is used.  Compile this code
21483         unconditionally.
21484         (replace_symbols_in_block): Compile it unconditionally.
21485
21486 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
21487
21488         * configure.in (i?86-*-elf*): New target.
21489         * configure: Rebuilt.
21490         * i386/i386elf.h, i386/t-i386elf: New files.
21491
21492 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
21493
21494         * toplev.c (main): Don't complain about saying -gdwarf.
21495         (rest_of_compilation): Remove redundant code.
21496
21497 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
21498
21499         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
21500
21501 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
21502
21503         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
21504         "Li960R:", to avoid name clash.
21505
21506 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21507
21508         * loop.c (check_dbra_loop): When reversing a loop, delete all
21509         REG_EQUAL notes referencing the reversed biv except those which are
21510         for a giv based on it.
21511
21512 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
21513
21514         * version.c: Drop "gcc-" prefix from version #.
21515
21516 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
21517
21518         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
21519         the label if we're being verbose.
21520
21521 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
21522
21523         * m68k.c (output_function_prologue): Add pic register to mask
21524         if live and flag_pic.
21525         (output_function_epilogue): Likewise.
21526
21527 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
21528
21529         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
21530         directives in column zero.
21531
21532         * pa/elf.h (ASM_FILE_START): Define.
21533         * pa/som.h (ASM_FILE_START): Include .level directives.
21534         * pa/hpux10.h (ASM_FILE_START): Delete.
21535         * pa/hpux11.h (ASM_FILE_START): Delete.
21536
21537         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
21538
21539 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21540
21541         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
21542         when reload_out equals reload_in.
21543
21544 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
21545
21546         * invoke.texi (Spec Files): New node: Describe the contents of
21547         spec files.
21548
21549 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
21550
21551         * invoke.texi (DEC Alpha Options): Put @end table at
21552         beginning of line, to avoid confusing texi2html.
21553
21554 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
21555
21556         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
21557         introduced in previous delta.
21558
21559 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
21560
21561         * reload1.c (gen_reload): When synthesizing a 3 operand add
21562         sequence, improve test for when to reload OP1 into the reload
21563         register instead of OP0.
21564
21565 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
21566
21567         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
21568
21569 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
21570
21571         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
21572         string literal.
21573
21574 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
21575
21576         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
21577         (va_dcl): Use __builtin_va_alist_t.
21578
21579 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
21580
21581         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
21582         on the permanent_obstack.
21583         * dwarfout.c (output_type): Likewise.
21584
21585 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21586
21587         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
21588         Merged from c-typeck.c and cp/typeck.c.
21589         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
21590         Merged into c-common.
21591
21592 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
21593
21594         * c-lex.c (errorcount): Declare it.
21595         (finish_parse): Update errorcount when using CPPLIB.
21596
21597 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
21598
21599         * fixinc/inclhack.def(end_else_label): Double the backslash so
21600         sed gets a chance to see it.
21601         * fixinc/inclhack.sh: regen
21602         * fixinc/fixincl.x: regen
21603
21604 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
21605
21606         Add framework to support armv5 architecture when it becomes
21607         available:
21608
21609         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
21610         (arm_arch5): New variable.
21611         (all_architectures): Add armv5 line.
21612         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
21613         -march=armv5 is specified on the command line.
21614         (arm_arch5): Export this variable.
21615         * invoke.texi: Document new string accepted by -march= switch for
21616         ARM ports.
21617
21618         * config/arm/arm.h: Replace use of constant 12 as a register
21619         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
21620         * config/arm/arm.c: Replace use of constant 12 as a register
21621         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
21622
21623         * config/arm/elf.h: Tidy up.
21624         * config/arm/coff.h: Tidy up.
21625
21626 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
21627
21628         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
21629         * gcc/config/mips/t-iris6gld: New file.
21630         * gcc/config/mips/iris6gld.h: Likewise.
21631
21632 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21633
21634         * c-decl.c (widest_integer_literal_type_node,
21635         widest_unsigned_literal_type) : New.
21636         (init_decl_processing): Handle/use the two new types.
21637         * c-common.c (type_for_size,type_for_mode) : Same.
21638         * c-lex.c (yylex) : Same.
21639         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
21640         Same.
21641         * c-tree.h (widest_integer_literal_type_node,
21642         widest_unsigned_literal_type) : New.
21643
21644 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
21645
21646         * dwarfout.c (field_byte_offset): Correctly compute the object's
21647         byte offset for the first bit of a field which crosses an alignment
21648         boundary on a !BYTES_BIG_ENDIAN target.
21649
21650 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
21651
21652         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
21653         ntohs.
21654
21655 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
21656                           Jeff Law <law@cygnus.com>
21657
21658         * ginclude/varargs.h (va_dcl): Use word_mode for type of
21659         __builtin_va_list.
21660
21661         * except.c: Include intl.h.
21662         (expand_eh_return): Set current_function_cannot_inline.
21663         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
21664         * function.h (struct function): Add eh_return_stub_label.
21665         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
21666         * Makefile.in (except.o): Depend on intl.h.
21667
21668 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
21669
21670         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
21671         same as offsettable in cases 1 and 2.
21672
21673 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
21674
21675         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
21676         (extlh, extwh): Likewise.
21677
21678 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21679
21680         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
21681
21682 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
21683
21684         * configure.in: Add arm-pe and thumb-pe targets.
21685         * configure: Regenerate.
21686
21687         * thumb.c (arm_naked_function_p): New function: Determines if
21688         a function is naked (has no gcc generated prologue/epilogue).
21689         (is_called_in_ARM_mode): Return true if the func has the
21690         interfacearm attribute.
21691         (output_return): Do not generate a return for naked functions.
21692         (thumb_function_prologue): Do not generate a prologue for
21693         naked functions.
21694         (thumb_expand_prologue): Do not generate a prologue for naked
21695         functions.
21696         (thumb_expand_epilogue): Do not generate an epilogue for naked
21697         functions.
21698         (arm_valid_machine_decl_attribute): New function, copied from
21699         arm.c:  Permit naked and interfacearm attributes.
21700
21701         * config/arm/pe.c: New file: Support code for arm-pe target.
21702         * config/arm/pe.h: New file: Header file for arm-pe target.
21703         * config/arm/tpe.h: New file: Header file for thumb-pe target.
21704         * config/arm/t-thumb-pe: New file: Makefile fragment for
21705         thumb-pe target.
21706
21707 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
21708
21709         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
21710         -fPIC or -fpic is specified.
21711
21712 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
21713
21714         * expr.c (emit_block_move): Use copy_to_mode_reg for
21715         !TARGET_MEM_FUNCTIONS case too.
21716
21717         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
21718         appropriate.
21719         * configure: Rebuilt.
21720         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
21721         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
21722         definitions made redundant by dbxelf.h inclusion.  Delete
21723         lots of definitions related to assembly output that are
21724         specific to the SOM object format.
21725         * pa.c (output_function_prologue): Do not emit the function's
21726         name for OBJ_ELF.
21727         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
21728         * pa-pro.h: Deleted.
21729         * som.h: New file with SOM specific definitions.
21730         * elf.h: New file with ELF specific definitions.
21731
21732         * elfos.h (const_section): Output a tab before assembler directives.
21733         (ctors_section, dtors_section): Likewise.
21734         (ASM_OUTPUT_SECTION_NAME): Likewise.
21735
21736         * pa/pa1.h: Delete unused file.
21737
21738 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
21739
21740         * configure.in (hppa*-hp-hpux11*): New configuration.
21741         * configure: Rebuilt.
21742         * pa/pa-hpux11.h: New file.
21743         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
21744         command line.
21745
21746         * mips.md (leasi, leadi): New patterns.
21747
21748         * expr.c (emit_block_move): Properly handle case where one of the
21749         block move arguments has a queued increment or decrement.
21750         (clear_storage): Similarly.  Fix formatting goof.
21751
21752 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
21753
21754         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
21755         semicolon from the BSD VA_LIST replacement expression.
21756
21757         * fixinc/inclhack.sh: regen
21758         * fixinc/fixincl.x: regen
21759
21760         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
21761         now use the fixincl program.
21762
21763 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
21764
21765         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
21766         case.  Also make the PIC register call_used.
21767
21768         * m68k.h (FINALIZE_PIC): Delete.
21769         * m68k.c (finalize_pic): Delete.
21770
21771 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
21772
21773         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
21774         to memory.
21775
21776 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
21777
21778         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
21779
21780 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
21781
21782         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
21783
21784 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
21785
21786         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
21787
21788 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
21789
21790         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
21791
21792 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
21793
21794         * rs6000.c (output_toc): Always use hex values for floating-point
21795         constants.  Store single-precision values in upper-half of TOC
21796         entry in 64-bit mode.
21797         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
21798         to final constraints.
21799         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
21800         (fctiwz): Improve accuracy of RTL for pattern.
21801
21802 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21803
21804         * expr.c (expand_expr): Allow RTL_EXPR's through the
21805         MAX_INTEGER_COMPUTATION_MODE checks.
21806
21807 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
21808
21809         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
21810         such that MASK_SUPPORT_ARCH is not negative.
21811
21812 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
21813
21814         * loop.c (verify_dominator): Properly handle ADDR_VEC and
21815         ADDR_DIFF_VEC insns that appear inside loops.
21816
21817 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
21818                           Jeff Law <law@cygnus.com>
21819
21820         * rs6000.md (movdf_hardfloat32): Revert previous patch.
21821         Handle LO_SUM the same as offsettable in cases 1 and 2.
21822         * rs6000.c (find_addr_reg): Revert previous patch.
21823
21824 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
21825
21826         * system.h (strstr): New external function declaration.
21827         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
21828         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
21829         * config.in, configure: Rebuilt.
21830
21831 1999-06-24  Tom Tromey  <tromey@cygnus.com>
21832
21833         * gcc.c (main): Read user-specified specs files after computing
21834         additional startfile_prefixes.
21835
21836 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
21837
21838         Revert these two patches:
21839
21840         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21841         * loop.c (strength_reduce): When doing biv->giv conversion, update
21842         reg note of NEXT->insn.
21843
21844         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21845         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
21846         reg_biv_class.
21847         (recombine_givs): Set ix field after sorting.
21848
21849 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21850
21851         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
21852         for the parts of an UNSPEC / UNSPEC_VOLATILE.
21853
21854 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
21855
21856         *fixinc/inclhack.def:  Add fix development commentary
21857         (read_ret_type): reactivate and add selection clause
21858         (zzz_*): tweak output file name to match what is used in hackshell.tpl
21859         *fixinc/{fixincl.x|inclhack.sh}: regen
21860
21861 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
21862
21863         * expr.c (expand_expr): STRIP_NOPS before checking against
21864         MAX_INTEGER_COMPUTATION_MODE
21865         (check_max_integer_computation_mode): Likewise.
21866
21867 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
21868
21869         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
21870
21871 1999-06-22  Jim Wilson  <wilson@cygnus.com>
21872
21873         * expr.c (store_expr): When target is a promoted subreg, return a
21874         promoted subreg as a result.
21875
21876 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
21877
21878         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
21879         coding standards.
21880         (dwarf2out_define): Mark unused parameters appropriately.
21881         (gen_unspecified_parameters_die): Ditto.
21882         (gen_subprogram_die): Fix signed/unsigned warnings.
21883         (gen_variable_die): Ditto.
21884
21885 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
21886
21887         * fixinc/inclhack.def(end_else_label): combined else_label
21888         and endif_label and fixed the sed expression.
21889         *fixinc/{fixincl.x|inclhack.sh}: regen
21890
21891 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
21892
21893         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
21894         'x' when handling non-offsettable addresses
21895
21896 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
21897
21898         * final.c (shorten_branches): Don't try to split an insn that has
21899         been deleted.
21900
21901 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
21902
21903         * config/mips/mips.c (symbolic_expression_p): New function.
21904         (mips_select_rtx_section): Put symbolic expressions in the
21905         data section, not the read-only data section.
21906
21907 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
21908
21909         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
21910
21911 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
21912
21913         * collect2.c (main): Log frame table count.
21914         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
21915         (scan_prog_file) [COFF]: Handle frame tables.
21916
21917         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
21918         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
21919         * alpha/elf.h: Undef them again.
21920         * alpha/vms.h: Remove their definitions.
21921
21922 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21923
21924         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
21925         remove the clobber of r0 and change the REG_UNUSED note to
21926         REG_INC.
21927
21928 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
21929
21930         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
21931         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
21932         fits in HOST_WIDE_INT and one uses union to access a long constant
21933         as double.
21934
21935 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
21936
21937         * sparc.c (sparc_override_options): Don't allow profiling for
21938         code models other than medlow.
21939         (sparc_function_profiler): New function from old FUNCTION_PROFILER
21940         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
21941         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
21942         (sparc_block_profiler): Likewise.
21943         (sparc_function_block_profiler_exit): Likewise.
21944         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
21945         (FUNCTION_BLOCK_PROFILER): Likewise.
21946         (BLOCK_PROFILER): Likewise.
21947         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
21948         (MCOUNT_FUNCTION): New.
21949         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
21950         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
21951         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
21952         (MCOUNT_FUNCTION): New.
21953         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
21954         (BLOCK_PROFILER): Delete.
21955         (MCOUNT_FUNCTION): New.
21956
21957 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
21958
21959         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
21960
21961 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
21962
21963         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21964         Add the macros.
21965
21966         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21967         Ditto.
21968
21969         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21970         Ditto.
21971
21972         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21973         Ditto.
21974
21975 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
21976
21977         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
21978         types.
21979
21980 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
21981
21982         * i386/djgpp.h (LIB_SPEC): New.
21983         (STARTFILE_SPEC): New.
21984
21985         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
21986
21987 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
21988
21989         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
21990         compiler flags.
21991
21992         * system.h (WSTOPSIG): New macro.
21993
21994 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21995
21996         * c-pragma.c (push_alignment): Don't ignore alignments greater than
21997         4 bytes.
21998         (insert_pack_attributes): Take into account member natural
21999         alignment.
22000
22001         * i386/winnt.c (exports_head): New static variable.
22002         (i386_pe_record_exported_symbol): New function.
22003         (i386_pe_asm_file_end): Use.
22004         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
22005         symbols to be emitted at end of assembly.
22006         (ASM_DECLARE_OBJECT_NAME): Likewise.
22007         (ASM_DECLARE_FUNCTION_NAME): Likewise.
22008
22009         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
22010         -iwithprefix.
22011
22012 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
22013
22014         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
22015         in last change.
22016
22017 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
22018
22019         * haifa-sched.c (sched_analyze_1): Use free_list instead of
22020         zapping reg_last_uses directly.
22021         (sched_analyze_2, sched_analyze_insn): Likewise.
22022         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
22023
22024 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
22025
22026         * rs6000.md (movdf_hardfloat32): Use worst case insn length
22027         attributes for cases 1 and 2.
22028
22029 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
22030
22031         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
22032         instead of set.
22033
22034 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
22035
22036         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
22037
22038 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
22039
22040         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
22041         PIC_OFFSET_TABLE_REGNUM for general alloaction.
22042         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
22043         must be stacked if it is used for PIC accesses.
22044         * arm.c (use_return_insn): Handle PIC register specially.
22045         (output_return_instruction): Likewise.
22046         (output_func_{prologue,epilogue}): Likewise.
22047         (output_expand_prologue): Likewise.
22048
22049         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
22050         (*strsi_predec): Renamed from *strqi_predec.
22051         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
22052         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
22053
22054         * arm.c (arm_override_options): Remove warning about PIC code
22055         not being supported.
22056
22057 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
22058
22059         * rs6000.c (find_addr_reg): New function.
22060         * rs6000.h (find_addr_reg): Declare.
22061         (offsettable_addr_operand): Delete.
22062         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
22063         from and stores to GPRs.
22064
22065 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
22066
22067         * alpha.c (alpha_expand_block_move): Use get_insns rather than
22068         gen_sequence as argument to emit_no_conflict_block.
22069
22070 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22071
22072         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
22073         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
22074         *fixinc/fixincl.x: regen
22075         *fixinc/inclhack.sh: regen
22076
22077 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
22078
22079         * added support for -mpcrel (PC relative addressing for m68k)
22080         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
22081         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
22082         * m68k.c (print_operand_address): Handle 32-bit PIC case.
22083         (comments for general_src_operand): Add some explanation
22084         about EXTRA_CONSTRAINTS.
22085         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
22086         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
22087         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
22088         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
22089         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
22090         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
22091         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
22092         if not already set.
22093         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
22094         * m68k.h (TARGET_PCREL): New target flag.
22095         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
22096         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
22097         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
22098         contains a SYMBOL_REF.  Relax this constraint during reload, since
22099         we want to use the predicates, not reload's built-in concept of a
22100         valid memory address, to control what insns need reloading.
22101         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
22102         operands (essentially 'g', 'm', and 's' under normal circumstances).
22103         * m68k.c (print_operand): Cause printing of pc-relative addresses
22104         to include pc register.
22105         (print_operand_address): Ditto.
22106         (general_src_operand): Accept operands that are not only
22107         general_operands, but are also valid when used as a pc-relative
22108         source.
22109         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
22110         (memory_src_operand): Similar, for memory_operands.
22111         (pcrel_address): New predicate to accept the special case of a
22112         pc-relative address.
22113         * m68k.md (many patterns): Rewrite common SImode, HImode, and
22114         QImode insns to accept *_src_operand instead of *_operand where
22115         pc-relative operands can fit.  For example, a pc-relative operand
22116         can be used as a memory source operand for addsi3, but not as a
22117         memory destination.
22118         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
22119
22120 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
22121
22122         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
22123         .thumb_set pseudo op to mark aliases of thumb functions.
22124
22125 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
22126
22127         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
22128         preference to ASM_OUTPUT_DEF, if it is defined.
22129
22130         * tm.texi: Document new, optional target macro
22131         ASM_OUTPUT_DEF_FROM_DECLS.
22132
22133 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22134
22135         * fixincludes: ISCNTL patch
22136         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
22137         (dgux_int_varargs): new for DG/UX
22138         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
22139
22140 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
22141
22142         * invoke.texi (ia32 options): Fix typo.
22143
22144 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22145
22146         * loop.c (strength_reduce): When doing biv->giv conversion, update
22147         reg note of NEXT->insn.
22148
22149 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
22150
22151         * loop.c (move_movables): Note issues with replacing REGs with
22152         SUBREGs.
22153         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
22154
22155 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
22156
22157         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
22158
22159         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
22160         the reference to `mcount' was not correct for the ELF on FreeBSD.
22161
22162 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22163
22164         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
22165         reg_biv_class.
22166
22167         (recombine_givs): Set ix field after sorting.
22168
22169 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
22170
22171         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
22172         to safe to extract a subword out of a REG.
22173
22174 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22175
22176         * sh.md (mulsi3): Don't add a no-op move at the end.
22177
22178 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22179
22180         * cse.c (cse_insn): Don't put hard register source into tables for
22181         the last insn of a libcall.
22182
22183 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22184
22185         * loop.c (strength_reduce): Insert sets of derived givs at every
22186         biv increment, even if it's the only one.
22187
22188 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
22189
22190         * dwarfout.c (add_incomplete_type): New fn.
22191         (output_type): Call it.
22192         (retry_incomplete_types): New fn.
22193         (dwarfout_finish): Call it.
22194
22195         From Eric Raskin <ehr@listworks.com>:
22196         (output_type): Output types for bases.
22197
22198 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
22199
22200         * mips.c (mips_output_conditional_branch): Add `break'
22201         between `default' label and `close braces'.
22202
22203 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
22204
22205         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
22206         specifications and make it realistic.
22207         (LIB_SPEC): Likewise.
22208
22209 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
22210
22211         * config/mips/mips.c (mips_secondary_reload_class): Check for
22212         (PLUS (SP) (REG)) and return appropriate register class.
22213         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
22214         Handle (PLUS (SP) (REG)).
22215         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
22216         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
22217         of emit_insn for tablejump.
22218
22219 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
22220
22221         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
22222         asm_fprintf format string by itself.
22223         (output_function_profiler): Likewise.
22224
22225 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
22226
22227         * combine.c (simplify_logical, case AND): Only call
22228         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
22229         or the constant is positive.
22230
22231 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
22232
22233         * configure.in: Fix typo in rs6000-ibm-aix4 case.
22234         * configure: Regenerate.
22235
22236 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
22237
22238         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
22239         require a sub-version #.
22240         * configure: Rebuilt.
22241
22242 1999-06-14  Robert Lipe  (robertlipe@usa.net)
22243
22244         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
22245
22246 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
22247
22248         * c-typeck.c (process_init_element): Detect excess elements in
22249         char array initializer.
22250
22251 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
22252
22253         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
22254
22255 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
22256
22257         * invoke.texi (Option Summary): Add -fpermissive flag.
22258
22259 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
22260
22261         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
22262         that require PIC code sequences.
22263
22264 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
22265
22266         * configure.in: Add new target: thumb-elf.
22267         * configure: Regenerate.
22268         * config/arm/t-thumb-elf: New file: Makefile fragment for
22269         thumb-elf build.
22270         * config/arm/telf.h: New file: Header file for thumb-elf
22271         build.
22272
22273 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
22274
22275         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
22276         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
22277         initializers is some circumstances.
22278
22279         * fixinc/inclhack.def (endif_label): Add additional selector for
22280         more bogus stuff after #endif statements.
22281         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
22282
22283 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22284
22285         * i386/cygwin.h (SET_ASM_OP): Define.
22286
22287 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22288
22289         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
22290
22291 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22292
22293         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
22294         latter.
22295
22296         * sh.md (ic_invalidate_line_i): Remove second alternative.
22297
22298 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22299
22300         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
22301         test for the presence of valid prototypes.  Delete bypass expr.
22302         (ioctl_fix_ctrl): Correct the selection expression.
22303         (no_double_slash): Correct quoting rules
22304         *fixinc/fixincl.x: regen
22305         *fixinc/inclhack.sh: regen
22306
22307 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
22308
22309         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
22310
22311 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22312
22313         * rs6000.md (movsi_got_internal_mem): Delete.
22314         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
22315         (GOT_TOC_REGNUM): Delete.
22316         (PIC_OFFSET_TABLE_REGNUM): Define.
22317         (FINALIZE_PIC): Disable.
22318         * rs6000.c (rs6000_got_register): New code for fixed pic register.
22319         (rs6000_replace_regno): Delete.
22320         (rs6000_finalize_pic): Likewise.
22321         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
22322
22323 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22324
22325         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
22326         is a note; use <= for the compare; advance P while it is
22327         a NOTE.
22328
22329 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
22330
22331         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
22332         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
22333
22334         * varasm.c (remove_from_pending_weak_list): Verify t->name
22335         is non-NULL before passing it to strcmp.
22336
22337 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22338
22339         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
22340         the typed arguments are not part of a comment
22341         (ioctl_fix_ctrl): Added a purpose comment
22342         *fixinc/fixincl.x: regenerate
22343         *fixinc/inclhack.sh: regenerate
22344
22345 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22346
22347         * invoke.texi: Add C4x invocation docs.
22348
22349 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22350
22351         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
22352         Define new macros.
22353         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
22354         TARGET_EXPOSE_LDP.
22355         (c4x_legitimize_reload_address): New function.
22356         * config/c4x/c4x.md: Update docs.
22357
22358 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
22359
22360         * fixincludes: Avoid removing '.'.
22361         * fixinc/fixinc.svr4: Likewise.
22362         * fixinc/fixinc.winnt: Likewise.
22363         * fixinc/inclhack.tpl: Likewise.
22364         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
22365
22366 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22367
22368         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
22369         pattern.
22370         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
22371
22372 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22373
22374         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
22375         correctly.
22376
22377 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
22378
22379         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
22380         * configure: Regenerate.
22381
22382 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
22383
22384         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
22385         values.
22386
22387 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
22388
22389         * fixinc/inclhack.def (avoid_bool): Also catch
22390         "typedef [unsigned] int bool".
22391         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
22392
22393         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
22394         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
22395         * configure: Rebuilt.
22396
22397 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
22398
22399         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
22400         such that we can override its definitions if necessary.
22401         (CPP_SPEC): New define.  Support processor specific predefines via
22402         %(cpp_cpu).
22403         (CC1_SPEC): New define.  Support processor specific compiler
22404         options via %(cc1_cpu).
22405         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
22406         -static.
22407
22408 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22409
22410         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
22411         between sed's -e flag, and the open-quote following it.
22412         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
22413
22414 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
22415                           Jeffrey A Law  (law@cygnus.com)
22416
22417         * varasm.c (assemble_start_function): Remove the function
22418         from the pending weak decls list when we define a function.
22419         (assemble_variable): Similarly for variables.
22420         (weak_finish): Ignore items on the list with a NULL name.
22421         (remove_from_ending_weak_list); New function to "remove" an item
22422         from the pending weak declarations list.
22423
22424 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
22425
22426         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
22427
22428 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
22429
22430         * c-lex.c (GETC): Redefine to call getch.
22431         (UNGETC): Redefine to call put_back.
22432         (putback_buffer): New structure type.
22433         (putback): New static structure.
22434         (getch): New function.
22435         (put_back): New function.
22436         (yylex): Replace unused bytes from bad multibyte character.
22437
22438 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
22439
22440         * cpplib.c (do_define): Cast `alloca' return value.
22441         (do_include, do_undef, do_pragma): Likewise.
22442         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
22443         values.
22444         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
22445         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
22446
22447 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
22448
22449         * sparc.md (abstf2): This should be an expand.
22450         (split after abstf2_notv9): Fix mode.
22451         (abstf2_hq_v9): New pattern.
22452         (abstf2_v9): Only use when no hard quad.
22453         (absdf2_v9): Fix if target is not the same as source.
22454         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
22455         Add correct output constraints.
22456
22457 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
22458
22459         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
22460         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
22461
22462 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
22463
22464         * mips.h (mips_output_conditional_branch): New function.
22465         (mips_adjust_insn_length): Likewise.
22466         (ASSEMBLER_SCRATCH_REGNUM): New macro.
22467         (ADJUST_INSN_LENGTH): Likewise.
22468         * mips.c (print_operand): Add `F' and `W' for floating-point
22469         comparison opcodes.
22470         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
22471         are now in bytes.
22472         (mips_adjust_insn_length): New function.
22473         (mips_output_conditional_branch): New function.
22474         * mips.md (length): Adjust attribute definition to handle
22475         conditional branches.  Change lengths to bytes, rather than
22476         instructions throughout.  Remove length attribute from
22477         instructions whose length is four bytes, and rely on the default
22478         instead.
22479         (dslot): Fix typo in comment.
22480         Reword conditional branch patterns to use
22481         mips_output_conditional_branch.
22482
22483 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22484
22485         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
22486         (LIB_SPEC): Likewise.
22487         Link with -lprof1_r for -g/-pg.
22488
22489 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
22490
22491         * loop.c (check_dbra_loop): Fix change of Jan 19.
22492
22493 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
22494
22495         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
22496         (STARTFILE_SPEC):  Define, override the svr4.h version.
22497         (ENDFILE_SPEC):  Likewise.
22498
22499 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
22500
22501         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
22502         * fixinc/fixincl.x: Regenerated.
22503         * fixinc/inclhack.sh: Regenerated.
22504
22505 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22506
22507         * sh.c (barrier_align): Don't return early for normal branch/barrier
22508         when optimizing for SH2.
22509
22510 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
22511
22512         * i386/udk.h (LINK_SPEC): Correct linker search path for
22513         system libraries.
22514
22515 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22516
22517         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
22518         (braf_label_ref_operand): Delete.
22519         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
22520         * sh.md (casesi_jump_2): Operand1 is now the inside of a
22521         label_ref, and has no predicate.
22522         The patten has a predicate to guard against invalid substitutions.
22523         (dummy_jump): Delete.
22524         (casesi): Update use of casesi_jump_2.
22525
22526 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22527
22528         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
22529         *fixinc/fixincl.x: regenerate
22530         *fixinc/inclhack.sh: regenerate
22531
22532 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
22533
22534         * dwarf2out.c (add_incomplete_type): New fn.
22535         (gen_struct_or_union_type_die): Call it.
22536         (retry_incomplete_types): New fn.
22537         (dwarf2out_finish): Call it.
22538
22539 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
22540
22541         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
22542         current block starts with a CODE_LABEL and ends with a CALL and
22543         we can not find all the argument setup instructions for the CALL.
22544
22545 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
22546
22547         Revert this change:
22548         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
22549         something is a candidate for optimize_bit_field_compare.
22550
22551 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22552
22553         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
22554
22555 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
22556
22557         * alpha.c (override_options): Thinko in last patch.
22558
22559         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
22560         (LIB_SPEC): Recognize -pthread.
22561
22562 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
22563
22564         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
22565         definition in config/arm/coff.h
22566         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
22567
22568 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
22569
22570         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
22571         fixes that need "file=xxx\n" prepended before invocation
22572         (start_fixer - new): starting the fixer process is complex enough
22573         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
22574         (process): uses the new routine; omit usage of putenv()
22575         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
22576         * fixinc/fixincl.x: regenerate
22577
22578 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
22579
22580         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
22581         and version #s (1.1 -> 2.96) as needed.
22582         * README.g77: Kill way out of date file in the toplevel directory.
22583
22584 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
22585
22586         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
22587         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
22588         * configure: Rebuilt.
22589         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
22590         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
22591         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
22592         (SWITCH_TAKES_ARG): Likewise.
22593         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
22594         * config/t-freebsd: Moved from config/i386/ so it can used for all
22595         FreeBSD targets.
22596
22597 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
22598
22599         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
22600
22601 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
22602
22603         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
22604         * configure: Rebuilt.
22605
22606 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
22607
22608         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
22609         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
22610         * rs6000/rs6000.c (rs6000_file_start): Use putc.
22611         (rs6000_output_load_toc_table): Same.
22612         (output_prolog, output_mi_thunk): Same.
22613         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
22614         (ASM_GLOBALIZE_LABEL): Use putc.
22615
22616 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
22617
22618         * alpha.md (reload_*_help): New patterns and splitters.
22619         (reload_*): Use them.
22620         (mov[qh]i): Likewise.
22621
22622 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
22623
22624         * cccp.c (handle_directive): Handle backslash-newlines in quoted
22625         strings correctly.
22626
22627 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
22628
22629         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
22630
22631 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
22632
22633         * flow.c (mark_regs_live_at_end, insn_dead_p,
22634         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
22635         and HARD_FRAME_POINTER_REGNUM special treatment if reload
22636         hasn't run or the frame pointer is needed.
22637         * haifa-sched.c (attach_deaths): Likewise.
22638         * sched.c (attach_deaths): Likewise.
22639
22640 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
22641
22642         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
22643         calculate_can_reach_end returns nonzero.
22644
22645         * configure.in (native gas tests): Search for an assembler in the
22646         same manner that the installed compiler will.
22647         * configure: Rebuilt.
22648         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
22649
22650         * alias.c (find_base_term): Improve handling of addresses
22651         constructed from binary operations.
22652
22653 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
22654
22655         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
22656
22657 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
22658
22659         * function.h (cleanup_label, frame_offset): Declare.
22660         (tail_recursion_label, tail_recursion_reentry): Likewise.
22661         (arg_pointer_save_area, rtl_expr_chain): Likewise.
22662         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
22663         (tail_recursion_label, tail_recursion_reentry): Likewise.
22664         (arg_pointer_save_area, rtl_expr_chain): Likewise.
22665
22666 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
22667
22668         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
22669         defined.
22670         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
22671         (MAX_OFILE_ALIGNMENT): Define.
22672
22673 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
22674
22675         * fixincl.c: Replace local include scheme with #includes of
22676         gansidecl.h and system.h.
22677         * procopen.c:  Likewise.
22678         * server.c:  Likewise.
22679
22680 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
22681
22682         * i386/t-dgux (EXTRA_PARTS): Add crti.o
22683         (crti.o): Add build rule and dependencies.
22684         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
22685
22686 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22687
22688         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
22689         (LIB_LINUX_SPEC): Likewise.
22690         (LIB_LINUX_SPEC): Add support for -pthread
22691         (CPP_OS_LINUX_SPEC): Likewise.
22692         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
22693         specified.
22694
22695 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
22696
22697         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
22698         conditional move.
22699         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
22700         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
22701         for IEEE math and CC_FCOMI.
22702         (put_jump_code): No IEEE if CC_FCOMI is set.
22703
22704 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
22705
22706         * fold-const.c (fold_truthop): Make the field reference unsigned
22707         when converting a single bit compare.
22708
22709 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22710
22711         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
22712
22713 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
22714
22715         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
22716         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
22717         version did.
22718
22719         * reload.c (push_reload): Do not call remove_address_replacements
22720         when presented with identical optional reloads.
22721
22722 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
22723
22724         * alpha.h (MASK_FIX, TARGET_FIX): New.
22725         (MASK_*): Reorganize constants.
22726         (CPP_AM_FIX_SPEC): New.
22727         (TARGET_SWITCHES): Add FIX.
22728         (EXTRA_SPECS): Likewise.
22729         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
22730         (SECONDARY_MEMORY_NEEDED): Likewise.
22731         (REGISTER_MOVE_COST): Likewise.
22732         * alpha.c (override_options): Add FIX support.  Always use
22733         ALPHA_TP_PROG for ev6.
22734         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
22735         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
22736         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
22737
22738 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
22739
22740         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
22741         something is a candidate for optimize_bit_field_compare.
22742
22743 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
22744
22745         * gcc.texi (Passes): Document branch-shortening.
22746         * invoke.texi (Debugging Options): Document the fact that `-dp'
22747         outputs length information for instructions.
22748
22749 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
22750
22751         * flow.c: Revert previous delta.
22752
22753 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
22754
22755         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
22756         FRAME_POINTER_REGNUM.
22757         (mark_set_1): Ditto.
22758         (mark_used_regs): Ditto.
22759
22760 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
22761
22762         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
22763         (GOT_PCREL): New macro.  Define to 1 if not already defined.
22764         * arm/elf.h (GOT_PCREL): Define to 0.
22765         * arm.c (arm_finalize_pic): Take into account the setting of
22766         GOT_PCREL.
22767
22768 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
22769
22770         * output.h (STRIP_NAME_ENCODING): Provide default definition.
22771         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
22772
22773         * flow.c (mark_set_1): Do not record BLKmode stores as dead
22774         store elimination candidates.
22775
22776 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22777
22778         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
22779         TARGET_GAS.
22780
22781 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
22782
22783         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
22784         Add use of x-aix41-gld.
22785
22786 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
22787
22788         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
22789         (ASM_OUTPUT_DESTRUCTOR): Define.
22790
22791 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
22792
22793         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
22794         last CODE_LABEL in a loop if we have previously passed a jump
22795         to the top of the loop.
22796
22797 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
22798
22799         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
22800         applying Philip's patch.
22801
22802 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
22803
22804         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
22805         are not VAR_DECLs.
22806
22807 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
22808
22809         * loop.c (strength_reduce): Grow reg_single_usage as needed.
22810
22811 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
22812
22813         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
22814         Also remove a useless comment.
22815
22816 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
22817
22818         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
22819
22820 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
22821
22822         * collect2.c (main): Only generate import or export file and add
22823         to link arguments if non-empty.  Use xmalloc not alloca.
22824         (write_{export,import}_file): Delete.
22825         (write_aix_file): New function.
22826         (locatelib): Use xmalloc not malloc.
22827         (GCC_OK_SYMBOL): Do not check type if aix64.
22828
22829 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
22830
22831         Based on patch by Scott Bambrough and Pat Beirne:
22832         * config/arm/arm.c (making_const_table): New variable.
22833         * config/arm/arm.h (making_const_table): Declare.
22834         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
22835         appropriate.
22836         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
22837         Keep track of when we are building the constant table.
22838
22839 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
22840
22841         * config/arm/arm.c (arm_override_options): Fix erroneous warning
22842         message.
22843
22844 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
22845
22846         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
22847         defined.
22848
22849 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
22850
22851         * tm.texi (FUNCTION_ARG): Correct description of a stack element
22852         in a PARALLEL.
22853
22854 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
22855
22856         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
22857
22858 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22859
22860         * rs6000.c (output_mi_thunk): Enable full support again.
22861
22862 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22863
22864         * sh.h (BRANCH_COST): Define.
22865
22866 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
22867
22868         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
22869
22870 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
22871
22872         * function.c (assign_stack_local): Align stack slot propertly.
22873         (assign_outer_stack_local): Likewise.
22874
22875 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
22876
22877         * expr.h (lang_expand_constant): Declare.
22878         * toplev.c (lang_expand_constant): Define it.
22879         * varasm.c (output_constant): Use it.
22880
22881 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22882
22883         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
22884         Change function definitions to K&R style.
22885
22886 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22887
22888         * fixinc/fixincl.c: We must not ignore SIGCLD now.
22889
22890 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
22891
22892         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
22893         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
22894         (several places): omit static initialization
22895         (process): use single fd, since only the read fd is used
22896         * fixinc/gnu-regex.c: define 'const' away, if not supported
22897         * fixinc/procopen.c(several places): omit static initialization
22898         * fixinc/server.c: define 'volitile' away, if not supported
22899
22900 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
22901
22902         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
22903         asm_fprintf and %L to generate the label name.
22904         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
22905         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
22906
22907 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
22908
22909         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
22910         insn for a conditional jump can not be found.
22911
22912 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
22913
22914         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
22915         on variables in specific sections other than .sbss and .sdata.
22916
22917 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
22918
22919         * stmt.c (expand_return): Call start_cleanup_deferral and
22920         end_cleanup_deferral around conditional code.
22921
22922 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22923
22924         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
22925         filename lists.  Utilizes new "krstr" AutoGen function.
22926         * fixinc/fixincl.x: Rebuilt.
22927
22928 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
22929
22930         * i386.c (output_float_compare): Avoid GNU-C extensions.
22931
22932 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
22933
22934         * version.c: Bump to distinguish mainline tree from the
22935         gcc-2.95 branch.
22936
22937 See ChangeLog.1 for earlier changes.