OSDN Git Service

2000-04-04 Philippe De Muyter <phdm@macqel.be>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
2
3         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
4         before freeing argnames.
5         * cpplib.c (do_ifndef): Cast return value of xstrdup.
6
7 2000-04-05  Michael Meissner  <meissner@redhat.com>
8
9         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
10         Walton <jonboy@gordian.com> to make memory references with update
11         work wtih -mregnames.
12
13 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14
15         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
16         (regrename_optimize): Rename variables `def_uses' and
17         `ext_basic_blocks' to avoid conflicts with similarly named
18         typedefs in traditional C.
19
20         * calls.c (initialize_argument_information): Fix typo in previous
21         change.
22
23 2000-04-04  Richard Henderson  <rth@cygnus.com>
24
25         * regrename.c (consider_available): Test fixed_regs not
26         PIC_OFFSET_TABLE_REGNUM.
27
28 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
29
30         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
31         crtend.
32         (CRTSTUFF_T_CFLAGS_S): Delete definition.
33         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
34         (ENDFILE_LINUX_SPEC): Always use crtend.
35         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
36         (powerpc-*-linux-gnu): Likewise.
37         * configure: Regenerate.
38
39         * config/rs6000/eabi.h: Don't include sysv4.h.
40         (MULTILIB_DEFAULTS): Don't define.
41         * config/rs6000/eabiaix.h: Don't include eabi.h.
42         * config/rs6000/eabile.h: Delete.
43         * config/rs6000/eabilesim.h: Delete.
44         * config/rs6000/eabisim.h: Don't include eabi.h.
45         * config/rs6000/linux.h: Don't include sysv4.h.
46         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
47         (MULTILIB_DEFAULTS): Don't redefine.
48         * config/rs6000/rtems.h: Don't include eabi.h.
49         * config/rs6000/sol2.h: Don't include sysv4le.h.
50         * config/rs6000/sysv4le.h: Don't include sysv4.h.
51         * config/rs6000/t-ppc: Delete.
52         * config/rs6000/t-ppcgas: Correct comment.
53         * config/rs6000/t-ppcos: Correct comment.  Don't build 
54         multilibs for -fPIC, rather use -fPIC -mstrict-align 
55         as default.
56         * config/rs6000/t-ppc: Delete.
57         * config/rs6000/vxppc.h: Don't include sysv4.h.
58         * config/rs6000/vxppcle.h: Delete.
59         * configure.in: Use multiple header files for p2pc ELF targets
60         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
61         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
62         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
63         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
64         always available for these platforms.
65
66 2000-04-04  Richard Henderson  <rth@cygnus.com>
67
68         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
69
70 2000-04-04  Stan Cox  <scox@cygnus.com> 
71
72         * Makefile.in: Add rules for regrename.o
73         * regrename.c: New file.
74         * rtl.h (regrename_optimize): Add prototype.
75         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
76         (compile_file, decode_d_option): Add support for -frename-registers.
77         (rest_of_compilation): Call regrename_optimize.
78         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
79         New macros.     
80         
81 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
82
83         * Makefile (gccbug): New target.
84         (doc): Depend on it.
85         * gcc.texi (Bugs): Link subnodes.
86         (gccbug): New node.
87         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
88         Document severities, priorities, and classes in bug form.
89
90 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
91
92         * cpplex.c (trigraph_map, speccase): Combine into single
93         table, chartab.
94         (NORMAL, NONTRI): New macros.
95         (_cpp_read_and_prescan): Change to use unified table.  Use
96         is_hspace to test for whitespace.
97
98         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
99         definition that doesn't provoke the "empty body in an
100         if-statement" warning.
101
102 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
103
104         * builtins.c (expand_builtin_strlen): Force the source to
105         be a memory address.
106
107 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
108
109         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
110
111 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
112
113         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
114          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
115         (ECF_IS_CONST): Rename to ECF_CONST.
116         (special_function_p): Make static, change interface.
117         (flags_from_decl_or_type, try_to_integrate): Break out from ...
118         (expand_call) ... here; convert number of variables to flags.
119         (emit_library_call_vlue_1): Likewise.
120         (setjmp_call_p): New function.
121         (initialize_argument_information): Accepts flags as argument;
122         return flags.
123         (precompute_arguments): Likewise.
124         * tree.h (special_function_p): Remove.
125         (setjmp_call_p): Add prototype.
126
127 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
128
129         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
130         so that addresses are offsetable by up to 16 bytes.
131         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
132         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
133         offsetable.
134
135         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
136         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
137         (movsf): Don't force any constant to memory if target is integer
138         hard register.
139         Move fp_zero_operand check below the const0_rtx check.
140         (movtf): Likewise. Also allow fp_zero_operand for stores into
141         memory.
142         (movdf): Likewise. Also allow fp_zero_operand for stores into
143         memory and into integer hard registers.
144         (clear_df, clear_dfp, movdf_const_intreg_sp32,
145         movdf_const_intreg_sp64): Remove.
146         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
147         conditions.
148         (movdf_no_e_insn_v9_sp32): New pattern.
149         (movdf_insn_v9only): Remove.
150         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
151         (movdf_insn_sp64): Remove.
152         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
153         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
154         (following splits): Rewrite conditions. Add two new splits
155         for storing 0.0 into memory and registers.
156         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
157         (movtf_insn_sp32): Redo constraints and conditions.
158         (movtf_insn_vis_sp32): New pattern.
159         (movtf_no_e_insn_sp32): Redo constraints and conditions.
160         (movtf_insn_hq_sp64): Likewise.
161         (movtf_insn_hq_vis_sp64): New pattern.
162         (movtf_insn_sp64): Redo constraints and conditions.
163         (movtf_insn_vis_sp64): New pattern.
164         (movtf_no_e_insn_sp64): Redo constraints and conditions.
165         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
166         or memory.
167         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
168         -mvis or -m64 to take down the number of various reload patterns.
169
170 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
171
172         * pa/pa-64.h: New file.
173         * pa/pa64-regs.h: New file.
174         * pa/pa64-start.h: New file.
175         * pa/t-pa64: New file.
176         * pa/xm-pa64hpux.h: New file.
177
178 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
179
180         * sparc.c (output_restore_regs): Prototype.
181         (sparc_emit_float_lib_cmp): Constification.
182
183         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
184
185         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
186         Prototype.
187
188         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
189         (get_value_hash, hash_rtx): Likewise.
190
191         * ssa.c (compute_conservative_reg_partition): Prototype.
192
193         * tree.c (mark_hash_entry): Prototype.
194
195 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
196
197         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
198         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
199         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
200
201         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
202         * objc/lang-specs.h: Likewise.
203
204 2000-04-03  Neil Booth  <NeilB@earthling.net>
205
206         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
207         and SYNTAX_ERROR2. Replace `' in messages with ''.
208         (op_to_str): Make re-entrant.
209         (_cpp_parse_expr): Implement new error macros. Use | rather
210         than || to logically or 2 boolean integers.  Simply expression
211         checking we have a left operand iff needed.
212
213 2000-04-03  Nick Clifton  <nickc@cygnus.com>
214
215         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
216
217 2000-04-03  Philip Blundell  <philb@gnu.org>
218
219         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
220
221 2000-04-03  Felix Lee  <flee@cygnus.com>
222
223         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
224         (run_shell): Use it. 
225
226 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
227
228         * Makefile.in (stmp-int-hdrs): Make include subdir here...
229         (stmp-fixproto): ...rather than here.
230
231 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
232
233         * pa.c (print_operand): Compute 'base' only inside the code paths
234         that use it.
235
236 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
237
238         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
239         CEIL_DIV_EXPR.
240
241 2000-04-03  Philipp Thomas  <pthomas@suse.de>
242
243         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
244
245 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
246
247         * Makefile.in (alias.o): Depend on $(TREE_H).
248
249 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
250
251         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
252         processing C++.
253         * cpplib.c (_cpp_handle_directive): Improve warnings for
254         traditional C and indented directives.
255
256         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
257         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
258         fixinc/inclhack.def: Indent the # of #include_next one space.
259         * cp/rtti.c: Un-indent #if and #endif.
260
261         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
262         syntax error, but an error has already been printed.
263         * cpplex.c (_cpp_parse_assertion): Give a more specific error
264         message when called with nothing remaining on the line.
265         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
266         OTHER token, not an ASSERTION.
267         * cpplib.c (do_assert): When we create a 'base' node, clear
268         its aschain pointer.
269
270 2000-04-02  Neil Booth <NeilB@earthling.net>
271
272         * cppexp.c:  New typedef op_t.  struct operation and struct 
273         token updated to use it.
274         (op_to_str): New function.
275         (_cpp_parse_expr): Error messages modified to use op_to_str.
276
277 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
278
279         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
280         before checking MUST_PASS_IN_STACK.
281
282 2000-04-02  Neil Booth <NeilB@earthling.net>
283
284         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
285         flags and initial priority into a single constant.  New
286         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
287         (_parse_cpp_expr): Implement new constants.  Take left operand
288         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
289         parse indicated by reducing FINISHED token.  Remove new lines
290         from cpp_error messages.
291
292 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
293
294         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
295         permanent obstack.
296
297 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
298
299         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
300         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
301         the strings and function names on the fly.  Take the #sccs
302         entry out of the table if SCCS_DIRECTIVE is not defined.
303         (_cpp_handle_directive): Decide if the # was at the beginning
304         of the line here.  Issue -pedantic warnings for extended
305         directives here.  Warn about K+R directives with the #
306         indented, and C89/extended directives with the # not indented,
307         here.
308         (do_import, do_include_next, do_warning, do_ident, do_sccs,
309         do_assert, do_unassert): Don't issue pedantic warning here.
310
311         * cpphash.h: Add CPP_WTRADITIONAL macro.
312         * cpplib.h (struct cpp_options): Rename warn_stringify to
313         warn_traditional; update comments.
314         * cppinit.c (handle_option): Set warn_traditional not
315         warn_stringify.
316         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
317         CPP_WTRADITIONAL (pfile).
318         * cpplex.c (_cpp_lex_token): Don't decide if directives should
319         be ignored in -traditional mode here.
320
321         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
322         to initialize speccase[] and trigraph_map[].  Delete all
323         references to pfile->input_speccase.  Always treat '?' as a
324         special character.  Remove table-initialization code from
325         _cpp_init_input_buffer.
326
327         * cpplib.h (struct cpp_reader): Remove input_speccase field.
328         * cppinit.c (cpp_cleanup): Don't free input_speccase.
329
330 2000-04-01  Richard Henderson  <rth@cygnus.com>
331
332         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
333         (mostlyclean): Likewise.
334
335         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
336         (struct dump_file_info, enum dump_file_index, dump_file): New.
337         (open_dump_file): Take a dump_file_index not a suffix, and a decl
338         not a string.  Clean out file if we havn't yet done so.  Do nothing
339         if the dump isn't enabled.
340         (close_dump_file): Do nothing if the dump isn't open.  Dump 
341         graph data if requested.
342         (dump_rtl, clean_dump_file): Remove.
343         (compile_file): Don't clean the dump files.  Only finalize .bp dump
344         if flag_test_coverage or flag_branch_probabilities.  Only finalize
345         .combine dump if optimizing.  Iterate over dump_file to finalize the
346         graph dumps.
347         (rest_of_compilation): Update for open_dump_file/close_dump_file.
348         Convert all uses of dump_rtl.
349         (decode_d_option): Iterate over dump_file to implement 'a' and to
350         locate pass-specific dumps.
351
352 2000-04-01  Neil Booth <NeilB@earthling.net>
353
354         * cppexp.c: Redefine priority constants.
355         (_cpp_parse_expr): Replace left and right priority scheme with
356         single priority logic.  Move LOGICAL to same place as COMPARE.
357         Remove bogus check for multiple unary +/- operators.
358
359 2000-04-01  Neil Booth <NeilB@earthling.net>
360
361         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
362         within the switch statement.  Binary operations break out of
363         the switch naturally.  '(' tokens handled by forcing
364         immediate shift.  ')' handled by forcing immediate reduce to
365         the previous '('.  New error messages.
366         
367 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
368
369         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
370         part', it's already in use.  Use %K instead.  Add a return at the
371         end of what is now %K.
372         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. 
373
374 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
375
376         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
377         allocate_dynamic_stack_space.
378         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
379         update stack_pointer_delta; do not update arg_size_so_far.
380         (compute_argument_block_size): Use stack_delta instead of
381         stack_pointer_pending and arg_size_so_far.
382         (expand_call): Add sanity checking for stack_pointer_delta;
383         save and restore stack_pointer_delta for SIB, use
384         stack_pointer_delta for alignment; do not update arg_space_so_far.
385         (emit_library_call_value): Use stack_pointer_delta for alignment.
386         (store_one_arg): Do not update arg_space_so_far.
387         * explow.c (adjust_stack, anti_adjust_stack): Update
388         stack_pointer_delta.
389         (allocate_dynamic_stack_space): Add sanity checking for
390         stack_pointer_delta.
391         * expr.c (init_expr, clear_pending_stack_adjust): Clear
392         stack_pointer_delta.
393         (emit_push_insn): Update stack_pointer_delta.
394         * function.h (struct expr_status): Add x_stack_pointer_delta;
395         remove x_arg_space_so_far.
396         (arg_space_so_far): Remove.
397         (stack_pointer_delta): New macro.
398
399 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
400
401         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
402         Reorder struct cpp_options and struct cpp_reader for better 
403         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
404         takes two args.  Change all 'char' flags to 'unsigned char'.
405         Move show_column flag into struct cpp_options.  Don't
406         prototype cpp_options_init.
407         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
408         cppinit.c, cpplex.c, cpplib.c:
409         Replace CPP_OPTIONS (pfile)->whatever with
410         CPP_OPTION (pfile, whatever), and likewise for
411         opts = CPP_OPTIONS (pfile); ... opts->whatever;
412
413         * cppinit.c (merge_include_chains): Take a cpp_reader *.
414         Extract CPP_OPTION (pfile, pending) and work with that
415         directly.
416         (cpp_options_init): Delete.
417         (cpp_reader_init): Turn on on-by-default options here.
418         Allocate the pending structure here.              
419         (cl_options, enum opt_code): Define these from the same table,
420         kept in a large macro.  Add -fshow-column and -fno-show-column
421         options.
422
423         * cpperror.c (v_message): If show_column is off, don't print
424         the column number.
425
426         * cppmain.c: Update for new interface.
427         * fix-header.c: Likewise.
428
429 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
430
431         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
432         definition.
433         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
434         are passed to any invocation of AR_FOR_TARGET.
435         (AR_CREATE_FOR_TARGET): New macro.
436         (AR_EXTRACT_FOR_TARGET): New macro.
437         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
438         AR_EXTRACT_FOR_TARGET.
439         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
440         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
441         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
442         AR_EXTRACT_FOR_TARGET to sub-makes.
443
444 2000-03-31  Neil Booth <NeilB@earthling.net>
445
446         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
447         PAREN_INNER_PRIO.
448         (_cpp_parse_expr): Check for multiple unary +/- operators.
449         Correct priorities of ':' and '?'.  Treat ')' as having a
450         value.  Ensure conditional expression is not void.
451         
452 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
453
454         * alias.c (canon_rtx): Make it global.
455         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
456         equality.
457         * cse.c (struct table_elt): Add canon_exp.
458         (insert): Clear it.
459         (invalidate): Canonicalize expressions only once.
460         * rtl.h (canon_rtx): Declare.
461
462 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
463
464         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
465         * alias.c (reg_known_value): Add comments.
466         (init_alias_analysis): Likewise.
467         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
468         address.
469         (cse_basic_block): Fix typo in comment.
470         * emit-rtl.c: Include hashtab.h.
471         (const_int_htab): New variable.
472         (const_int_htab_hash): New function.
473         (const_int_htab_eq): Likewise.
474         (rtx_htab_mark_1): Likewise.
475         (rtx_htab_mark): Likewise.
476         (gen_rtx_CONST_INT): Cache all CONST_INTs.
477         (unshare_all_rtx): Fix formatting.
478         (init_emit_once): Initialize const_int_htab.
479         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
480         address.
481         * rtl.texi: Document the fact that all CONST_INTs with the same
482         value are shared.
483
484 2000-03-30  Richard Henderson  <rth@cygnus.com>
485
486         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
487
488 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
489
490         * configure.in: Comment out --enable-c-cpplib stanza.
491         * configure: Regenerate.
492
493 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
494
495         * expr.c (store_constructor): Properly compute displacement and
496         alignment when offset is variable.
497
498         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
499         cases of alignment in bytes.
500
501 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
502
503         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
504         since it is used to generate c-parse.y.
505         * objc-parse.c, objc-parse.y: Regenerated.
506
507         * function.c (expand_function_end): Pass alignment argument to
508         emit_block_move in bits, not bytes.
509
510 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
511
512         * expr.c (move_by_pieces_ninsns): Fix one more missing align
513         correction.
514
515         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
516
517         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
518         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
519         * function.c (assign_parms): Likewise.
520         * integrate.c (expand_inline_function): Likewise.
521         * stmt.c (expand_decl): Likewise.
522         (copy_rtx_and_substitute): Likewise.
523         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
524         (clear_by_pieces): Fix error in last change.
525         * emit-rtl.c (init_emit): Set known registers alignment in bits.
526         * function.h (regno_pointer_align): Now unsigned.
527         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
528         is in bits.
529         * config/i386/i386.c (aligned_operand): Likewise.
530         * config/sparc/sparc.c (mem_min_alignment): Likewise.
531         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
532         (unaligned_memory_operand): Likewise.
533         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
534         Also make alignments and sizes unsigned and some whitespace cleanup.
535         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
536
537         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
538         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
539         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
540         (expand_builtin_memset): Likewise, but to clear_storage.
541         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
542         (restore_fixed_argument_area): Likewise.
543         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
544         (load_register_parameters): Likewise, to emit_group_load.
545         (expand_call): Likewise, to emit_group_store and emit_block_move.
546         (emit_library_call_value_1): Likewise, to emit_block_move.
547         (store_one_arg): Likewise, and to emit_push_insn.
548         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
549         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
550         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
551         (emit_block_move, emit_group_load, emit_group_store): Likewise.
552         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
553         (expand_assigment, store_expr, store_constructor_field): Likewise.
554         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
555         (store_constructor, store_field, get_inner_reference): Likewise.
556         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
557         (expand_expr, case COMPONENT_REF): Likewise.
558         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
559         and positions; reindent code.
560         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
561         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
562         (assign_parms): Likewise to emit_group_store.
563         * optabs.c (prepare_cmp_insn): Alignment is in bits.
564         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
565         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
566         (expand_return): Likewise to {extract,store}_bit_field.
567         * stor-layout.c (get_mode_alignment): Minor cleanup.
568         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
569         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
570         
571 2000-03-29  Nick Clifton  <nickc@cygnus.com>
572
573         * config/arm/arm.h: Undo effects of previous delta:
574         (ASM_SPEC): Do not define.
575         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
576
577         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
578         typo. 
579
580 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
581
582         * cppinit.c (cpp_start_read): Call initialize_dependency_output
583         only after reading in the primary source file.
584
585 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
586
587         * c-common.c (c_common_nodes_and_builtins): The first parameter to
588         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
589         or a reference to a va_list.
590         * builtins.c (stabilize_va_list): Simplify now we don't have to
591         work around C array address decay.
592         * c-typeck.c (convert_for_assignment): Handle assignment to
593         a reference parameter by taking the address of the RHS.
594         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
595         (va_copy): Likewise.
596         (__va_copy): Likewise.
597         * ginclude/varargs.h (va_start): Likewise.
598         (__va_copy): Likewise.
599
600 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
601
602         * i386/djgpp.h: Remove extraneous "+".
603
604         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
605
606         * calls.c (expand_call): Fix typo in last change.
607
608 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
609
610         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
611         been expanded.
612
613 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
614
615         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
616         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
617         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
618         * tree.c (bit_position, byte_position): Likewise.
619         * tree.h: Declare new functions.
620
621 2000-03-29  Nick Clifton  <nickc@cygnus.com>
622
623         * config/arm/arm.c: Minor formatting changes/
624         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
625         already defined.
626         (ASM_SPEC): Define if not already defined.
627
628 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
629
630         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
631         _cpp_calc_hash.
632
633 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
634
635         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
636         value, don't output it as unsigned.
637
638 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
639
640         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
641
642 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
643
644         * c-common.c (c_common_nodes_and_builtins): Don't special case
645         cplus_mode when declaring builtin bzero/bcmp, always avoid
646         prototype arguments.
647
648 2000-03-29  Bruce Korb  <bkorb@gnu.org>
649
650         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
651         to a non-file
652
653 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
654
655         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
656         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
657         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
658         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
659         (save_fixed_argument_area, restore_fixed_argument_area):
660         conditionize by #ifdef REG_PARM_STACK_SPACE only.
661         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
662         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
663         (precompute_register_parameters): Avoid #ifdefs on
664         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
665         (stire_one_args): Likewise.
666         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
667         (emit_library_call_value_1): Likewise.
668         (compute_argument_block_size): Align to STACK_BOUNDARY only for
669         ACCUMULATE_OUTGOING_ARGS.
670         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
671         value.
672         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
673         (use_crosses_set_p): Likewise.
674         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
675         #define ACCUMULATE_OUTGOING_ARGS 1.
676         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
677         frames.
678         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
679         constants.
680         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
681         (TARGET_SWITCHES): Add push-args, no-push-args,
682         accumulate-outgoing-args and no-accumulate-outgoing-args.
683         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
684         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
685         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
686         and PUSH_ROUNDING.
687         (emit_push_insn): Likewise.
688         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
689         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
690         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
691         (STACK_DYNAMIC_OFFSET): Define correctly for both
692         ACCUMULATE_OUTGOING_ARGS and normal mode.
693         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
694         * tm.texi (PUSH_ARGS): Document.
695         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
696
697 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
698
699         * flags.h (flag_optimize_sibling_calls): Declare.
700         * calls.c (expand_call): Fail sibcall when
701         !flag_optimize_sibling_calls
702         * invoke.texi (flag_optimize_sibling_calls): Document.
703         * toplev.c (flag_optimize_sibling_calls): New global variable.
704         (f_options): Add flag_optimize_sibling_calls.
705         (rest_of_compilation): Conditionize
706         optimize_sibling_and_tail_recursive_calls by
707         flag_optimize_sibling_calls.
708         (main): Set flag_optimize_sibling_calls for -O2.
709         * stmt.c (expand_return): Conditionize tail recursion by
710         flag_optimize_sibling_calls.
711
712 2000-03-29  Richard Henderson  <rth@cygnus.com>
713
714         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
715         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
716
717 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
718
719         * except.c (add_eh_table_entry): Mark type_info's as referenced.        
720
721 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
722
723         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
724         is given.
725         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
726         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
727         * config/rs6000/aix.h: then modified likewise.
728
729 2000-03-28  Richard Henderson  <rth@cygnus.com>
730
731         * rtl.h: Redistribute enum reg_note documentation. 
732         Kill trailing whitespace.
733         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
734         Kill trailing whitespace.
735
736 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
737
738         * cppfiles.c (hash_IHASH): Just return i->hash.
739         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
740         htab_find_with_hash.
741         (cpp_read_file): Likewise.
742         (find_include_file): Likewise.  Properly initialize
743         ih->nshort.  Share ih->name and ih->nshort if possible.
744         * cpphash.c (_cpp_calc_hash): New function.
745         (hash_HASHNODE): Just return h->hash.
746         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
747         htab_find_with_hash.
748         * cpphash.h: Prototype _cpp_calc_hash.
749         * cppinit.c (initialize_builtins): Provide a valid hash
750         to _cpp_make_hashnode, using _cpp_calc_hash.
751
752         * cpphash.c (collect_expansion): # is not a special character
753         in object-like macros.  In -traditional mode, /**/ is not
754         token paste at the beginning or end of the line.
755         * cpplib.c (do_include, do_import, do_include_next): If
756         parse_include fails, return immediately.
757
758 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
759
760         * config/arm/arm.md (return peepholes): Update to reflect the new
761         call insn patterns.
762         * config/arm/arm.c (arm_volatile_func): Also check
763         current_function_nothrow.
764         (output_return_instruction, output_func_prologue): Use it.
765         (arm_output_epilogue, arm_expand_prologue): Likewise.
766
767 2000-03-27  Tom Tromey  <tromey@cygnus.com>
768
769         * gcc.c (handle_braces): In {x*...} case, break out of loop if
770         switch is found.
771
772 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
773
774         * expr.c (store_constructor): SIZE now signed.
775         For EXPR_SIZE, don't evaluate size; just needed if constant.
776         * fold-const.c (fold): Fix a number of cases when folded tree is
777         wrong type.
778         * function.c (flush_addressof): Reenable.
779         * tree.h (flush_addressof): Likewise.
780         * toplev.c (independent_decode_option): Look at strings_processed.
781         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
782
783 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
784
785         * sibcall.c (indentify_call_return_value): Find last call in the chain;
786         Allow stack adjustment after function call.
787
788         * regmove.c (struct csa_memlist): Make mem field rtx *.
789         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
790         (try_apply_stack_adjustment): Replace whole MEM rtx.
791         (combine_stack_adjustments_for_block): Update calls
792         to record_one_stack_ref.
793
794 2000-03-28  Neil Booth  <NeilB@earthling.net>
795
796         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
797         '\\' rather than a null character, so nulls are not special.  Fix
798         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
799         speed trigraph conversion.
800         (_cpp_init_input_buffer): Initialize trigraph map.
801
802 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
803
804         * config/i386/i386.c (output_387_binary_op): Correct intel
805         mode assembly output, and add spaces after commas in AT&T
806         output.  Correct Unixware assembler comment.  Document input
807         constraints.  Comment fp operations.  Reduce profligate buffer
808         size.  Remove extraneous abort.  Localize temp var.
809         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
810         (output_fix_trunc): Add spaces after commas in assembly output.
811
812 2000-03-27  Richard Henderson  <rth@cygnus.com>
813
814         * i386-protos.h (ix86_match_ccmode): Declare.
815         * i386.c (ix86_match_ccmode): New.
816         (ix86_expand_fp_compare): Update for pattern renames.
817         (ix86_expand_strlensi_unroll_1): Likewise.
818         * i386.h (EXTRA_CC_MODES): Add CCZ.
819         (SELECT_CC_MODE): Use it for EQ/NE zero.
820         * i386.md (cmpsi_ccz_1): New.
821         (cmpqi_ccz_1): New.
822         (*testsi_ccz_1): New.
823         (testqi_ccz_1): New.
824         (cmpsi_ccno_1): Rename from cmpsi_0.
825         (testsi_ccno_1): Rename from testsi_1.
826         (testqi_ccno_1): Rename from testqi_1.
827         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
828         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
829         (*cmphi_0): Use ix86_match_ccmode.
830         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
831         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
832         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
833         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
834         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
835         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
836         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
837         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
838         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
839         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
840         (appropriate peepholes): Likewise.
841         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
842         (*subsi_3, *subhi_3, *subqi_3): Remove.
843         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
844         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
845         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
846         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
847         (x86_shift_adj_1): Use CCZ.
848         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
849
850 2000-03-27  Stan Cox  <scox@cygnus.com> 
851
852         * resource.h (mark_resource_type): New.
853         * resource.c (find_dead_or_set_registers, mark_target_live_regs, 
854         find_free_register): Use mark_resource_type.
855         (mark_set_resources): Change include_delayed_effects
856         to mark_resource_type.
857         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, 
858         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): 
859         Use mark_resource_type.
860         
861 2000-03-27  Richard Henderson  <rth@cygnus.com>
862
863         * i386.md (call_pop_0, call_value_pop_0): New.
864         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
865         (call_value_pop_1): Likewise.
866         (call_0, call_value_0): New.
867         (call_1, call_value_1): Remove constraint from unused arg.
868
869 2000-03-27  Nick Clifton  <nickc@cygnus.com>
870
871         * invoke.texi (Spec Files): Document new spec % command created by
872         Tom Tromey's recent patch.
873
874 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
875
876         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
877         if not defined.
878
879 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
880
881         * expr.c (expand_assignment): Fix typo in last change.
882
883         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
884
885 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
886
887         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
888         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
889         and DECL_INLINE if FUNCTION_DECL.
890         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
891         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
892         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
893         (combine_parm_decls): Likewise.
894         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
895         * print-tree.c (print_node): Likewise.
896         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
897         DECL_TRANSPARENT_UNION on proper decl types.
898         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
899         * stor-layout.c (layout_decl): Only check DECL_PACKED and
900         DECL_BIT_FIELD of FIELD_DECL.
901         * tree.h (DECL_RESULT_FLD): New macro.
902         
903         * expr.c (expand_assignment): Add code to handle variable-sized
904         BLKmode case.
905
906 2000-03-26  Richard Henderson  <rth@cygnus.com>
907
908         * calls.c (expand_call): Pass parms not original exp to
909         optimize_tail_recursion.  Mind return value instead of looking
910         for a barrier.
911         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
912         call_expr.  Move checks for call_expr and current_function_decl ...
913         (expand_return): ... here.
914
915 2000-03-26  Tom Tromey  <tromey@cygnus.com>
916
917         * gcc.c (handle_braces): Recognize `%{<S}' construct.
918         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
919         defines.
920         (process_command): Use them.
921         (check_live_switch): Likewise.
922         (give_switch): Skip ignored switches.
923
924 2000-03-26  Jan Hubicka  <jh@suse.cz>
925
926         * jump.c (jump_optimize_1): Fix typo in elide optimizations
927         for minimal jump pass test.
928
929 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
930
931         * integrate.c (function_cannot_inline_p): Do inline functions that
932         return `void'.
933
934 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
935
936         * stor-layout.c (layout_type, set_sizetype): early_type_list is
937         now a list of TREE_LIST entries, not types.
938         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
939
940         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
941         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
942         int_bit_position.
943         * config/mips/mips.c (function_arg): Likewise; also remove cast
944         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
945         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
946         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
947         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
948         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
949         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
950         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
951         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
952         num_adjusts now unsigned.
953         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
954         * config/sparc/sparc.c (struct function_arg_record_value_parms):
955         NREGS now unsigned.
956         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
957         as is BITPOS variable; use host_integerp and int_bit_position.
958         (function_arg_record_value_2): Likewise.
959         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
960         Variable REGNO now unsigned.
961         (function_arg_record_value): NREGS now unsigned.
962
963 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
964
965         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
966
967 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
968
969         * Rework fields used to describe positions of bitfields and
970         modify sizes to be unsigned and use HOST_WIDE_INT.
971         * alias.c (reg_known_value_size): Now unsigned.
972         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
973         (really_start_incremental_init): Use bitsize_zero_node.
974         (push_init_level, pop_init_level, output_init_element): Likewise.
975         Use bitsize_unit_node and bitsize_one_node.
976         (output_pending_init_elements, process_init_element): Likewise.
977         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
978         (make_extraction): Position and length HOST_WIDE_INT and unsigned
979         HOST_WIDE_INT, respectively.
980         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
981         (num_sign_bit_copies): Returns unsigned.
982         BITWIDTH now unsigned; rework arithmetic.
983         Remove recursive call from arg to MAX.
984         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
985         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
986         REGNO now unsigned.
987         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
988         (find_split_point, expand_compound_operation, make_extraction): LEN
989         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
990         (make_field_assignment): Likewise.
991         (combine_simplify_rtx): Add cast.
992         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
993         (force_to_mode): WIDTH now unsigned; add cast.
994         (if_then_else_cond): SIZE now unsigned.
995         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
996         (extended_count): Now returns unsigned.
997         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
998         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
999         (simplify_comparison): MODE_WIDTH now unsigned.
1000         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
1001         (mark_used_regs_combine): Likewise; rework arithmetic.
1002         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
1003         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
1004         (record_promoted_value): REGNO now unsigned.
1005         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
1006         (get_last_value): REGNO now unsigned.
1007         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
1008         (reg_dead_regno, reg_dead_endregno): Now unsigned.
1009         (remove_death): Arg REGNO now unsigned.
1010         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
1011         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
1012         now unsigned.
1013         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
1014         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
1015         (struct cse_reg_info): REGNO now unsigned.
1016         (cached_regno): Now unsigned.
1017         (REGNO_QTY_VALID_P): Add cast.
1018         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
1019         (remove_invalid_regs): Likewise.
1020         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
1021         as are variables END and I.
1022         (get_cse_reg_info, insert): Likewise.
1023         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
1024         (canon_hash): Likewise.
1025         (insert_regs, lookup_for_remove): REGNO now unsigned.
1026         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
1027         New variable RN.
1028         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
1029         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
1030         * emit-rtl.c (subreg_realpart_p): Add cast.
1031         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
1032         (operand_subword_force): Arg I is now unsigned.
1033         * except.c (eh_regs): Variable I is now unsigned.
1034         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
1035         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
1036         length is unsigned HOST_WIDE_INT; likewise for internal variables.
1037         (store_split_bit_field, extract_fixed_bit_field): Likewise.
1038         (extract_split_bit_field, store_bit_field, extract_bit_field):
1039         Likewise.
1040         * expr.c (store_constructor_fields, store_constructor, store_field):
1041         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
1042         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
1043         (do_jump): Likewise.
1044         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
1045         MAX_SIZE is now unsigned.
1046         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
1047         (emit_group_store): Likewise.
1048         (emit_move_insn): I now unsigned.
1049         (store_constructor): Use host_integerp, tree_low_cst, and
1050         bitsize_unit_node.
1051         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
1052         Rework all calculations to use trees and new fields.
1053         * expr.h (promoted_input_arg): Regno now unsigned.
1054         (store_bit_field, extract_bit_field): Adjust types of pos and size.
1055         (mark_seen_cases): Arg is HOST_WIDE_INT.
1056         * flow.c (verify_wide_reg_1): REGNO now unsigned.
1057         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
1058         precisions and alignments are unsigned.
1059         (optimize_bit_field_compare, fold_truthop): Likewise.
1060         (int_const_binop): Adjust threshold for size_int_type_wide call.
1061         (fold_convert): Likewise.
1062         (size_int_type_wide): Make table larger and fix thinko that only
1063         had half of table used.
1064         (all_ones_mask_p, fold): Precisions are unsigned.
1065         * function.c (put_reg_info_stack): REGNO is unsigned.
1066         (instantiate_decl): Size is HOST_WIDE_INT.
1067         (instantiate_virtual_regs): I is unsigned.
1068         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
1069         (promoted_input_arg): REGNO is unsigned.
1070         * function.h (struct function): x_max_parm_reg is now unsigned.
1071         * gcse.c (max_gcse_regno): Now unsigned.
1072         (struct null_pointer_info): min_reg and max_reg now unsigned.
1073         (lookup_set, next_set): REGNO arg now unsigned.
1074         (compute_hash_table): REGNO and I now unsigned.
1075         (handle_avail_expr): regnum_for_replacing now unsigned.
1076         (cprop_insn): REGNO now unsigned.
1077         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
1078         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
1079         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
1080         * hard-reg-set.h (reg_class_size): Now unsigned.
1081         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
1082         * jump.c (mark_modified_reg): I now unsigned; add cast.
1083         (rtx_equal_for_thread_p): Add cast.
1084         * loop.c (max_reg_before_loop): Now unsigned.
1085         (struct_movable): REGNO now unsigned.
1086         (try_copy_prop): REGNO arg unsigned.
1087         (regs_match_p): XN and YN now unsigned.
1088         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
1089         (strength_reduce): Likewise; NREGS also unsigned.
1090         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
1091         * loop.h (struct iv_class): REGNO now unsigned.
1092         (max_reg_before_loop, first_increment_giv, last_increment_giv):
1093         Now unsigned.
1094         * machmode.h (mode_size, mode_unit_size): Now unsigned.
1095         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
1096         * optabs.c (expand_binop): I and NWORDS now unsigned.
1097         (expand_unop): I now unsigned.
1098         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
1099         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
1100         * real.c (significand_size): Now returns unsigned.
1101         * real.h (significand_size): Likewise.
1102         * regclass.c (reg_class_size): Now unsigned.
1103         (choose_hard_reg_mode): Both operands now unsigned.
1104         (record_reg_classes): REGNO and NR now unsigned.
1105         (reg_scan): NREGS now unsigned.
1106         (reg_scan_update): old_max_regno now unsigned.
1107         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
1108         * reload.c (find_valid_class): BEST_SIZE now unsigned.
1109         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
1110         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
1111         Likewise for variable R.
1112         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
1113         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
1114         (find_equiv_reg): Add casts.
1115         (regno_clobbered_p): Arg REGNO now unsigned.
1116         * reload.h (struct reload): NREGS now unsigned.
1117         (refers_to_regno_for_reload_p): Regno args are unsigned.
1118         (regno_clobbered_p): Likewise.
1119         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
1120         (compute_use_by_pseudos): REGNO now unsigned.
1121         (find_reg): I and J now unsigned, new variable K, and change loop
1122         variables accordingly; THIS_NREGS now unsigned.
1123         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
1124         (spill_hard_reg): REGNO arg now unsigned; add casts.
1125         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
1126         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
1127         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
1128         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
1129         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
1130         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
1131         (emit_reload_insns): REGNO now unsigned.
1132         (reload_cse_move2add): Add cast.
1133         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
1134         and rework loop.
1135         * resource.c (mark_referenced_resources, mark_set_resources): New
1136         variable R; REGNO and LAST_REGNO now unsigned.
1137         (mark_target_live_regs): J and REGNO now unsigned.
1138         * rtl.c (mode_size, mode_unit_size): Now unsigned.
1139         * rtl.h (union rtunion_def): New field rtuint.
1140         (XCUINT): New macro.
1141         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
1142         (operand_subword, operand_subword_force): Word number is unsigned.
1143         (choose_hard_reg_mode): Operands are unsigned.
1144         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
1145         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
1146         (regno_use_in, combine_instructions, remove_death): Likewise.
1147         (reg_scan, reg_scan_update): Likewise.
1148         (extended_count): Return is unsigned.
1149         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
1150         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
1151         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
1152         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
1153         (reg_reg_last_1): FIRS and LAST now unsigned.
1154         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
1155         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
1156         now unsigned.
1157         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
1158         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
1159         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
1160         (replace_regs): Arg NREGS now unsigned.
1161         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
1162         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
1163         (simplify_binary_operation): Likewise.
1164         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
1165         THIS_LAST now unsigned.
1166         (cselib_record_set): Add cast.
1167         * ssa.c (ssa_max_reg_num): Now unsigned.
1168         (rename_block): REGNO now unsigned.
1169         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
1170         sizes now unsigned.
1171         (all_cases_count): Just return -1 not -2.
1172         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
1173         Rework tests to use trees whenever possible.
1174         Use host_integerp and tree_low_cst.
1175         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
1176         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
1177         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
1178         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
1179         (smallest_mode_for_size): Likewise.
1180         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
1181         KNOWN_ALIGN is now an alignment, so simplify code.
1182         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
1183         (start_record_layout): Renamed from new_record_layout_info.
1184         Update to new fields.
1185         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
1186         New functions.
1187         (place_union_field): Renamed from layout_union_field.
1188         Update to use new fields in rli.
1189         (place_field): Renamed from layout_field.
1190         Major rewrite to use new fields in rli; pass alignment to layout_decl.
1191         (finalize_record_size): Rework to use new fields in rli and handle
1192         union.
1193         (compute_record_mode): Rework to simplify and to use new DECL fields.
1194         (finalize_type_size): Make rounding more consistent.
1195         (finish_union_layout): Deleted.
1196         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
1197         (layout_type, case RECORD_TYPE): Call new function names.
1198         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
1199         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
1200         (get_best_mode): UNIT is now unsigned; remove casts.
1201         * tree.c (bit_position): Compute from new fields.
1202         (byte_position, int_byte_position): New functions.
1203         (print_type_hash_statistics): Cast to remove warning.
1204         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
1205         (build_index_type): Likewise; make subtype of sizetype.
1206         (build_index_2_type): Pass sizetype to build_range_type.
1207         (build_common_tree_nodes): Use size_int and bitsize_int to
1208         initialize nodes; add bitsize_{zero,one,unit}_node.
1209         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
1210         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
1211         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
1212         (DECL_FIELD_BITPOS): Deleted.
1213         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
1214         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
1215         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
1216         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
1217         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
1218         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
1219         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
1220         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
1221         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
1222         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
1223         (DECL_ALIGN): Adjust to new field in union.
1224         (DECL_OFFSET_ALIGN): New field.
1225         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
1226         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
1227         (union tree_decl): Add struct for both aligns.
1228         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
1229         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
1230         (struct record_layout_info): Rework fields to have offset
1231         alignment and byte and bit position.
1232         (start_record_layout, place_field): Renamed from old names.
1233         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
1234         (byte_position, int_byte_position): Likewise.
1235         (get_inner_reference): Change types of position and length.
1236         * unroll.c (unroll_loop): New variable R; use for some loops.
1237         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
1238         (calculate_giv_inc): Arg REGNO now unsigned.
1239         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
1240         * varasm.c (assemble_variable): Clean up handling of size using
1241         host_integerp and tree_low_cst.
1242         (decode_addr_const): Use byte, not bit, position.
1243         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
1244         use tree_low_cst and int_bit_position.
1245         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
1246         
1247 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
1248
1249         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
1250         (reorder_block_def): New members eff_head and eff_end.
1251         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
1252         (verify_insn_chain): New function.
1253         (skip_insns_between_block): Add code to skip deleted insns.
1254         Check for note before using.
1255         (chain_reorder_blocks): Replace calls to skip_insns_between_block
1256         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
1257         Check for note before using.
1258         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
1259         (fixup_reorder_chain): Restructure, clean up, defect removal.
1260         (reorder_basic_blocks): Remove last_insn and references to it.
1261         Moved insn chain verification code into a new function (see above).
1262         Delete defective code that sets last insn.
1263         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
1264         all blocks.
1265
1266 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1267
1268         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
1269
1270 2000-03-24  Richard Henderson  <rth@cygnus.com>
1271
1272         * tree.c (lang_safe_for_unsave): Remove.
1273         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
1274         allowing for two levels of unsafeness.  Remove lang hook.
1275         * tree.h: Update declarations.
1276         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
1277         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
1278         Always fail sibcalls when there are pending cleanups.
1279
1280 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
1281
1282         * flow.c (propagate_block): When we delete an ADDR_VEC,
1283         also delete the BARRIER following it if there is one.
1284
1285 2000-03-24  Richard Henderson  <rth@cygnus.com>
1286
1287         * builtins.c (expand_builtin_bzero): Convert `length' argument
1288         to sizetype.
1289
1290 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
1291
1292         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
1293         comparison if regno's are equal.
1294         * calls.c (initialize_argument_informat): Add ecf_flags argument.
1295         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
1296         (expand_call): Update caller.
1297         Avoid making a sibling call if argument size of the callee is larger
1298         than argument size of the caller.
1299         Call hard_function_value with outgoing set if in sibcall pass.
1300         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
1301
1302         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
1303         Change LEAF_REGISTERS from an array initializer to actual array
1304         identifier. Move static global variable into the function.
1305         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
1306         sequences for leaf functions.
1307         * global.c (global_alloc): Likewise.
1308         * tm.texi (LEAF_REGISTERS): Update documentation.
1309
1310         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
1311         TARGET_FLAT leaf disabling hack.
1312         (LEAF_REGISTERS): Changed from an array initializer to actual array
1313         identifier to avoid duplication and remove the above hack.
1314         (FUNCTION_OK_FOR_SIBCALL): Define.
1315         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
1316         always like call attribute.
1317         (eligible_for_sibcall_delay): New attribute.
1318         (sibcall): New delay type.
1319         (sibcall, sibcall_value, sibcall_epilogue): New expands.
1320         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
1321         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
1322         * config/sparc/sparc.c (sparc_leaf_regs): New array.
1323         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
1324         New functions.
1325         (output_function_epilogue): Move part of the code into
1326         output_restore_regs.
1327         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
1328         TYPE_SIBCALL.
1329         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
1330         prototypes.
1331
1332         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
1333         until infrastructure is finished.
1334
1335 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
1336
1337         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
1338         (save_parm_insns): Not here.
1339
1340 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1341
1342         * builtins.c (expand_builtin_bzero): New function.
1343         (expand_builtin): Handle bzero.
1344
1345         * builtins.def: Add BUILT_IN_BZERO.
1346
1347         * c-common.c (c_common_nodes_and_builtins): Provide builtin
1348         prototype & function for bzero.
1349
1350 2000-03-23  Michael Meissner  <meissner@redhat.com>
1351
1352         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
1353         change adding TARGET_FP to the TF floating point insns, except for
1354         trunctfsf2, which generates direct calls to truncdfsf2.
1355
1356 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
1357
1358         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
1359         try to protect against middle-end changes that break binary
1360         compatibility.
1361         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
1362
1363 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1364
1365         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
1366
1367 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1368
1369         * calls.c (expand_call): If TARGET is passed by reference and
1370         is readonly, write a CLOBBER.
1371
1372 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1373
1374         * builtins.c (expand_builtin): Handle bcmp.
1375
1376         * builtins.def: Add BUILT_IN_BCMP.
1377
1378         * c-common.c (c_common_nodes_and_builtins): Provide builtin
1379         prototype & function for bcmp.
1380
1381 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
1382
1383         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
1384         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
1385         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
1386
1387 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
1388
1389         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
1390         alternative when using -fp64 -gp32.
1391
1392 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
1393
1394         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
1395         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
1396         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
1397
1398         * frame.h (frame_state): Revert last change.
1399         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
1400         * libgcc2.c (throw_helper): Revert last change.
1401         
1402 2000-03-22  Richard Henderson  <rth@cygnus.com>
1403
1404         * stmt.c (expand_asm_operands): Don't promote the temporary.
1405
1406 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1407
1408         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
1409         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
1410           c_get_alias_set): Likewise.
1411         * c-decl.c (duplicate_decls): Likewise.
1412         * c-typeck.c (default_conversion,build_unary_op): Likewise.
1413         * calls.c (initialize_argument_information): Likewise.
1414         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
1415         Likewise.
1416         * dwarfout.c (decl_class_context,output_type): Likewise.
1417         * expr.c (get_inner_reference): Likewise.
1418         * fold-const.c (simple_operand_p,fold): Likewise.
1419         * function.c (aggregate_value_p): Likewise.
1420         * stmt.c (expand_asm_operands): Likewise.
1421         * varasm.c (named_section): Likewise.
1422
1423 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
1424
1425         Implement dwarf2 exception handling for the ARM.
1426         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
1427         (DWARF_FRAME_RETURN_COLUMN): Define.
1428         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
1429         REG_FRAME_RELATED_EXPR note.
1430         (emit_sfm): Likewise.
1431         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
1432         * dwarf2out.c (reg_save): Handle saving a register to itself.
1433         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
1434         * except.c (eh_regs): Don't use the static chain reg if it's
1435         callee-saved.
1436         * frame.h (frame_state): Add cfa_saved field.
1437         * frame.c (execute_cfa_insn): Set it.
1438         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in 
1439         the epilogue.
1440         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
1441         Now takes a parm.
1442         (instantiate_virtual_regs): Adjust.
1443         * tm.texi: Adjust.
1444         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
1445         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
1446         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
1447
1448         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
1449         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
1450
1451 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1452
1453         * builtins.def: New file.
1454
1455         * Makefile.in (TREE_H): Depend on builtins.def.
1456
1457         * builtins.c (built_in_names): Use builtins.def.
1458
1459         * tree.h (built_in_function): Likewise.
1460
1461 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
1462
1463         * tree.c (size_in_bytes): Return size_zero_node, not
1464         integer_zero_node.
1465
1466 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
1467
1468         * config/fp-bit.c (pack_d): Correct the case when a denormal
1469         is rounded up and stops being denormal.
1470
1471 2000-03-21  Richard Henderson  <rth@cygnus.com>
1472
1473         * config/alpha/alpha.c (function_arg): Check for void_type_node
1474         before using MUST_PASS_IN_STACK.
1475
1476 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
1477
1478         * regmove.c (combine_stack_adjustments_for_block): Check that
1479         the stack pointer is a valid memory address.
1480
1481 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
1482
1483         * calls.c: re-install Mar 16 emit_library_call merge.
1484
1485 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
1486
1487         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
1488         we cannot be sure that if reload_completed base register will
1489         be properly aligned.
1490
1491 2000-03-21  Richard Henderson  <rth@cygnus.com>
1492
1493         * flow.c (delete_block): Fix typo last change.
1494
1495 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
1496
1497         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
1498         not COMPLETE_TYPE_P, to check the type of the expression.
1499
1500 2000-03-21  Michael Meissner  <meissner@redhat.com>
1501
1502         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
1503         all floating point insns that just tested the macro
1504         TARGET_HAS_XFLOATING_LIBS.
1505         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
1506         used to only use the gprs.
1507
1508 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1509
1510         * tree.h (COMPLETE_TYPE_P): New macro.
1511         (COMPLETE_OR_VOID_TYPE_P): New macro.
1512         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
1513         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
1514         * c-aux-info.c (gen_type): Use them.
1515         * c-common.c (c_expand_expr_stmt): Likewise.
1516         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
1517         grokdeclarator, grokparms, finish_struct, start_function,
1518         store_parm_decls, combine_parm_decls): Likewise.
1519         * c-parse.y (cast_expr): Likewise.
1520         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
1521         c_size_in_bytes, c_alignof, build_component_ref,
1522         build_indirect_ref, build_array_ref, convert_arguments,
1523         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
1524         * calls.c (initialize_argument_information): Likewise.
1525         * convert.c (convert_to_integer): Likewise.
1526         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
1527         * dwarfout.c (location_or_const_value_attribute,
1528         output_enumeration_type_die, output_structure_type_die,
1529         output_union_type_die, output_type): Likewise.
1530         * expr.c (safe_from_p, expand_expr): Likewise.
1531         * function.c (assign_parms): Likewise.
1532         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
1533         * tree.c (build_array_type, build_function_type,
1534         build_method_type, build_offset_type, build_complex_type): Likewise.
1535         * c-parse.c, c-parse.h: Regenerated.
1536
1537 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1538
1539         * config/c4x/rtems.h: Include config/rtems.h.
1540
1541 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
1542
1543         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
1544         decl is a FUNCTION_DECL
1545
1546 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
1547
1548         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
1549         function uses output registers.  Don't save RP for leaf functions.
1550         Do save RP even if no epilogue.
1551         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
1552         (CALL_USED_REGISTERS): Unmark in registers.
1553         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
1554         to near the middle.
1555
1556 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
1557
1558         * config/rs6000/rs6000.md (bunordered): New expander.
1559         (bordered): New expander.
1560         (buneq): New expander.
1561         (bunge): New expander.
1562         (bungt): New expander.
1563         (bunle): New expander.
1564         (bunlt): New expander.
1565         (bltgt): New expander.
1566  
1567         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
1568         (ccr_bit_negated_p): New function.
1569         (print_operand): For %C, generate appropriate cror for UNEQ,
1570         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
1571
1572 2000-03-20  Andreas Jaeger  <aj@suse.de>
1573
1574         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
1575         warning.
1576
1577         * tree.h (safe_for_unsave): Prototype.
1578
1579 2000-03-20  Richard Henderson  <rth@cygnus.com>
1580
1581         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
1582         (combine_stack_adjustments_for_block): Don't allow sp references
1583         in the side of a set we're not fixing up.
1584         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
1585         after life_analysis.
1586
1587 2000-03-20  Richard Henderson  <rth@cygnus.com>
1588
1589         * calls.c (expand_call): Don't bother generating tail call
1590         sequences if there are pending cleanups.  Use
1591         expand_start_target_temps/expand_end_target_temps to elide
1592         cleanups created during sibcall expansion.
1593
1594 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
1595
1596         * configure.in: Set $IFS to a value if it doesn't already have one
1597         in the --enable-checking handling.
1598         * configure: Regenerate.
1599
1600 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1601
1602         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
1603         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
1604         Regenerated.
1605
1606 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
1607
1608         * jump.c (delete_noop_moves): Remove code attempting to
1609         combine stack adjustments.
1610
1611 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1612
1613         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
1614         * except.c (emit_cleanup_handler): Use them.
1615         (expand_end_all_catch): Likewise.
1616         * function.c (fixup_var_refs): Likewise.
1617         (expand_function_end): Clear catch_clauses_last.
1618         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
1619         * except.h (struct eh_status): New field x_catch_clauses_last.
1620         (catch_clauses_last): New define.
1621
1622         * Makefile.in (tree.o): Depend on HASHTAB_H.
1623         * tree.c: Include hashtab.h.
1624         (struct type_hash): Remove next field.
1625         (TYPE_HASH_SIZE): Remove.
1626         (TYPE_HASH_INITIAL_SIZE): New define.
1627         (type_hash_table): Change type to htab_t.
1628         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
1629         mark_hash_entry): New functions.
1630         (init_obstacks): Allocate type hash.
1631         (type_hash_lookup): Use htab functions.
1632         (type_hash_add, mark_type_hash): Likewise.
1633         (dump_tree_statistics): Call print_type_hash_statistics.
1634
1635 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1636
1637         * rs6000/t-aix41: New file.
1638
1639         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
1640
1641 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
1642
1643         * tm.texi (Driver): Fix typos and tweak entry for
1644         INCLUDE_DEFAULTS.
1645         Move misplaced STRUCT_FORCE_BLK entry ...
1646         (Storage Layout): ... to here.
1647         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
1648
1649 2000-03-19  Richard Henderson  <rth@cygnus.com>
1650
1651         * flow.c (delete_block): Delete the addr_vec along with the block.
1652         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
1653         reference labels.
1654
1655         * fold-const.c (extract_muldiv): Apply type check for defined
1656         overflow to multiply as well as divide.
1657
1658         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
1659
1660 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
1661
1662         * emit-rtl.c (remove_unncessary_notes): Check that all
1663         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
1664         associated NOTE_BLOCK.
1665         * function.h (identify_blocks): Update comments.
1666         (reorder_blocks): Declare.
1667         * function.c (identify_blocks): Don't take paramters.
1668         (reorder_blocks): Don't take parameters.
1669         * loop.h (find_loop_tree_blocks): Remove.
1670         (unroll_block_trees): Likewise.
1671         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
1672         reorder_blocks instead of unroll_block_trees.h
1673         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
1674         * stmt.c (find_loop_tree_blocks): Remove.
1675         (unroll_block_trees): Likewise.
1676         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
1677         in whole-function mode.
1678         * tree.h (reorder_blocks): Remove declaration.
1679
1680         * expr.c: Include intl.h.
1681         * Makefile.in (expr.o): Depend on intl.h.
1682         
1683 2000-03-18  Richard Henderson  <rth@cygnus.com>
1684
1685         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
1686
1687 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
1688
1689         * tree.h (tree_index): Remove enumerals for integer types.
1690         (integer_type_kind): New type.
1691         (integer_types): New variable.
1692         (char_type_node): Adjust.
1693         (signed_char_type_node): Likewise.
1694         (unsigned_char_type_node): Likewise.
1695         (short_integer_type_node): Likewise.
1696         (short_unsigned_type_node): Likewise.
1697         (integer_type_node): Likewise.
1698         (unsigned_type_node): Likewise.
1699         (long_integer_type_node): Likewise.
1700         (long_unsigned_type_node): Likewise.
1701         (long_long_integer_type_node): Likewise.
1702         (long_long_unsigned_type_node): Likewise.
1703         * tree.c (integer_types): New variable.
1704         (init_obstacks): Register it as a root.
1705
1706 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
1707
1708         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
1709         NEXT_INSN. Update last insn in chain.
1710
1711 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
1712
1713         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
1714         with TYPE_DECL_SUPPRESS_DEBUG set.
1715
1716 2000-03-18  Richard Henderson  <rth@cygnus.com>
1717
1718         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
1719
1720 2000-03-18  Richard Henderson  <rth@cygnus.com>
1721
1722         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
1723         care for HALF_PIC_P.
1724         (expander_call_insn_operand): Remove.
1725         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
1726         * i386.h (PREDICATE_CODES): Update.
1727         * i386.md (all call expanders): Remove predicates, remove special
1728         handling for half-pic.
1729         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
1730         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
1731         (sibcall_epilogue): New.
1732
1733 2000-03-17  Richard Henderson  <rth@cygnus.com>
1734
1735         * rtlanal.c (single_set): Reject if the parallel has anything
1736         except SET or USE or CLOBBER.
1737
1738 2000-03-17  Jeff Law  <law@cygnus.com>
1739             Richard Henderson  <rth@cygnus.com>
1740
1741         * Makefile.in (OBJS): Add sibcall.o.
1742         (sibcall.o): New.
1743         * sibcall.c: New file.
1744         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
1745         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
1746         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
1747         Emit sibcall patterns when requested.  Update all callers.
1748         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
1749         elimination seems feasable.
1750         * final.c (leaf_function_p): Sibling calls don't discount being
1751         a leaf function.
1752         * flow.c (HAVE_sibcall_epilogue): Provide default.
1753         (find_basic_blocks_1): Sibling calls don't throw.
1754         (make_edges): Make edge from sibling call to EXIT.
1755         (propagate_block): Don't remove sibcall_epilogue insns.
1756         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
1757         (sibcall_epilogue): New.
1758         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
1759         (identify_blocks_1): Likewise.  Break out from ...
1760         (identify_blocks): ... here.
1761         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
1762         (reorder_blocks): ... here.
1763         (init_function_for_compilation): Zap prologue/epilogue as varrays.
1764         (record_insns): Extend a varray instead of mallocing new memory.
1765         (contains): Read a varray not array of ints.
1766         (sibcall_epilogue_contains): New.
1767         (thread_prologue_and_epilogue_insns): Emit and record
1768         sibcall_epilogue patterns.
1769         (init_function_once): Allocate prologue/epilogue varrays.
1770         * genflags.c (gen_insn): Treat sibcall patterns as calls.
1771         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
1772         Broken out from ...
1773         (save_for_inline_nocopy): ... here.
1774         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. 
1775         Broken out from ...
1776         (expand_inline_function): ... here.
1777         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
1778         (subst_constants): Handle 'n' formats.
1779         * jump.c (jump_optimize_minimal): New.
1780         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
1781         optimizations if it's set.
1782         * rtl.c (copy_rtx): Do copy jump & call for insns.
1783         * rtl.h (struct rtx_def): Document use of jump and call for insns.
1784         (SIBLING_CALL_P): New.
1785         (sibcall_use_t): New.
1786         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
1787         Invoke optimize_sibling_and_tail_recursive_calls.
1788         * tree.c (lang_safe_for_unsave): New.
1789         (safe_for_unsave): New.
1790         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
1791
1792         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
1793         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
1794         (*sibcall_osf_1, *sibcall_value_osf_1): New.
1795
1796 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
1797
1798         * objc/objc-act.c (encode_method_prototype): Pass types, not
1799         PARM_DECLs, to int_size_in_bytes.
1800
1801 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
1802
1803         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
1804
1805         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
1806         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
1807
1808 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1809
1810         * Clean up usages of TREE_INT_CST_LOW.
1811         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
1812         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
1813         Regenerated.
1814         * c-tree.h (min_precision): Move declaration to here.
1815         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
1816         (build_unary_op, add_pending_init): Use bit_position.
1817         (pending_init_member, process_init_element): Likewise.
1818         (really_start_incremental_init, push_init_level, pop_init_level):
1819         Don't make copies of nodes or modify them in place, use consistent
1820         types when tracking positions, and use tree routines computations.
1821         (set_init_index, output_init_element): Likewise.
1822         (output_pending_init_elements, process_init_element): Likewise.
1823         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
1824         tree_low_cst and int_bit_position; also minor cleanup.
1825         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
1826         (print_cst_octal): Precision is unsigned.
1827         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
1828         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
1829         (simple_type_align_in_bits): Result is unsigned int.
1830         Use tree_int_low_cst and host_integerp.
1831         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
1832         (field_byte_offset): Result is HOST_WIDE_INT.
1833         Change types of internal variables so alignments are unsigned int,
1834         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
1835         Use host_integerp, tree_low_cst, and int_bit_position.
1836         (add_bit_offset_attribute): Likewise.
1837         (add_data_member_location_attribute): Use tree_cst_low.
1838         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
1839         (add_bit_size_attribute): Use tree_low_cst.
1840         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
1841         * dwarfout.c: Similar changes to dwarf2out.c.
1842         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
1843         * genoutput.c (n_occurences): Return -1 for null string.
1844         (strip_whitespace): Accept null string and make into function.
1845         (scan_operands): Reflect above changes.
1846         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
1847         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
1848         * ssa.c (rename_registers): Add missing cast of arg to bzero.
1849         * tree.c (int_size_in_bytes): Check for too big to represent.
1850         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
1851         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
1852         New declarations.
1853         (min_precision): Delete from here.
1854         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
1855         and int_bit_position.
1856         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
1857         (encode_method_def): Likewise.
1858         (build_ivar_list_initializer): Use int_bit_position.
1859         (generate_shared_structures): Convert size.
1860         (encode_type, encode_complete_bitfield): Use integer_zerop.
1861         (encode_bitfield): Use tree_low_cst and int_bit_position.
1862         
1863 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1864
1865         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
1866
1867 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1868
1869         * call.c (special_function_p): It is only malloc if it returns
1870         Pmode.
1871
1872 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1873
1874         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
1875         (C33_FLAG, TARGET_C3X): Add macros.
1876         (TARGET_SWITCHES): Add -m33 option.
1877         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
1878         
1879 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1880         
1881         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
1882         (PARALLEL_PACK_FLAG): Delete.
1883         (TARGET_SWITCHES): Update.
1884         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
1885
1886 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1887
1888         * fold-const.c (fold): Fix a few cases when the returned result
1889         is not of the same type as the input.
1890
1891 2000-03-16  Nick Clifton  <nickc@cygnus.com>
1892
1893         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
1894         warning.
1895
1896 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1897
1898         * libgcc2.h: Move prototypes above macros with the same name.
1899         Wrap some function prototypes in the conditional which indicates
1900         whether they are supported, i.e. "BITS_PER_UNIT == 8".
1901
1902 2000-03-16  Richard Henderson  <rth@cygnus.com>
1903
1904         * calls.c: Revert last two changes.
1905
1906 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
1907
1908         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
1909         has exponent 0 is a zero.
1910
1911         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
1912         HASH may already be nonzero.  Add code/mode into hash value
1913         immediately after repeat label.
1914         (cselib_lookup): Don't leave the hash table in an inconsistent
1915         state before a hash lookup operation.
1916
1917 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
1918
1919         * i386.md (all HI and QI mode non-move patterns):  Conditionize
1920         by TARGET_[HQ]IMODE_MATH.
1921         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
1922         x86_promote_qi_regs): Declare.
1923         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
1924         TARGET_PROMOTE_QI_REGS): New macros.
1925         (PROMOTE_MODE): New macro.
1926         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
1927         x86_promote_qi_regs): New global variables.
1928
1929 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
1930
1931         * calls.c (emit_library_call_value_1): Break out from ...; handle
1932         VOIDmode function calls too.
1933         (emit_library_call_value): ... here.
1934         (emit_library_call): Implement by calling emit_library_call_value_1.
1935
1936 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
1937
1938         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
1939         Update arg_space_so_far on stack adjustments.
1940         (emit_library_call, emit_library_call_value): Likewise; take into
1941         account arg_space_so_far and pending_stack_adjust when calculcating
1942         the boundary.
1943
1944 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
1945
1946         * flow.c: Move all basic block reordering code into its own file.
1947         (create_basic_block): Externalize.
1948         * bb-reorder.c: New file. Copy all basic block reordering code from
1949         flow.c to this file.
1950         (reorder_basic_blocks): Fix fencepost error in for-loop.
1951         (reorder_basic_blocks): Remove braces from single statement for-loops.
1952         * basic-block.h: Add declaration for create_basic_block.
1953         * Makefile.in: Add rules for bb-reorder.o.
1954
1955 2000-03-16  Neil Booth  <NeilB@earthling.net>
1956
1957         * cppinit.c (handle_option):  Implement #unassert directive
1958         as -A- command line option.
1959         (print_help):  Update.
1960         * cpptexi.c:  Update.
1961
1962 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
1963
1964         * md.texi (Standard Names): Document `jump'.
1965
1966 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
1967
1968         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
1969         gotos.
1970
1971 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
1972
1973         See the ChangeLog on the branch for more details.
1974         
1975         * configure.in: Merge in changes from newppc-branch.
1976         * configure: Regenerate.
1977         * config/rs6000/*: Merge in changes from newppc-branch.
1978         Also correct copyright notices.
1979
1980 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
1981
1982         * acconfig.h (HAVE_GAS_WEAK): New define.
1983         * configure.in (assembler weak support): Check for .weak support.
1984         * config.in, configure: Rebuilt.
1985         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
1986         HAVE_GAS_WEAK is defined.
1987
1988 2000-03-15  Nick Clifton  <nickc@cygnus.com>
1989
1990         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
1991         asm_fprintf().
1992
1993 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
1994
1995         * cppfiles.c (open_include_file): New function.
1996         (find_include_file, cpp_read_file): Use it.
1997
1998 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
1999
2000         * cpphash.c (dump_hash_helper): Take the slot, not the element.
2001
2002 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
2003
2004         * flow.c (verify_flow_info): Check for unconditional return.
2005
2006 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
2007
2008         * config/ia64/ia64.md (restore_stack_nonlocal): New.
2009         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
2010         (__ia64_restore_stack_nonlocal): New.
2011         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
2012
2013 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2014
2015         * cpphash.c (collect_formal_parameters): Do not complain about
2016         parameter names that just start with `__VA_ARGS__'.
2017
2018 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
2019
2020         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
2021         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
2022         * i386.c (pentiumpro_cost): Set mul cost to 4.
2023         (x86_use_movx): Set for PPro.
2024
2025 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
2026
2027         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
2028         STACK_BOUNDARY for empty frames now.
2029
2030 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
2031
2032         * stor-layout.c (layout_union): Remove.
2033         (layout_union_field): New function, split out from layout_union.
2034         (finish_union_layout): Likewise.
2035         (layout_field): Handle unions by calling layout_union_field.
2036         (finish_record_layout): Handle unions.
2037         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
2038         QUAL_UNION_TYPE handling.
2039
2040 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
2041
2042         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
2043         end of basic block is jump_insn, not barrier; use create_basic_block
2044         instead of creating basic block by hand.
2045
2046 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
2047
2048         * flow.c (reorder_basic_blocks): Account for barriers when writing
2049         over NEXT_INSN (last_bb->end).
2050         (verify_flow_info): Add check for missing barriers.
2051
2052 2000-03-14  Greg McGary  <gkm@gnu.org>
2053
2054         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
2055         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
2056         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
2057         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
2058         __unbounded, __unbounded__): New keywords.
2059         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
2060         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
2061         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
2062
2063 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
2064
2065         * cselib.h: New file.
2066         * alias.c: Include "cselib.h".
2067         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
2068         MEMs as two new arguments.
2069         (get_addr): New static function.
2070         (find_base_term): Handle VALUEs.
2071         (memrefs_conflict_p): Likewise.
2072         (true_dependence): Call get_addr on the addresses.
2073         Call fixed_scalar_and_varying_struct_p with addresses that have been
2074         passed through get_addr and canon_rtx.
2075         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
2076         with true_dependence.
2077         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
2078         * loop.c: Include "cselib.h".
2079         (load_mems): Process extended basic block that enters the loop with
2080         cselib.  Use that information to change initialization of the shadow
2081         register so that a constant equivalence is seen by later passes.
2082         * reload1.c: Include "cselib.h".
2083         (reload_cse_invalidate_regno): Delete function.
2084         (reload_cse_mem_conflict_p): Likewise.
2085         (reload_cse_invalidate_mem): Likewise.
2086         (reload_cse_invalidate_rtx): Likewise.
2087         (reload_cse_regno_equal_p): Likewise.
2088         (reload_cse_check_clobber): Likewise.
2089         (reload_cse_record_set): Likewise.
2090         (reg_values): Delete static variable.
2091         (invalidate_regno_rtx): Likewise.
2092         (reload_cse_delete_noop_set): New static function.
2093         (reload_cse_simplify): New static function, broken out of
2094         reload_cse_regs_1.
2095         (reload_cse_noop_set_p): Delete unused argument INSN.
2096         Just call rtx_equal_for_cselib_p on set source and destination.
2097         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
2098         reload_cse_delete_noop_set.  Delete code to keep track of values; use
2099         cselib functions instead.  Delete code to push/pop obstacks.
2100         (reload_cse_simplify_set): Use cselib to find equivalent values.
2101         Delete code to push/pop obstacks.
2102         (reload_cse_simplify_operands): Likewise.
2103         * rtl.def (VALUE): New rtx code.
2104         * rtl.h (union rtunion_def): New elt rt_cselib.
2105         (X0CSELIB, CSELIB_VAL_PTR): New macros.
2106         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
2107         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
2108         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
2109         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
2110         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
2111         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
2112         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
2113         cselib_record_set, cselib_record_sets): New static functions.
2114         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
2115         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
2116         references_value_p): New functions.
2117         (MAX_USELESS_VALUES, REG_VALUES): New macros.
2118         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
2119         n_useless_values, reg_values, callmem, cselib_obstack,
2120         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
2121         New static variables.
2122         * varray.h (union varray_data_tag): New elt te.
2123         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
2124         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
2125         dependencies.
2126
2127 2000-03-14  Nick Clifton  <nickc@cygnus.com>
2128
2129         * gcc.c (do_spec_1): Catch the case where %* is used in a
2130         substitution pattern, but it has not been initialised.
2131         Issue a meaningful error message if an unrecognised operator
2132         is encountered in a spec string.
2133
2134 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
2135
2136         * function.c (prepare_function_start): Correctly initialize
2137         cfun->stack_alignment_needed.
2138
2139 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
2140
2141         * cppfiles.c (find_include_file): Don't assume nshort is a
2142         substring of name.
2143
2144 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
2145
2146         * configure.in (hppa configurations): Add pa32-regs.h to the
2147         list of tm files as appropriate.
2148         * configure: Rebuilt.
2149         * pa.c (compute_frame_size): Remove explicit knowledge about FP
2150         register numbering.
2151         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
2152         (fmpyaddoperands, fmpysuboperands): Likewise.
2153         * pa.h: Remove various definitions which depend on knowing
2154         how registers are numbered.
2155         * pa32-regs.h: New file with PA32 register numbering specific
2156         definitions.
2157
2158 2000-03-14  Richard Henderson  <rth@cygnus.com>
2159
2160         * regmove.c (combine_stack_adjustments): New.
2161         (stack_memref_p, single_set_for_csa): New.
2162         (free_csa_memlist, record_one_stack_memref): New.
2163         (try_apply_stack_adjustment): New.
2164         (combine_stack_adjustments_for_block): New.
2165         * rtl.h (combine_stack_adjustments): Declare.
2166         * toplev.c (rest_of_compilation): Call it.
2167
2168         * i386.md: Revert 2000-01-16 change.
2169
2170 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2171
2172         * gccbug.in: Add web category, gcc specific classes.
2173
2174 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
2175
2176         * stor-layout.c (finalize_record_size): Fix typo.
2177
2178 2000-03-14  Stan Shebs  <shebs@apple.com>
2179
2180         * c-typeck.c (c_alignof): Error on incomplete types.
2181         * extend.texi (Alignment): Document this.
2182
2183 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
2184
2185         * cppfiles.c: Include mkdeps.h.
2186         (find_include_file, read_include_file): Remove _cpp_ prefix
2187         from name, make static.
2188         (_cpp_execute_include): New function, broken out of
2189         do_include.
2190
2191         * cpplib.c: Don't include mkdeps.h.
2192         (struct directive): Remove type field. Reorder entries.  The
2193         function takes only one argument.
2194         (struct if_stack): Make type field an int.
2195         (directive_table): Rename to dtable.  Generate it, the
2196         prototypes of the directive handlers, and the enum for the
2197         directive numbers, from a template macro.
2198         (do_ifndef, do_include_next, do_import): New functions.
2199         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
2200         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
2201         do_ident, do_assert, do_unassert, do_sccs): Take only one
2202         argument.
2203         (do_sccs): Define always, but alter behavior based on
2204         SCCS_DIRECTIVE.
2205         (_cpp_handle_directive, consider_directive_while_skipping):
2206         Restructure for new directive table layout.
2207
2208         (pass_thru_directive): Take a directive number, not a pointer
2209         to a struct directive.
2210         (parse_include): New function, broken out of do_include.
2211         (do_include, do_import, do_include_next): Use parse_include
2212         and _cpp_execute_include.
2213         (do_elif, do_else): Test for T_ELSE specifically when checking
2214         for #elif/#else after #else.
2215         (parse_ifdef): New function, broken out of do_ifdef.
2216         (validate_else): Expect a name arg without a leading #.
2217         (if_directive_name): Delete.
2218         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
2219         directive handlers with only one argument.
2220
2221         * cpphash.h: Update prototypes.
2222         (enum node_type): Remove entries for directives.
2223         * Makefile.in: Update dependencies.
2224
2225         * cpphash.c (dump_hash_helper): Only dump nodes of type
2226         T_MACRO.  Emit a newline after each definition.
2227
2228 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2229
2230         * gccbug.in: New file.
2231         * configure.in (all_outputs): Add gccbug.
2232         * Makefile.in (install-common): Install gccbug.
2233         (GCCBUG_INSTALL_NAME): New variable.
2234         * configure: Rebuilt.
2235         
2236 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
2237
2238         * function.c (put_var_into_stack): Use type_for_mode to calculate
2239         part_type.  Use MEM_SET_IN_STRUCT_P.
2240         * expr.c (store_field): Handle CONCAT.
2241         (store_constructor): Use fields_length.
2242         * tree.c (fields_length): New fn.
2243         * tree.h: Declare it.
2244
2245 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
2246
2247         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
2248         (cpplex.o): New target.
2249         * po/POTFILES.in: Add cpplex.c.
2250
2251         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
2252         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
2253         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
2254         skip_block_comment, skip_line_comment, skip_comment,
2255         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
2256         _cpp_parse_name, skip_string, parse_string,
2257         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
2258         _cpp_get_directive_token, find_position,
2259         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
2260         (maybe_macroexpand, _cpp_lex_token): New functions.
2261
2262         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
2263         parse_goto_mark): Delete.
2264         (_cpp_handle_eof): New function.
2265         (_cpp_handle_directive): Rename from handle_directive.
2266         (_cpp_output_line_command): Rename from output_line_command.
2267         (do_if, do_elif): Call _cpp_parse_expr directly.
2268         * cppfiles.c (_cpp_read_include_file): Don't call
2269         init_input_buffer here.
2270         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
2271         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
2272         here; pop the token_buffer and skip the rest of the line here.
2273         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
2274         here.
2275
2276         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
2277         Define here.
2278         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
2279         CPP_GOTO_MARK): New macros.
2280         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
2281         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
2282         _cpp_read_and_prescan, _cpp_init_input_buffer,
2283         _cpp_grow_token_buffer, _cpp_get_directive_token,
2284         _cpp_handle_directive, _cpp_handle_eof,
2285         _cpp_output_line_command): Prototype them here.
2286         * cpplib.h (enum cpp_token): Add CPP_MACRO.
2287         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
2288         quote_string, output_line_command): Remove.
2289
2290 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
2291
2292         * stmt.c (expand_end_case): RANGE may be signed, and when checking
2293         whether it is too large we must also verify that it isn't negative.
2294
2295 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
2296
2297         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
2298         (movsi_zero_liveg0): Remove.
2299         (movsf_insn_novis_liveg0): Remove.
2300         (negsi2): Remove.
2301         (negsi2_not_liveg0): Rename to negsi2.
2302         (one_cmplsi2): Remove.
2303         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
2304         (one_cmplsi2_liveg0): Remove.
2305         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
2306         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
2307         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
2308         (PREDICATE_CODES): Remove zero_operand.
2309         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
2310         TARGET_BROKEN_SAVERESTORE.
2311         (zero_operand): Remove.
2312         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
2313         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
2314         options.
2315         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
2316         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
2317         TARGET_BROKEN_SAVERESTORE): Remove.
2318         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
2319         Remove.
2320         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
2321         Remove.
2322         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
2323         Remove.
2324
2325         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
2326
2327 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
2328
2329         * cpplib.c (do_pragma_implementation): Fix off-by-one error
2330         truncating a string.  Don't assume tokens are nul terminated.
2331         Problem noted by Andreas Jaeger <aj@suse.de>
2332
2333 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
2334
2335         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
2336         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
2337         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
2338
2339 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
2340
2341         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
2342         STRUCTURE_SIZE_BOUNDARY.
2343
2344 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
2345
2346         * tree.h (record_layout_info_s): New structure.
2347         (record_layout_info): New type.
2348         (new_record_layout_info): New function.
2349         (layout_field): Likewise.
2350         (finish_record_layout): Likewise.
2351         * stor-layout.c (layout_record): Remove.
2352         (new_record_layout_info): New function.
2353         (layout_field): New function, broken out from layout_record.
2354         (finalize_record_size): Likewise.
2355         (compute_record_mode): Likewise.
2356         (finalize_type_size): New function, broken out from layout_type.
2357         (finish_record_layout): Likewise.
2358         (layout_type): Use them.
2359         
2360 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
2361
2362         * cpphash.c: Don't include version.h.
2363         (special_symbol) [case T_VERSION]: Look for the string in
2364         hp->value.cpval; don't use version_string.
2365         * cppinit.c (initialize_builtins): Set hp->value.cpval for
2366         __VERSION__ to version_string.
2367         * Makefile.in (cpphash.o): Update deps.
2368
2369 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
2370
2371         Convert cpplib to use libiberty/hashtab.c.
2372
2373         * cpplib.h (struct cpp_reader): Make hashtab and
2374         all_include_files of type 'struct htab *'.  Delete HASHSIZE
2375         and ALL_INCLUDE_HASHSIZE macros.
2376
2377         * cpphash.h: Update prototypes.
2378         (struct hashnode): Remove next, prev, and bucket_hdr members.
2379         Make length a size_t.  Add hash member.
2380         (struct ihash): Remove next member.  Add hash member.  Make
2381         name a flexible array member.
2382
2383         * cppfiles.c: Include hashtab.h.
2384         (include_hash): Delete.
2385         (IHASHSIZE): New macro.
2386         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
2387         (cpp_included): Do the hash lookup here.
2388         (_cpp_find_include_file): Rewrite.
2389         (cpp_read_file): Put the "fake" hash entry into the hash
2390         table.  Honor the control_macro, if it turns out we've seen
2391         the file before.  Don't push the buffer here.
2392         (_cpp_read_include_file): Push the buffer here.
2393         (OMODES): New macro.  Use it whenever we call open(2).
2394
2395         * cpphash.c: Include hashtab.h.
2396         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
2397         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
2398         _cpp_lookup_slot): New functions.
2399         (HASHSIZE): new macro.
2400         (hashf, _cpp_install, _cpp_delete_macro): Delete.
2401         (_cpp_lookup): Use hashtab.h routines.
2402
2403         * cppinit.c: Include hashtab.h.
2404         (cpp_reader_init): Call _cpp_init_macro_hash and
2405         _cpp_init_include_hash.  Don't allocate hashtab directly.
2406         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
2407         pfile->all_include_files.
2408         (initialize_builtins): Use _cpp_make_hashnode and
2409         htab_find_slot to add hash entries.
2410         (cpp_finish): Just call _cpp_dump_macro_hash.
2411         * cpplib.c: Include hashtab.h.
2412         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
2413         create hash entries.
2414         (do_pragma_poison, do_assert): Likewise.
2415         (do_include): Don't push the buffer here.  Don't increment
2416         system_include_depth unless _cpp_read_include_file succeeds.
2417         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
2418         or htab_remove_elt.
2419         (do_pragma_implementation): Use alloca to create copy.
2420
2421         * Makefile.in: Update dependencies.
2422
2423 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2424
2425         * cppinit.c (cl_directive_handler): More K&R fixing.
2426
2427 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
2428
2429         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
2430         STACK_BOUNDARY.
2431         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
2432
2433 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2434
2435         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
2436         Change from char[] to macros.
2437
2438 2000-03-12  Neil Booth  <NeilB@earthling.net>
2439
2440         * cppinit.c (cpp_start_read): Update indirect function
2441         call to K&R C.
2442
2443 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
2444
2445         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
2446         entry.
2447
2448         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
2449         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
2450
2451 2000-03-11  Neil Booth  <NeilB@earthling.net>
2452
2453         * cppinit.c (struct pending option): Replace undef with a 
2454         pointer to a directive handling routine.
2455         (struct cpp_pending): Replace separate assert_ and define_ 
2456         lists with one directive_ list.
2457         (new_pending_define): Rename new_pending_directive. Extra
2458         argument is the directive's handling routine.
2459         (handle_option): Update to use new_pending_directive.
2460
2461 2000-03-11  Neil Booth  <NeilB@earthling.net>
2462
2463         * cppfiles.c (file_cleanup, _cpp_find_include_file,
2464         remap_filename, _cpp_read_include_file, actual_directory,
2465         hack_vms_include_specification): Replace bcopy(), index() etc
2466         calls.  Add casts to some allocations.  Make some variables
2467         pointers to const [unsigned] char.
2468         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
2469         collect_formal_parameters): Similarly.
2470         * cppinit.c (struct pending_option, append_include_chain,
2471         cpp_options_init, cpp_reader_init, initialize_standard_includes,
2472         cpp_start_read, new_pending_define, handle_option): Similarly.
2473         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
2474         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
2475         do_pragma_implementation, detect_if_not_defined,
2476         do_ifdef, skip_if_group, cpp_get_token, parse_string,
2477         do_assert, do_unassert): Similarly.
2478         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
2479         function prototypes.
2480         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.   
2481
2482 2000-03-10  Richard Henderson  <rth@cygnus.com>
2483
2484         * builtins.c (expand_builtin_strlen): Revert last change.
2485         Use emit_insn_before if we're at the beginning of a sequence.
2486
2487 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
2488
2489         * builtins.c (expand_builtin_strlen): Make sure that we have something
2490         at the beginning of the sequence.
2491
2492         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
2493         deferred inlines.
2494
2495         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
2496
2497 2000-03-10  Richard Henderson  <rth@cygnus.com>
2498
2499         * except.c (can_throw): Use INTVAL on a CONST_INT.
2500         (reachable_handlers): Likewise.
2501         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
2502
2503 2000-03-10  Andreas Jaeger  <aj@suse.de>
2504
2505         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
2506         MD_STARTFILE_PREFIX since those are not needed on linux.
2507         (ASM_FILE_START): New, from mips/gnu.h.
2508
2509 2000-03-09  Richard Henderson  <rth@cygnus.com>
2510             Alex Samuel  <samuel@codesourcery.com> and others
2511         
2512         * Makefile.in (ssa.o): New rule.
2513         (OBJS): Add ssa.o.
2514         (STAGESTUFF): Add *.ssa and *.ussa.
2515         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
2516         * rtl.def (PHI): New RTL expression.
2517         * rtl.h (clear_log_links): New declaration.
2518         (convert_to_ssa): Likewise.
2519         (convert_from_ssa): Likewise.
2520         * flow.c (split_edge): If the entry node falls through to the
2521         split edge's source block, split the entry edge.
2522         (clear_log_links): New function.
2523         * toplev.c (ssa_dump): New variable.
2524         (flag_ssa): Likewise.
2525         (f_options): Add "ssa".
2526         (compile_file): Create SSA dump files.
2527         (rest_of_compilation): Go to and from SSA if enabled.
2528         (decide_d_option): Handle -de for SSA dump files.
2529         * ssa.c: New file.
2530         
2531 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
2532
2533         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
2534         same as VAR_DECL.
2535
2536 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
2537
2538         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
2539
2540 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
2541
2542         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
2543         (MD_STARTFILE_PREFIX_1): New macro.
2544
2545 2000-03-09  Robert Lipe  <robertl@sco.com>
2546
2547         * config/ia64/ia64.c: Include system.h.
2548
2549 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
2550
2551         * except.c (nothrow_function_p): If -fno-exceptions, just return.
2552         (init_eh_nesting_info): Likewise.
2553
2554         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
2555         (TREE_NOTHROW): Rename from TREE_RAISES.
2556         * toplev.c (rest_of_compilation): Set it.
2557         * print-tree.c (print_node): Adjust.
2558         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
2559         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
2560         * calls.c (emit_call_1): Add 'nothrow' parm.  Add 
2561         REG_EH_REGION note as appropriate.
2562         (libfunc_nothrow): New fn.
2563         (emit_library_call, emit_library_call_value): Use it.
2564         (expand_call): Check TREE_NOTHROW.
2565
2566         * varasm.c (make_decl_rtl): Skip initial '*' when setting
2567         DECL_ASSEMBLER_NAME.
2568
2569 2000-03-09  Andreas Jaeger  <aj@suse.de>
2570
2571         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
2572         (TARGET_MEM_FUNCTIONS): Define.
2573
2574 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
2575
2576         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
2577
2578         * except.c (can_throw): See through a SEQUENCE.
2579         (nothrow_function_p): New fn.
2580         * except.h: Declare it.
2581         * function.c (current_function_nothrow): New var.
2582         (prepare_function_start): Initialize it.
2583         * output.h: Declare it.
2584         * toplev.c (rest_of_compilation): Set it.
2585         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
2586
2587 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
2588
2589         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
2590         match.  (cpp_compare_defs): Count the nul separator when
2591         advancing over argument names.
2592
2593 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
2594
2595         * recog.c (preprocess_constraints): Matching constraints affect
2596         same alternative/different operand, not same operand/different
2597         alternative.
2598         
2599         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
2600         register and a constant specially.
2601
2602 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2603
2604         * libgcc2.h: New file.
2605         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
2606
2607 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
2608
2609         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
2610         * configure: Regenerate.
2611         * config/ia64: New.
2612
2613 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
2614
2615         * Makefile.in (LIBCPP_DEPS): New macro.
2616         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
2617         it to declare deps.
2618         * cpperror.c: Include cpphash.h.
2619         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
2620         dingleberry.
2621         (lex): Don't use CPP_WARN_UNDEF.
2622         (_cpp_parse_expr): Return an int, the truth value.
2623         * cppfiles.c: Include cpphash.h.
2624         (_cpp_merge_include_chains): Move to cppinit.c and make static.
2625         * cppinit.c (include_defaults_array): Disentangle.
2626         (cpp_cleanup): Don't free the if stack here.
2627         (cpp_finish): Pop off all buffers, not just one.
2628         * cpplib.c (eval_if_expr): Return int.
2629         (do_xifdef): Rename do_ifdef.
2630         (handle_directive): Don't use CPP_PREPROCESSED. 
2631         (cpp_get_token): Don't use CPP_C89.
2632         * fix-header.c: Don't use CPP_OPTIONS.
2633
2634         * cpplib.h: Move U_CHAR, enum node_type, struct
2635         file_name_list, struct ihash, is_idchar, is_idstart,
2636         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
2637         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
2638         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
2639         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
2640         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
2641         of _cpp_simplify_pathname, _cpp_find_include_file,
2642         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
2643         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
2644         cppinit.c.
2645         Change all uses of U_CHAR to be unsigned char instead.
2646         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
2647
2648 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
2649
2650         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
2651         (dwarf2out_begin_prologue): Set it.
2652         (output_call_frame_info): Don't emit EH unwind info for leaves.
2653
2654         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
2655         can occur outside of an EH region.
2656         * except.c: Correct comments about rethrow behavior.
2657         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
2658
2659 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
2660
2661         * flow.c (make_edges): Always call make_eh_edge for calls.
2662
2663 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
2664
2665         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
2666         (struct cpp_buffer): Remove fname and underflow fields.
2667         (struct cpp_reader): Remove get_token field.
2668         (struct include_hash): Rename to struct ihash.  Add typedef to
2669         IHASH.
2670         (struct if_stack): Remove fname field.
2671         (IF_STACK_FRAME): Rename to IF_STACK.
2672
2673         * cpperror.c (print_containing_files): Trust that there are no
2674         macro buffers below the top file buffer.
2675         * cppfiles.c: Replace all references to 'struct include_hash'
2676         with 'IHASH'.  Rename initialize_input_buffer to
2677         init_input_buffer.  Don't set or reference cpp_buffer->fname,
2678         use buffer->ihash->name instead.
2679         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
2680         not CPP_NULL_BUFFER.
2681         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
2682         IF_STACK_FRAME, IHASH not struct include_hash.
2683         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
2684         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
2685         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
2686         references to cpp_buffer->fname (delete entirely, or use
2687         ->ihash->name instead) and IF_STACK->fname.
2688         (cpp_push_buffer): Don't set new->underflow.
2689         (do_include): Use cpp_file_buffer.
2690
2691         * cpphash.c (collect_formal_parameters): Remove duplicate
2692         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
2693         used as a macro argument name.  Don't append "..." to namebuf
2694         for varargs macros.  After we're done scanning, go through
2695         namebuf and make it NUL separated, not comma separated.
2696         (_cpp_compare_defs): Remove register tag from variables.
2697         Expect defn->argnames to be NUL separated.
2698         (_cpp_dump_definition): Expect defn->argnames to be NUL
2699         separated and in forward order.
2700         * cpphash.h: Update documentation of argnames field.
2701
2702 2000-03-08  Richard Henderson  <rth@cygnus.com>
2703
2704         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
2705         to fail.  Don't pre-expand the source operand.
2706
2707         * i386.md (strlensi): Initialize eoschar and align before use.
2708
2709 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
2710
2711         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
2712         CONSTRUCTOR element.
2713
2714 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
2715
2716         * mips.c (mips_expand_prologue): If the last 
2717         named argument is the vararg marker "va_list", treat it as
2718         an unnamed argument.
2719
2720 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
2721
2722         * dbxout.c (dbxout_parms): When correcting for promoted 
2723         big-endian parameters, use the mode of the DECL_RTL rather 
2724         than UNITS_PER_WORD.
2725
2726 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
2727
2728         * c-common.h (make_fname_decl): Declare.
2729         * c-common.c (make_fname_decl): Define.
2730         (declare_hidden_char_array): Remove.
2731         (declare_function_name): Use make_fname_decl.
2732         * c-decl.c (c_make_fname_decl): New function.
2733         (init_decl_processing): Set make_fname_decl.
2734
2735 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
2736
2737         * cccp.c (handle_directive): Initialize backslash_newlines_p.
2738
2739 2000-03-07  Philipp Thomas  <pthomas@suse.de>
2740
2741         * po/POTFILES.in: Remove cppalloc.c from file list.
2742
2743 2000-03-07  Steve Chamberlain  <sac@pobox.com>
2744
2745         * pj.c (pj_expand_prologue): current_function->args_info is
2746         now current_function_args_info.  
2747
2748         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
2749         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
2750         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
2751
2752 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2753
2754         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
2755         output as hexadecimal rather than the default octal.
2756
2757 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
2758
2759         * cpphash.c (special_symbol): Fix thinko in previous commit.
2760
2761 2000-03-07  Neil Booth  <NeilB@earthling.net>
2762
2763         * cppexp.c (struct operation, left_shift, right_shift,
2764         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
2765         "int"s to "unsigned int"s.
2766         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
2767         Similarly.
2768         * cpplib.h: Update for above.
2769         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
2770         returned from allocations.
2771
2772         * cppinit.c (opt_comp, parse_options): New functions.
2773         (handle_option): Use parse_option to parse a single command
2774         line option, that possibly takes an argument.
2775         (cpp_handle_options): Sort the array of command line options on
2776         first invocation (non-ASCII hosts only).
2777         (print_help): Update.
2778
2779 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
2780
2781         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
2782         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
2783         
2784         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
2785         initialized.
2786         * cppinit.c (cpp_cleanup): Free imp->nshort also.
2787
2788         * cpperror.c (cpp_print_containing_files,
2789         cpp_print_file_and_line, v_cpp_message): Rename to
2790         print_containing_files, print_file_and_line, and v_message.
2791         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
2792         to _cpp_parse_expr, parse_escape, and lex.
2793         (parse_charconst): Remove broken multibyte support.
2794         * cppfiles.c (include_hash): Make static.
2795         (cpp_included): New function.
2796         (merge_include_chains, find_include_file, finclude,
2797         simplify_pathname): Rename to _cpp_merge_include_chains,
2798         _cpp_find_include_file, _cpp_read_include_file, and
2799         _cpp_simplify_pathname.
2800         * cpphash.c (cpp_lookup, free_definition, delete_macro,
2801         cpp_install, create_definition, macroexpand, compare_defs,
2802         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
2803         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
2804         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
2805         * cppinit.c (cpp_handle_option): Rename to handle_option, make
2806         static.
2807         * cpplib.c: Remove extern prototype of cpp_parse_expr.
2808
2809         * cpphash.h: Update prototypes.
2810         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
2811
2812 2000-03-07  Andrew Haley  <aph@cygnus.com>
2813
2814         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
2815         PTRDIFF_TYPE should be based solely on Pmode.
2816         (SIZE_TYPE): ditto.
2817
2818 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2819
2820         * rtl.h (rtunion_def): Constify member `rtstr'.
2821         (emit_line_note_after, emit_line_note, emit_line_note_force,
2822         emit_note, decode_asm_operands): Constify.
2823         
2824         * cse.c (canon_hash): Likewise.
2825
2826         * dbxout.c (dbxout_block): Likewise.
2827
2828         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
2829         v_warning_for_asm): Likewise.
2830
2831         * dwarfout.c (function_start_label): Likewise.
2832
2833         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
2834         emit_line_note_force): Likewise.
2835
2836         * final.c (last_filename, asm_insn_count, final_scan_insn,
2837         output_source_line): Likewise.
2838
2839         * function.h (struct emit_status): Likewise.
2840
2841         * gcse.c (hash_expr_1): Likewise.
2842
2843         * genattr.c (gen_attr, main): Likewise.
2844
2845         * genattrtab.c (struct function_unit, current_alternative_string,
2846         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
2847         attr_numeral, check_attr_test, check_attr_value,
2848         convert_set_attr_alternative, convert_set_attr,
2849         compute_alternative_mask, simplify_by_exploding, gen_attr,
2850         gen_unit): Likewise.
2851
2852         * genflags.c (gen_insn): Likewise.
2853
2854         * gengenrtl.c (type_from_format): Likewise.
2855
2856         * genopinit.c (gen_insn): Likewise.
2857
2858         * genoutput.c (n_occurrences, process_template, process_template):
2859         Likewise.
2860
2861         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
2862         Likewise.
2863
2864         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
2865         Likewise.
2866
2867         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
2868         ggc_set_mark, ggc_get_size): Likewise.
2869
2870         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
2871
2872         * optabs.c (init_one_libfunc): Likewise.
2873
2874         * output.h (assemble_start_function): Likewise.
2875
2876         * recog.c (decode_asm_operands): Likewise.
2877
2878         * toplev.c (rest_of_compilation): Likewise.
2879
2880         * tree.h (emit_line_note_after, emit_line_note,
2881         emit_line_note_force): Likewise.
2882
2883         * varasm.c (asm_output_bss, asm_output_aligned_bss,
2884         asm_emit_uninitialised, assemble_start_function,
2885         assemble_variable, const_hash, compare_constant_1,
2886         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
2887
2888         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
2889
2890         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
2891
2892         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
2893
2894         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
2895
2896         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
2897         arm_dllimport_name_p): Likewise.
2898
2899         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
2900         Likewise.
2901
2902         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
2903
2904         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2905
2906         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
2907         arm_mark_dllexport, arm_mark_dllimport,
2908         arm_pe_encode_section_info): Likewise.
2909
2910         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
2911         ASM_FINISH_DECLARE_OBJECT): Likewise.
2912
2913         * arm/thumb.c (thumb_function_prologue): Likewise.
2914
2915         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
2916
2917         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2918
2919         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
2920
2921         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
2922
2923         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
2924
2925         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2926
2927         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
2928         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
2929
2930         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
2931
2932         * i386/i386.c (asm_output_function_prefix): Likewise.
2933
2934         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
2935
2936         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2937
2938         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
2939
2940         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
2941         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
2942         ASM_OUTPUT_SECTION_NAME): Likewise.
2943
2944         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
2945
2946         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
2947
2948         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
2949
2950         * m32r/m32r.c (m32r_encode_section_info): Likewise.
2951
2952         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2953
2954         * mcore/mcore.c (mcore_encode_section_info): Likewise.
2955
2956         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2957
2958         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2959
2960         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2961
2962         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
2963
2964         * mips/mips.md (movdi, movsi): Likewise.
2965
2966         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2967
2968         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2969
2970         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2971
2972         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
2973         ASM_OUTPUT_ASCII): Likewise.
2974
2975         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
2976         output_mi_thunk, output_toc): Likewise.
2977
2978         * rs6000/rs6000.md (movsi): Likewise.
2979
2980         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
2981
2982         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
2983
2984         * v850/v850.c (print_operand, print_operand_address,
2985         v850_encode_data_area): Likewise.
2986
2987 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
2988         
2989         * config/mips/mips.md (zero_extendsidi2): Always force operand
2990         one to memory for mips16.
2991
2992 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2993
2994         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
2995         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
2996         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
2997         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
2998         (min_precision): Result is unsigned.
2999         (add_double, neg_double, mul_double): Low word is unsigned.
3000         (lshift_double, rshift_double, lrotate_double): Likewise.
3001         (rrotate_double, div_and_round_double): Likewise.
3002         (tree_floor_log2, compare_tree_int): New functions.
3003         (preserve_rtl_expr_temps): New declaration.
3004         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
3005         (decl_attributes): Use tree_log2 to find alignment.
3006         Check for TREE_INT_CST_HIGH for format args.
3007         (min_precision): Now unsigned.
3008         Use tree_floor_log2.
3009         (truthvalue_conversion): Delete long-disabled code.
3010         * c-decl.c (finish_struct): Clean up tests on field width.
3011         (finish_function): Use compare_tree_int.
3012         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
3013         * c-typeck.c (comptypes): Use tree_int_cst_equal.
3014         (default_conversion, digest_init): Use compare_tree_int.
3015         (build_binary_op): Use integer_all_onesp and compare_tree_int.
3016         Fix type errors in forming masks.
3017         * calls.c (initialize_argument_information): Use compare_tree_int.
3018         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
3019         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
3020         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
3021         (store_field): Use compare_tree_int.
3022         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
3023         (expand_expr, case ARRAY_REF): Use compare_tree_int.
3024         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
3025         (do_store_flag): Use compare_tree_int.
3026         * fold-const.c (encode, decode): Low part is always unsigned.
3027         (force_fit_type, add_double, neg_double, mul_double): Likewise.
3028         (lshift_double, rshift_double, lrotate_double): Likewise.
3029         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
3030         (fold_convert): Use compare_tree_int.
3031         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
3032         (invert_truthvalue, case INTEGER_CST): Likewise.
3033         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
3034         * mkdeps.c (deps_dummy_targets): Make I unsigned.
3035         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
3036         (lshift_double, rshift_double, lrotate_double, rrotate_double):
3037         Likewise.
3038         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
3039         (expand_end_case): Use compare_tree_int.
3040         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
3041         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
3042         (layout_decl): Likewise.
3043         (layout_record, layout_union): Make sizes unsigned.
3044         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
3045         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
3046         * tree.c (struct type_hash): hashcode is unsigned.
3047         (build_type_attribute_variant, type_hash_list): Likewise.
3048         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
3049         (attribute_hash_list, build_array_type, build_method_type): Likewise.
3050         (build_complex_type): Likewise.
3051         (real_value_from_int_cst): Remove unneeded casts.
3052         (integer_all_onesp): Add casts.
3053         (tree_floor_log2, compare_tree_int): New functions.
3054         (build_index_type): Use tree_int_cst_sgn.
3055         * varasm.c (assemble_variable): Use compare_tree_int.
3056
3057 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
3058
3059         * cpphash.c (collect_expansion): Also catch ## at start of macro.
3060
3061         * varasm.c (make_decl_rtl): Don't add a number to members of
3062         local classes.
3063         (make_function_rtl): Likewise.
3064
3065 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3066
3067         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
3068         patch from 2000-01-28.
3069
3070 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
3071
3072         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
3073         filled with an insn from the jump target.
3074
3075 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3076
3077         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
3078         (c4x_external_ref): Likewise.
3079         * config/c4x/c4x.c (struct name_list): Likewise.
3080
3081 1999-12-16  Ben Collins  <bcollins@debian.org>
3082
3083         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
3084         argument to genmultilib.
3085         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
3086         the contents into the multilib.h header.
3087         * gcc.c: Declare multilib_exclusions for the specs file.
3088         (set_multilib_dir): Use it.
3089         (print_multilib_info): Likewise.
3090         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
3091         to pass to genmultilib.
3092
3093 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3094
3095         * builtins.c (built_in_class_names, built_in_names): Constify a
3096         char*.
3097
3098         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
3099         int.
3100         (_mcleanup): Ensure value matches format specifier in sprintf.
3101
3102         * cpphash.c (special_symbol): Don't needlessly cast away
3103         const-ness.
3104
3105         * cppinit.c (base_name): Delete unused prototype.
3106
3107         * mkdeps.c (deps_init): Make definition K&R safe.
3108
3109         * tree.h (built_in_class_names, built_in_names): Constify a
3110         char*.
3111
3112 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
3113
3114         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
3115         floating point instructions for epilogue delay.
3116
3117         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
3118         to gas if it supports .register pseudo.
3119
3120         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
3121         LONG_DOUBLE_TYPE_SIZE if not defined.
3122         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
3123         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
3124         * real.c: Likewise.
3125         * gengenrtl.c: Likewise.
3126         * print-rtl.c: Likewise.
3127         * rtl.c: Likewise.
3128         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
3129         MASK_LONG_DOUBLE_128.
3130         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
3131         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
3132         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
3133         (SUBTARGET_SWITCHES): Define.
3134         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
3135         with -mlong-double-128.
3136         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
3137         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
3138         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
3139         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
3140         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
3141         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
3142         with -mlong-double-128.
3143         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
3144         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
3145         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
3146         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
3147         TARGET_LONG_DOUBLE_128): Define.
3148         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3149         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
3150         long double on TARGET_ARCH64.
3151
3152 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
3153
3154         * function.c (free_temps_for_rtl_expr): Don't free slots
3155         that have been pushed into a higher level.
3156         
3157         Revert this patch:
3158         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
3159
3160 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
3161
3162         * basic-block.h (ALLOCA_REG_SET): Remove.
3163         (INITIALIZE_REG_SET): New macro.
3164         * flow.c (update_life_info): Use it.
3165         (calculate_global_regs_live): Likewise.
3166         (propagate_block): Likewise.
3167         * global.c (build_insn_chain): Likewise.
3168         * haifa-sched.c (schedule_region): Likewise.
3169
3170 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
3171
3172         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
3173         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
3174         (DWARF_ARANGES_PAD_SIZE): New define.
3175         (output_aranges): Use it to pad the address range header.
3176         (DWARF_ROUND): Fix for non power of 2 rounding.
3177
3178 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
3179
3180         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
3181
3182 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
3183
3184         * tree.def (RTL_EXPR): Update documentation.
3185         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
3186         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
3187         * function.c (preserve_rtl_expr_temp): New function.
3188         (preserve_rtl_expr_temps): Likewise.
3189         (preserve_rtl_expr_result): Use it.
3190
3191         Revert this patch:
3192         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
3193
3194 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
3195
3196         * regmove.c (copy_src_to_dest)  Do not create src->dest move
3197         for unchanging destination.
3198
3199 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
3200
3201         * function.h (struct sequence_stack): Remove rtl_expr.
3202         (struct emit_staus): Likewise.
3203         (seq_rtl_expr): Remove.
3204         * tree.h (free_temps_for_rtl_expr): Don't declare.
3205         (start_sequence_for_rtl_expr): Likewise.
3206         * rtl.h (preserve_rtl_expr_result): Likewise.
3207         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
3208         (start_sequence_for_rtl_expr): Remove.
3209         (push_topmost_sequence): Don't save sequence_rtl_expr.
3210         (pop_topmost_sequence): Remove comment about not restoring it.
3211         (end_sequence): Don't set seq_rtl_expr.
3212         (init_emit): Don't initialize it.
3213         (mark_sequence_stack): Don't mark it.
3214         (mark_emit_status): Likewise.
3215         * except.c (protect_with_terminate): Use
3216         start_sequence_for_rtl_expr, not start_sequence.
3217         * expr.c (expand_expr, case RTL_EXPR): Don't call
3218         preserve_rtl_expr_result or free_temps_for_rtl_expr.
3219         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
3220         (preserve_rtl_expr_result): Remove.
3221         (free_temps_for_rtl_expr): Likewise.
3222         (pop_temp_slots): Likewise.
3223         (mark_temp_slot): Don't mark the rtl_expr.
3224         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
3225         start_sequence_for_rtl_expr.
3226         
3227 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
3228
3229         * mkdeps.c, mkdeps.h: New files.
3230         * po/POTFILES.in: Add them.
3231         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
3232         (cpplib.o, cppinit.o): Depend on mkdeps.h.
3233         (mkdeps.o): New target.
3234
3235         * cppfiles.c: Delete deps_output.
3236         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
3237         OBJECT_SUFFIX, and base_name.
3238         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
3239         the include hash.
3240         (initialize_dependency_output): Use deps_init,
3241         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
3242         all the unnecessary string bashing.
3243         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
3244         level.
3245         * cpplib.c (do_include): Use deps_add_dep.
3246         * cpplib.h (struct cpp_reader): Replace deps_buffer,
3247         deps_allocated_size, deps_size, deps_column members with
3248         single pointer to a struct deps.  Delete prototype of
3249         deps_output.
3250
3251         * cppinit.c: Fix thinko in previous patch.
3252
3253 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3254
3255         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
3256         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
3257         (mode_for_size_tree): New function.
3258         (layout_decl, layout_type): Call it and clean up BLKmode checks.
3259         * tree.h (mode_for_size_tree): New declaration.
3260         
3261         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
3262
3263 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
3264
3265         * stmt.c (is_body_block): Move...
3266         * dwarfout.c, dwarf2out.c: ...from here.
3267         * tree.h: Declare it.
3268         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
3269         * final.c (final_start_function): Do call remove_unnecessary_notes
3270         when scheduling.
3271
3272 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
3273
3274         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
3275         
3276         * cpplib.h (_dollar_ok): New macro.
3277         (is_idchar, is_idstart): Use it.
3278         (IStable): Rename to _cpp_IStable.  Declare it const if
3279         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
3280         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
3281         is_space): Update for renamed IStable.
3282
3283         * cppinit.c: Delete all references to FAKE_CONST and CAT
3284         macros. Define init_IStable as empty macro if gcc >=2.7 or
3285         C99. Change TABLE() to ISTABLE and hardcode name of table.
3286         (cpp_start_read): Don't change the IStable based on
3287         dollars_in_ident.
3288
3289         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
3290         changed.  Handle '$' for char1 correctly.
3291         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
3292
3293         * cppexp.c (tokentab2): Make const.
3294         (cpp_lex): Make toktab const.
3295         * cppinit.c (include_defaults_array): Make const.
3296         (initialize_standard_includes): Make default_include const.
3297
3298 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
3299
3300         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
3301         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
3302         (gen_decl_die): Likewise.
3303         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
3304         (output_decl): Likewise.
3305
3306         * varasm.c (make_function_rtl): If we change the name used in the
3307         rtl, update DECL_ASSEMBLER_NAME accordingly.
3308         (make_decl_rtl): Likewise.
3309
3310         * toplev.c (rest_of_compilation): Tweak formatting.
3311
3312         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
3313         remove_unnecessary_notes.
3314         (debug_ignore_block): New fn.
3315         * toplev.h: Declare it.
3316         * emit-rtl.c (remove_unncessary_notes): Call it.
3317         * dwarf2out.c (dwarf2out_ignore_block): New fn.
3318         * dwarf2out.h: Declare it.
3319         * final.c (final_start_function): Don't call remove_unnecessary_notes
3320         if we did insn scheduling.
3321
3322 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
3323
3324         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
3325         * cpplib.h: Delete SET_CPP_PEDANTIC.
3326
3327 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3328
3329         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
3330         result is a RECORD_TYPE.
3331
3332 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3333
3334         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
3335
3336 2000-03-03  Richard Henderson  <rth@cygnus.com>
3337
3338         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
3339         addition over compliments over shifts.
3340
3341 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3342
3343         * reload1.c (reload_combine_note_use): Handle return register USEs.
3344         REG case: Handle multi-hard-register hard regs.
3345
3346 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3347
3348         * md.texi: Document use of '*' in insn pattern name.
3349
3350 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
3351
3352         * calls.c (special_function_p): operator new may not be malloc-like.
3353
3354         * gcse.c (dump_hash_table): Really fix error in last change.
3355
3356 2000-03-02  Denis Chertykov  <denisc@overta.ru>
3357
3358         * avr.c (print_operand): Use print_operand_address instead of
3359         output_addr_const.
3360         * avr/libgcc.S: Cleanup code.
3361
3362 2000-03-02  Richard Henderson  <rth@cygnus.com>
3363
3364         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
3365
3366 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
3367
3368         * tree.h (TYPE_ALIGN_UNIT): New macro.
3369
3370 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
3371
3372         * i386.c: (constant_call_address_operand): Reject CONST_INT.
3373
3374 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
3375
3376         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
3377         for the buffer.
3378         (SET_CPP_PEDANTIC): New macro.
3379         * cpplib.c (do_include): Don't bother checking system_header_p.
3380         (do_warning, do_ident, do_assert, do_unassert): Likewise.
3381         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
3382
3383         * function.h (struct expr_status): Add x_arg_space_so_far.
3384         (arg_space_so_far): New macro.
3385         * expr.c (init_expr): Initialize it.
3386         * calls.c (emit_call_1): Reset it.
3387         (compute_argument_block_size, expand_call): Use it.
3388         (expand_call, store_one_arg): Increment it.
3389
3390 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3391
3392         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
3393         a UNION_TYPE.
3394
3395 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
3396
3397         * cppfiles.c (cpp_read_file): New function.
3398
3399         * cpphash.c (collect_expansion): Make sure to reset last_token
3400         to NORM when we hit a string.  Handle trailing whitespace
3401         properly when the expansion is empty.
3402         (create_definition): Disable line commands while parsing the
3403         directive line.
3404         (dump_definition): If pfile->lineno == 0, output a line
3405         command ahead of the dump, and add a trailing newline.
3406
3407         * cppinit.c (append_include_chain): Add fifth argument, which
3408         indicates whether or not system headers are C++ aware.
3409         (initialize_standard_includes): New function,
3410         broken out of read_and_prescan.  Pass 'cxx_aware' value from
3411         the include_defaults_array on to append_include_chain.
3412         (dump_special_to_buffer): Const-ify char array.
3413         (builtin_array): Don't dump __BASE_FILE__.
3414         (cpp_start_read): Use cpp_read_file.  Reorder code for
3415         clarity.  Don't output line commands here for -D/-A/-U
3416         switches.  Don't call deps_output for files included with
3417         -include or -imacros.
3418
3419         * cpplib.c (do_define): Don't pay any attention to the second
3420         argument.
3421         (cpp_expand_to_buffer): Disable line commands while scanning.
3422         (output_line_command): Work in the file buffer.
3423         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
3424         Fix formatting of comments.  Prototype cpp_read_file.
3425
3426 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3427
3428         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
3429         reference the language-equivalent of sizetype.
3430         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
3431         * fold-const.c (size_binop, size_diffop): Put back checks.
3432         * gcse.c (dump_hash_table): Fix minor error in last change.
3433         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
3434         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
3435         all sizetypes.
3436
3437 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
3438
3439         * calls.c (expand_call)  Do not attempt to combine stack adjustments
3440         with inhibit_defer_pop set.
3441
3442 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
3443
3444         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
3445         the DECL_SIZE for a FIELD_DECL.
3446
3447 2000-03-01  Bruce Korb  <bkorb@gnu.org>
3448
3449         * fixinc/inclhack.tpl: remove unused symlinks
3450         * fixinc/README: GCC Maintainer info
3451         * fixinc/inclhack.sh: regen
3452         * fixinc/fixincl.sh: regen
3453
3454 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
3455
3456         * cpphash.c (collect_expansion): Trim trailing white space
3457         from macro definitions, but don't go past the last insertion
3458         point.
3459
3460 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
3461
3462         * i386.md (mulqi3): New pattern.
3463
3464 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
3465
3466         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
3467         token types.
3468         (struct cpp_reader): Add parsing_if_directive and
3469         parsing_define_directive flags.               
3470         (struct cpp_options): Remove output_conditionals flag.
3471         (check_macro_name): Delete prototype.
3472
3473         * cpphash.h (struct macrodef): Delete.
3474         (struct reflist): Separate from struct definition.
3475         (struct definition): Remove unused fields.  Add column number.
3476         (create_definition): Returns a DEFINITION *.  Takes a
3477         cpp_reader * and an int.
3478
3479         * cpphash.c (SKIP_WHITE_SPACE): Delete.
3480         (PEEKC): Copy defn from cpplib.c.
3481         (rest_extension, REST_EXTENSION_LENGTH): Delete.
3482         (struct arg): New.
3483         (struct arglist): Simplify.
3484         (collect_expansion): Rewrite.  Get tokens by calling
3485         cpp_get_token.  Add more error checking.
3486         (collect_formal_parameters): New function, broken out of
3487         create_definition and reworked to use get_directive_token.
3488         (create_definition): All real work is now in collect_expansion
3489         and collect_formal_parameters.  do_define handles finding the
3490         macro name.  Return a DEFINITION, not a MACRODEF.
3491         (macroexpand): Replace bcopy with memcpy throughout.  Replace
3492         character-at-a-time copy loop with memcpy and pointer increments.
3493         (compare-defs): d1->argnames / d2->argnames might be null.
3494
3495         * cpplib.c (copy_rest_of_line): Delete function.
3496         (skip_rest_of_line): Do all the work ourselves.
3497         (skip_string): New function.
3498         (parse_string): Use skip_string.
3499         (get_macro_name): New function.
3500         (check_macro_name): Delete.
3501         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
3502         (cpp_skip_hspace): Use CPP_BUMP_LINE.
3503         (handle_directive): ICE if we're called on a macro buffer.
3504         (do_define): Determine macro name and type (funlike/objlike)
3505         here.  Expunge all uses of MACRODEF.
3506         (cpp_push_buffer): Set line_base to NULL.
3507         (do_undef, read_line_number): Don't worry about getting a POP token.
3508         (eval_if_expression): Set/reset parsing_if_directive around
3509         cpp_parse_expr. Don't clear only_seen_white.
3510         (skip_if_group): Remove output_conditionals logic.  Use
3511         skip_rest_of_line.
3512         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
3513         tokens under appropriate conditions.
3514         (cpp_unassert): Call do_unassert not do_assert.  Oops.
3515
3516         * cppexp.c (parse_defined): New function, break out of
3517         cpp_lex.
3518         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
3519         ourselves, with cpp_defined.
3520         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
3521
3522         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
3523         * gcc.dg/strpaste-2.c: New.
3524
3525 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
3526
3527         * fold-const.c (size_binop): Don't asert inputs are the same and
3528         have TYPE_IS_SIZETYPE set.
3529         (size_diffop): Likewise.
3530
3531 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
3532
3533         * dwarfout.c (output_block): Output abstract blocks even if they
3534         don't have TREE_ASM_WRITTEN set.
3535
3536         * calls.c (emit_library_call): Check for null REG.
3537
3538 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
3539
3540         * c-decl.c (current_function_decl): Move to toplev.c.
3541         (init_decl_processing): Don't add current_function_decl as a ggc
3542         root here.
3543         * dbxout.c (dbxout_symbol): Change return type to int.
3544         (dbxout_symbol_location, dbxout_syms): Likewise.
3545         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
3546         any locals. Use current_function_func_begin_label if set.
3547         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
3548         * dwarf2out.c (dwarf2out_begin_prologue): Set
3549         current_function_func_begin_label.
3550         * final.c (final_start_function): Reset it.
3551         * toplev.c (current_function_decl): Define it here.
3552         (current_function_func_begin_label): New variable.
3553         (main): Add both as ggc roots.
3554         * tree.h (current_function_func_begin_label): Declare.
3555
3556 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3557
3558         * gcse.c: Cleanups throughout: mostly white-space, but also
3559         some minor rearrangement of code.
3560
3561 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
3562
3563         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
3564         returns a PARALLEL.  Use emit_group_load and use_group_regs
3565         as needed.  
3566         (emit_library_call_value): Similarly.
3567
3568         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
3569         * pa/quadlib.asm: Remove.
3570         * pa/quadlib.c: New file.
3571
3572         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
3573         * configure: Rebuilt.
3574
3575 2000-02-29  Philip Blundell  <pb@futuretv.com>
3576
3577         * config/arm/conix-elf.h: New file.
3578         * configure.in (arm*-*-conix*): New configuration.
3579         * configure: Regenerate.
3580
3581 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
3582
3583         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
3584         don't have TREE_ASM_WRITTEN set.
3585
3586 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3587
3588         * Eliminate DECL_FIELD_SIZE.
3589         * builtins.c (built_in_class_names, built_in_names): New variables.
3590         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
3591         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
3592         DECL_SIZE, not DECL_FIELD_SIZE.
3593         * print-tree.c (print_node): Remove code that prints extra blank
3594         lines in some cases.
3595         Properly handle inline and builtin function cases.
3596         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
3597         * tree.h (built_in_class_named, built_in_names): New declarations.
3598         (union tree_decl): Rename internal unions to u1 and u2 and change
3599         some of their components.
3600         Add new field built_in_class.
3601         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
3602         Reflect above changes.
3603         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
3604         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
3605         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
3606         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
3607
3608 2000-02-28  Dmitri Makarov  <dim@windriver.com>
3609
3610         * extend.texi: Document ARM's support for long/short calls.
3611
3612         * invoke.texi: Document ARM's -mlong-calls command line switch.
3613         
3614         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
3615         (arm_encode_call_attribute): Add prototype.
3616         (arm_set_default_type_attribute): Add prototype.
3617         (arm_strip_name_encoding): Add prototype.
3618
3619         * config/arm/arm.c (arm_init_cumulative_args): replace
3620         initialisation og 'long_calls' field with initialisation of
3621         'call_cookie' field.
3622         (enum arm_pragma_enum): New enum.
3623         (arm_pragma_long_calls): New static variable.
3624         (arm_process_pragma): Also process "#pragma long_calls_off".
3625         (arm_valid_type_attribute_p): Accept short_call attribute.
3626         (arm_comp_type_attributes): Check long/short call attributes.
3627         (arm_encode_call_attribute):  New function:  Encode long_call
3628         or short_call attribute in function name.
3629         (arm_set_default_type_attributes): New function: Assign
3630         default attributes to newly defined type.
3631         (current_file_function_operand): New function: Return true if
3632         the symbol is a function which has already been compiled.
3633         (arm_is_longcall_p): New function: Return true if the
3634         indicated function should be called via a long call.
3635         (arm_get_strip_length): New function.  Returns number of
3636         prefix characters to be stripped from a function's name.
3637         (arm_strip_name_encoding): New function.  Strip prefix characters
3638         from a function's name.
3639
3640         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
3641         with 'call_cookie'.
3642         (SHORT_CALL_FAG_CHAR): Define.
3643         (LONG_CALL_FAG_CHAR): Define.
3644         (ENCODED_SHORT_CALL_ATTR_P): Define.
3645         (ENCODED_LONG_CALL_ATTR_P): Define.
3646         (ARM_NAME_ENCODING_LENGTHS): Define.
3647         (STRIP_NAME_ENCODING): Define.
3648         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
3649         (ARM_ENCODE_CALL_TYPE): Define.
3650         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
3651         (ARM_DECLARE_FUNCTION_SIZE): Define.
3652         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
3653
3654         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
3655         if a long call is needed.
3656         (call_value): Ditto.
3657         (call_symbol): Ditto.
3658
3659         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
3660         ARM_DECLARE_FUNCTION_SIZE.
3661
3662         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
3663         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
3664         (ARM_STRIP_NAME_ENCODING): Undefine.
3665         (STRIP_NAME_ENCODING): Undefine.
3666         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
3667         (ASM_DECLARE_FUNCTION_NAME): Ditto.
3668         (ASM_OUTPUT_COMMON): Ditto.
3669         (ASM_DECLARE_OBJECT_NAME): Ditto.
3670
3671         * config/arm/pe.c (arm_dllexport_name_p): Check for
3672         ARM_PE_FLAG_CHAR.
3673         (arm_dllimport_name_p): Ditto.
3674         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
3675         (arm_mark_dllimport): Ditto.
3676         
3677 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3678
3679         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
3680
3681 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
3682
3683         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
3684
3685 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
3686
3687         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
3688         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
3689         NO_BUILTIN_WCHAR_TYPE is not defined.
3690         (CPP_WCHAR_TYPE): Delete.
3691         * cccp.c (main): Don't change wchar_type if cplusplus.
3692         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
3693
3694 2000-02-28  Nick Clifton  <nickc@cygnus.com>
3695
3696         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
3697
3698 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
3699
3700         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
3701         (ASM_WEAKEN_LABEL): Define.
3702  
3703 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
3704
3705         * expr.c (store_constructor): Do not emit USE.
3706         * rtl.h (stupid_life_analysis): Remove.
3707
3708 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3709
3710         * function.c (number_blocks): Reset next_block_index based on
3711         what debugging format is used, not what is defined.
3712         
3713         * lcm.c: Minor reformatting throughout.
3714         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
3715         
3716         * toplev.c (rest_of_compilation): Account for time in
3717         optimize_mode_switching.
3718
3719         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
3720         if only marking labels.
3721
3722 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
3723
3724         * calls.c (expand_call): Attempt to combine stack adjustments with
3725         pending stack adjustments.
3726
3727 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3728
3729         * loop.c (reg_in_basic_block_p): Don't abort when falling through
3730         to the end of the function.
3731
3732 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
3733
3734         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
3735         blocks.
3736         * final.c (next_block_index): Remove.
3737         (max_block_depth): Likewise.
3738         (pending_blocks): Likewise.
3739         (init_final): Don't initialize them.
3740         (final_start_function): Don't set next_block_index.  Set up
3741         BLOCK_NUMBER.
3742         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
3743         * function.h (number_blocks): New function.
3744         * function.c (get_block_vector): New function.
3745         (identify_blocks): Use it.
3746         (reorder_blocks): Set NOTE_BLOCK.
3747         (number_blocks): New function.
3748         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
3749         * tree.h (BLOCK_NUMBER): New macro.
3750         (tree_block): Add block_num field.
3751         * dbxout.c (next_block_number): Remove.
3752         (dbxout_init): Don't set it.
3753         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
3754         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
3755         block numbers.
3756         * toplev.c (rest_of_compilation): Always call
3757         find_loop_tree_blocks.  Fix indentation.
3758         * dwarf2out.c (next_block_number): Remove.
3759         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
3760         to determine block numbers.
3761         (gen_inlined_subroutine_die): Likewise.
3762         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
3763         (decls_for_scope): Don't increment next_block_number.
3764         * dwarfout.c (next_block_number): Remove.
3765         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
3766         to determine block numbers. 
3767         (output_inlined_subroutine_die): Likewise.
3768         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
3769         (output_decls_for_scope): Don't increment next_block_number.
3770         * sdbout.c (next_block_number): Remove.
3771         (sdbout_block): Use BLOCK_NUMBER.
3772         (sdbout_begin_block): Simplify.
3773         * xcoffout.c (next_block_number): Remove.
3774         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
3775         (xcoffout_begin_block): Don't set next_block_number.
3776         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
3777         next_block_number.
3778         
3779 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3780
3781         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
3782         (expand_builtin_strcpy): Pass correct type to size_binop.
3783         (expand_builtin_strcmp): Likewise.
3784         Clean up conditional structure.
3785         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
3786         (complete_array_type): Don't use size_binop for MAXINDEX.
3787         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
3788         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
3789         (c_alignof): Use size_one_node.
3790         (build_unary_op): Pass arg of proper type to size_binop.
3791         (really_start_incremental_init, push_init_level): Use sizetype for
3792         constructor{,_bit,_unfilled}_index.
3793         (pop_init_label, output_init_element): Likewise.
3794         (output_pending_init_elements, process_init_element): Likewise.
3795         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
3796         * expr.c (store_expr): Use size_int.
3797         (store_constructor): Use proper types for size_binop args.
3798         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
3799         (expand_expr_unaligned): Likewise.
3800         (string_contant): Return object of sizetype.
3801         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
3802         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
3803         (ARGS_SIZE_TREE): Pass proper types to size_binop.
3804         * fold-const.c (int_const_binop): Refine when size_int is called.
3805         (fold_convert): Likewise.
3806         (size_int_wide): Rework to take KIND as arg, only take low order
3807         bits, handle new sizetype_tab datatype, and chain entries in
3808         size_table.
3809         (size_int_type_wide): New function.
3810         (size_binop): Validate types of arguments.
3811         (ssize_binop): Deleted.
3812         (size_diffop): New function.
3813         (extract_muldiv): Only fold division into multiplication for sizetypes.
3814         * function.c (assign_parms): Use size_diffop and make sure
3815         VAR field is of ssizetype; also pass proper type to size_binop.
3816         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
3817         (round_down): Deleted from here.
3818         * store-layout.c (sizetype_tab): Now an array.
3819         (sizetype_set, early_root_list): New variables.
3820         (variable_size): Use size_one_node.
3821         (round_up): Pass proper type to size_binop.
3822         (round_down): Moved to here and corrected as above.
3823         (layout_record): Pass proper arg types to size_binop.
3824         (layout_type): Likewise.
3825         If sizetype_set is zero, record the type just laid out.
3826         (make_unsigned_type): Don't call set_sizetype;
3827         (make_signed_type): Likewise; also, call fixup_signed_type.
3828         (initialize_sizetypes): New function.
3829         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
3830         set name of bitsizetype to "bit_size_type".
3831         Fix up type of sizes of all types made before call.
3832         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
3833         * tree.c (fix_sizetype): Deleted.
3834         (build_common_tree_nodes): Call initialize_sizetypes.
3835         (build_common_tree_nodes_2): Don't call fix_sizetype.
3836         * tree.h (TYPE_IS_SIZETYPE): New macro.
3837         (initialize_sizetype): New declaration.
3838         (enum size_type_kind): New type.
3839         (struct sizetype_tab): Deleted.
3840         (sizetype_tab): Now array; adjust sizetype macros.
3841         (size_diffop, size_int_type_wide): New functions.
3842         (size_int_wide): Change number of args and type; access macros changed.
3843         (ssize_int, sbitsize_int): New macros.
3844         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
3845         (ROUND_TYPE_SIZE_UNIT): New macro.
3846
3847 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
3848
3849         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
3850
3851 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3852
3853         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
3854         Mark as possibly unused.
3855
3856         * cse.c (cse_insn): Delete dead code involving tablejump.
3857         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
3858
3859         * Makefile.in (libcpp.a): Start by deleting it.
3860
3861 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3862
3863         * cpplib.h (enum file_change_code): Added rename_file.
3864         * cpplib.c (do_line): If a filename is given, set file_change to
3865         rename_file.
3866         (output_line_command): If file_change is rename_file, always
3867         output a # directive with the file name.
3868
3869         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
3870
3871 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
3872
3873         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
3874         when copying a PARM_DECL or RESULT_DECL.
3875
3876 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3877
3878         * fix-header.c (recognized_function): Also fix prototypes for
3879         functions taking "void".
3880
3881 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
3882
3883         * reload1.c (do_output_reload): Check reg_reloaded_valid before
3884         looking at reg_reloaded_contents.
3885
3886 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
3887
3888         * Makefile.in (STMP_FIXINC): New toggle.
3889         (LIBGCC2_DEPS): Delete all references.
3890         (stmp-headers): Delete target.  All references either deleted
3891         or changed to stmp-int-headers.
3892         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
3893         (LIBCPP_OBJS): Take out cppalloc.o.
3894         (cppalloc.o): Delete target.
3895         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
3896         (gen-protos, fix-header): Link with libiberty.a.
3897         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
3898         to empty.
3899
3900         * configure.in: Remove refs to strerror.
3901         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
3902         * system.h: Take out strerror stanza.
3903
3904         * cpperror.c (my_strerror): Delete function.
3905         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
3906         * cppmain.c (main): Call xmalloc_set_program_name first thing.
3907         * cppalloc.c: Delete file.
3908         * gen-protos.c: Don't provide xrealloc.
3909
3910         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
3911         xstrerror throughout.
3912
3913 2000-02-26  Bruce Korb  <bkorb@gnu.org>
3914
3915         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
3916         match for DOS headers, too.
3917         * fixinc/inclhack.sh,fixincl.x: Regenerate.
3918
3919 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
3920
3921         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
3922         is right for most ELF targets.
3923         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
3924         Let the default file use %U properly.
3925         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
3926         default.
3927
3928         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
3929         numbers.
3930
3931 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3932
3933         * toplev.c (documented_lang_options): Correct spelling error.
3934         (decode_d_option, decode_f_option, main): Likewise.
3935
3936         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
3937
3938         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
3939         to tell assembler it is permitted to expand large constants.
3940
3941 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
3942
3943         * protoize.c: (AUX_INFO_SUFFIX): New macro.
3944         (aux_info_suffix): Use.
3945         (SAVE_SUFFIX): New macro.
3946         (save_suffix): Use.
3947         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
3948         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
3949         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
3950
3951         * invoke.texi (Running Protoize): Update documentation.
3952
3953 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
3954
3955         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
3956
3957 2000-02-25  John Wehle  (john@feith.com)
3958
3959         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
3960
3961 2000-02-25  Anthony Green  <green@cygnus.com>
3962
3963         * toplev.c (rest_of_compilation): Rebuild jump labels if
3964         combine_instructions has created a new direct jump.
3965         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
3966         when appropriate.
3967         (combine_instructions): Call try_combine with new argument.
3968         Return non-null value when new direct jump instruction is created.
3969         * rtl.h: combine_instructions returns an int.
3970
3971 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
3972
3973         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
3974         jump when changing a computed jump into a jump to a known
3975         target.
3976
3977 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
3978
3979         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
3980         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
3981
3982         * i386.md (define_expand "clrstrsi"): Fix typo.
3983
3984 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
3985
3986         * rtl.texi: Fix typo.
3987
3988 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3989
3990         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
3991         UNITS_PER_WORD.  Change caller initial_elimination_offset.
3992         (rounded_frame_size): Take into account that argument pushed has
3993         changed.  Fix TARGET_ALIGN_DOUBLE problem.
3994
3995 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
3996
3997         * haifa-sched.c (schedule_block): Explain the real reason
3998         we delete REG_SAVE_NOTEs on the first insn of a block.
3999         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
4000
4001 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
4002
4003         * input.h (push_srcloc): New function.
4004         (pop_srcloc): Likewise.
4005         * toplev.c (push_srcloc): Define it.
4006         (pop_srcloc): Likewise.
4007
4008 2000-02-24  Richard Henderson  <rth@cygnus.com>
4009
4010         * flow.c (life_analysis): When collecting reg info, clear
4011         regs_ever_live.
4012
4013 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4014
4015         Fix bug exposed by reload.c no longer rounding the frame
4016         size to BIGGEST_ALIGNMENT:
4017         * sh.c (rounded_frame_size): New function.
4018         (sh_expand_prologue, sh_expand_epilogue): Use it.
4019         (initial_elimination_offset): Likewise.
4020
4021 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4022
4023         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
4024         * sh-protos.h (sh_need_epilogue): Declare.
4025         * sh.c (sh_need_epilogue_known): New static variable.
4026         (sh_need_epilogue): New function.
4027         (function_epilogue): Clear need_epilogue_known.
4028         * sh.md (return): Split into expander / insn pattern.
4029         Make the expander conditional on ! sh_need_epilogue ().
4030
4031 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
4032
4033         * machmode.h (get_mode_alignment): Declare.
4034         (GET_MODE_ALIGNMENT): Call it.
4035         * stor-layout.c (get_mode_alignment): New function. Make
4036         sure alignment is always power of 2.
4037
4038 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
4039
4040         * i386.h: Remove useless definition of "I386" and misleading
4041         comment above it.
4042
4043 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
4044
4045         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
4046         under which TREE_PERMANENT will be set.
4047         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
4048         build1): Use TREE_SET_PERMANENT.
4049         * print-tree.c (print_node): Don't report value of
4050         TREE_PERMANENT if ggc_p is true.
4051
4052         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
4053         decide whether to give a type a new alias set.
4054         * objc/objc-act.c (build_objc_string_object): Never copy the string.
4055         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
4056         of value of 'obstack'.
4057
4058
4059 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4060
4061         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
4062
4063 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4064
4065         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
4066         * cpplib.c (cpp_get_token): Produce them.
4067         * cppexp.c (cpp_lex): Handle them.
4068
4069 2000-02-23  Nick Clifton  <nickc@cygnus.com>
4070
4071         * config/arm/arm.c (arm_comp_type_attributes): Simply and
4072         comment tests on type attributes.
4073
4074 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4075
4076         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
4077         conform to documentation.
4078         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
4079         to check for special cases.
4080         * sh-protos.h (sh_loop_align): Declare.
4081         * sh.c (sh_loop_align): Define.
4082
4083 2000-02-22  Andrew Haley  <aph@cygnus.com>
4084
4085         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
4086         (SIZE_TYPE): Is 32 bits when using -mgp32.
4087         (PTRDIFF_TYPE): Ditto.
4088
4089 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4090
4091         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
4092
4093 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
4094
4095         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
4096         BIGGEST_FIELD_ALIGNMENT a constant.
4097
4098 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
4099
4100         * dwarf2out.c (output_line_info): Put the marker for the end of
4101         the line number info at the actual end.
4102         (gen_struct_or_union_type_die): Use decl_function_context 
4103         to check for local classes.
4104         * dwarfout.c (output_type): Likewise.
4105
4106 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
4107
4108         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
4109         for arguments with a mode, but no type.
4110         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
4111         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
4112         * pa/long_double.h: New file.
4113         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
4114         both have 128bit wide long doubles.
4115         * configure: Rebuilt.
4116
4117 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4118
4119         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
4120
4121         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
4122         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
4123         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
4124
4125         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
4126
4127         * integrate.c (compare_blocks, find_block): Likewise.
4128
4129         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
4130
4131         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
4132
4133         * stmt.c (stmt_status, set_file_and_line_for_stmt,
4134         expand_asm_operands): Likewise.
4135
4136 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
4137
4138         * predict.c (estimate_probability): Added the pointer heuristic to
4139         the collection of static branch predictors.
4140
4141 2000-02-21  Catherine Moore  <clm@cygnus.com>
4142
4143         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
4144         * invoke.texi (-mfix7000): Document.
4145
4146 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
4147
4148         * diagnostic.c (init_output_buffer): Make it possible to output at
4149         least 32 characters if we're given a too long prefix.
4150
4151 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
4152
4153         * varasm.c (initializer_constant_valid_p): Call
4154         lang_expand_constant to simplify the constant.
4155
4156 2000-02-20  Bruce Korb  <bkorb@gnu.org>
4157
4158         * fixinc/inclhack.def(stdio_va_list):
4159         typedef needs to be disabled.
4160         * fixinc/inclhack.sh: regen
4161         * fixinc/fixincl.x: regen
4162
4163 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
4164
4165         * print-rtl.c (print_rtx): Don't print addresses when
4166         flag_dump_unnumbered.
4167
4168 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4169
4170         * sparc.c (sparc_output_scratch_registers): Mark parameter with
4171         ATTRIBUTE_UNUSED.
4172         (sparc_va_arg, sparc_flat_output_function_prologue,
4173         sparc_flat_output_function_epilogue): Cast value to unsigned in
4174         comparison.
4175         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
4176         
4177         * sparc.md: Add default case in switch.
4178
4179 2000-02-19  Richard Henderson  <rth@cygnus.com>
4180
4181         * c-typeck.c (add_pending_init): Don't abort for multiple
4182         fields at the same offset.
4183         (pending_init_member): Test the correct member.
4184
4185 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4186
4187         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
4188         instead of SImode.
4189         (start_catch_handler) : Same.
4190
4191 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
4192
4193         * Makefile.in: Have flow.o depend on $(EXPR_H)
4194
4195 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4196
4197         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
4198         * c-decl.c (duplicate_decls, finish_enum): Likewise.
4199         (finish_decl): Remove -Wlarger-than code from here.
4200         * flags.h (id_clash_len): Now int.
4201         (larger_than_size): Now HOST_WIDE_INT.
4202         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
4203         Clean up checking to see if in table.
4204         (make_bit_field_ref): Remove extra parm to bitsize_int.
4205         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
4206         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
4207         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
4208         and for computing size of decl.
4209         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
4210         Move -Wlarger-than code to here.
4211         (layout_record): Remove extra arg to bitsize_int.
4212         Set TYPE_BINFO_SIZE_UNIT.
4213         (layout_union): Remove extra arg to bitsize_int.
4214         Use proper type for size of QUAL_UNION.
4215         (layout_type): Remove extra arg to bitsize_int.
4216         * toplev.c (id_clash_len): Now int.
4217         (larger_than_size): Now HOST_WIDE_INT.
4218         (decode_W_option): Clean up id-clash and larger-than- cases.
4219         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
4220         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
4221         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
4222         (struct tree_decl): New field size_unit.
4223         (size_int_wide): No HIGH operand; NUMBER is now signed.
4224         (size_int_2): Deleted.
4225         (size_int, bitsize_int): Don't use it and rework args.
4226         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
4227
4228 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
4229
4230         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
4231
4232 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
4233
4234         * invoke.texi (Warning Options): Add an explanation of why
4235         you might want the -Wfloat-equal flag.
4236
4237 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4238
4239         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
4240         * cppinit.c (new_pending_define): Add cast to avoid warning.
4241         * expmed.c (extract_bit_field): Likewise.
4242         * flow.c (enum reorder_skip_type): New type.
4243         (skip_insns_between_blcok): New it.
4244         Rework to avoid warning about possibly undefined variable.
4245         * function.c (assign_parms): Make thisparm_boundary unsigned.
4246         * genrecog.c (write_switch): Cast XWINT result to int.
4247         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
4248         * mips-tfile.c (init_file): Make two versions of FDR intializer:
4249         one for MIPS and one for Alpha.
4250         (get_tag, copy_object): Add casts to avoid warnings.
4251         * optabs.c (init_one_libfunc): Cast NAME to (char *).
4252         * reload.c (find_reloads): Make TYPE enum reload_type.
4253         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
4254         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
4255         * varasm.c (compare_constant_1): Add cast to avoid warning.
4256         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
4257         to (char *).
4258         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
4259         Cast switch operand of size to int.
4260         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
4261         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
4262         in unhandled case.
4263
4264 2000-02-18  Nick Clifton  <nickc@cygnus.com>
4265
4266         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
4267         anything for an alignment of zero.
4268
4269         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
4270         anything for an alignment of zero.
4271
4272 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
4273
4274         * gcc.texi (Bug Reporting): Refer to bugs.html.
4275         (Bug Lists): Likewise.
4276         * system.h (GCCBUGURL): New preprocessor define.
4277         * rtl.c (fancy_abort): Use it.
4278         * gcc.c (main): Likewise.
4279
4280 2000-02-18  Richard Henderson  <rth@cygnus.com>
4281
4282         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
4283         (life_analysis_1): Subsume into ...
4284         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
4285         Use update_life_info for the relaxation.
4286         (update_life_info): Update REG_BASIC_BLOCK for registers live on
4287         entry and regs_live_at_setjmp.
4288         (set_noop_p): Simplify.
4289         (notice_stack_pointer_modification_1): Renamed from s/_1//.
4290         (record_volatile_insns): Split into ...
4291         (delete_noop_moves): ... here,
4292         (notice_stack_pointer_modification): ... here,
4293         (insn_dead_p): ... and here.
4294         (propagate_block): Don't query INSN_VOLATILE.
4295         (mark_used_regs): Mind !PROP_REG_INFO.
4296         * toplev.c (rest_of_compilation): Call mark_constant_function here,
4297         not in life_analysis.
4298
4299 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
4300
4301         * loop.c (canonicalize_condition): New function,
4302         broken out of get_condition.
4303         (get_condition): Use it.
4304         * expr.h (canonicalize_condition): Prototype it.
4305
4306         * tree.h (tree_int_cst_msb): Declare.
4307         * tree.c (tree_int_cst_msb): New function.
4308
4309 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
4310
4311         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
4312         isn't set.
4313
4314         * invoke.texi (-fmessage-length=n): Document.
4315
4316 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
4317
4318         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
4319
4320 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
4321
4322         * function.c (thread_prologue_and_epilogue_insns): Put a line note
4323         after the prologue.
4324
4325 2000-02-17  Nick Clifton  <nickc@cygnus.com>
4326
4327         * config/arm/thumb.c: Replace includes of system headers with
4328         #include "system.h".
4329
4330 2000-02-16  Richard Henderson  <rth@cygnus.com>
4331
4332         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
4333         Add crtbeginS.o and crtendS.o.
4334         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
4335         (ENDFILE_SPEC): Use crtendS.o.
4336         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
4337
4338         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
4339         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
4340         shared and present.
4341         (__dso_handle): New variable.
4342         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
4343         bias to __CTOR_END__.
4344         
4345 2000-02-16  Richard Henderson  <rth@cygnus.com>
4346
4347         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
4348
4349 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
4350
4351         * longlong.h (__clz_tab): Declare as static to match definition.
4352
4353 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
4354         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
4355         (XREF_FILE_NAME): Define.
4356
4357         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
4358         (EH_FRAME_SECTION_ASM_OP): Define.
4359         (IDENT_ASM_OP): Define.
4360         (TEXT_SECTION_ASM_OP): Define.
4361         (CPP_SPEC): Define.
4362         (CTORS_SECTION_ASM_OP): Define.
4363         (CTOR_SECTION_FUNCTION): Use it.
4364         (DTORS_SECTION_ASM_OP): Define.
4365         (DTOR_SECTION_FUNCTION): Use it.
4366
4367 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
4368
4369         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
4370         NOTE_BASIC_BLOCK.
4371
4372         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
4373         debug_bb_n): New functions.
4374         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
4375         * basic-block.h: Prototype new functions.
4376
4377 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
4378
4379         * configure.in: Add support for avr target.
4380         * configure: Rebuilt.
4381
4382         * invoke.texi: Add AVR invocation docs.
4383         * install.texi: Add information about AVR.
4384         * md.texi: Add AVR constraint letters description.
4385         * extend.texi: Add description for AVR specific attributes.
4386
4387 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
4388
4389         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
4390
4391 2000-02-16  Nick Clifton  <nickc@cygnus.com>
4392
4393         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
4394         (make_insn_raw): Move RTL check here.
4395
4396 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4397
4398         * version.c: Include gansidecl.h and version.h.
4399
4400         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
4401         
4402         * configure.in (gcc_version): When setting, narrow search to
4403         lines containing `version_string'.
4404
4405         * Makefile.in (mainversion): Likewise. 
4406         (GCC_H): New variable.
4407         (gcc.h): Delete target.
4408         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
4409         (version.o): Depend on version.h.
4410         (dbxout.o): Don't depend on gcc.h.
4411
4412 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
4413                           Michael Meissner  <meissner@cygnus.com>
4414
4415         * md.texi (Simple Constraints): Add item about whitespace.
4416         * genoutput.c (strip_whitespace): New.
4417         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
4418         strip_whitespace for constraints.
4419         Test pointer using NULL, not 0.
4420
4421 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4422
4423         * cpplib.c (do_line): Pedwarn for #line > 32767.
4424
4425         * c-lex.c (readescape): Warn about '\x', but do not reject it.
4426
4427 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
4428
4429         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
4430         to default cpp spec.
4431         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
4432         * cpp.texi: Document __GNUC_PATCHLEVEL__.
4433         * cpp.1: Likewise.
4434
4435         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
4436         default spec.
4437
4438 2000-02-15  Denis Chertykov  <denisc@overta.ru>
4439
4440         * configure.in: Add support for avr target.
4441
4442 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4443
4444         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
4445         (sh_addr_diff_vec_mode): Don't declare.
4446         * sh.c (sh_addr_diff_vec_mode): Delete.
4447
4448 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4449
4450         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
4451
4452 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4453
4454         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
4455         (smulsi3_highpart_i): Name.
4456         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
4457         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
4458         (smulsi3_highpart, umulsi3_highpart): Likewise.
4459
4460         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
4461         correctly independent of endianness.
4462         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
4463         confuse the optimizers.
4464         (mulsidi3+1, umulsidi3+1): New define_split.
4465
4466 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
4467
4468         * config/sh/sh.md: Guard insn splits against illegal registers.
4469         * config/sh/sh.h: Correct comment about macros.
4470
4471 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4472                           Andrew MacLeod  <amacleod@cygnus.com>
4473
4474         * Makefile.in (lcm.o): Depend on insn-attr.h.
4475         * basic-block.h (optimize_mode_switching): Declare.
4476         * lcm.c (tm_p.h, insn-attr.h): #include.
4477         (seginfo, bb_info): New structs.
4478         (antic, transp, comp, delete, insert) : New file-scope static variables.
4479         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
4480         (reg_becomes_live, optimize_mode_switching): Likewise.
4481         * tm.texi: Add description of mode switching macros.
4482         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
4483
4484         * sh-protos.h (remove_dead_before_cse): Remove prototype.
4485         (fldi_ok, fpscr_set_from_mem): New prototypes.
4486         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
4487         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
4488         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
4489         (sh_flag_remove_dead_before_cse): Remove declaration.
4490         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
4491         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
4492         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
4493         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
4494         (barrier_align): Allow for JUMP_INSNS containing a parallel.
4495         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
4496         (fldi_ok): New function.
4497         (get_fpscr_rtx): Add fpscr_rtx as GC root.
4498         (emit_sf_insn): Only generate fpu switches when optimize < 1.
4499         (emit_df_insn): Likewise.
4500         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
4501         (sh_flag_remove_dead_before_cse): Delete.
4502         (get_free_reg, fpscr_set_from_mem): New functions.
4503         * sh.md (movdf, movsf): Remove no_new_pseudos code.
4504         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
4505
4506 2000-02-15  Loren Rittle  <ljrittle@acm.org>
4507
4508         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
4509
4510 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4511
4512         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
4513         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
4514
4515         * cccp.c: Include version.h and/or don't declare `version_string'.
4516         * collect2.c: Likewise.
4517         * alpha.c: Likewise.
4518         * arm/aof.h: Likewise.
4519         * arm/coff.h: Likewise.
4520         * arm/elf.h: Likewise.
4521         * arm/pe.h: Likewise.
4522         * arm/tcoff.h: Likewise.
4523         * arm/telf.h: Likewise.
4524         * arm/tpe.h: Likewise.
4525         * arm/vxarm.h: Likewise.
4526         * convex/convex.c: Likewise.
4527         * i386/dgux.c: Likewise.
4528         * i386/sun386.h: Likewise.
4529         * m88k/m88k.c: Likewise.
4530         * mcore/mcore-pe.h: Likewise.
4531         * mips/mips.h: Likewise.
4532         * romp/romp.h: Likewise.
4533         * sh/sh.c: Likewise.
4534         * cpphash.c: Likewise.
4535         * cppinit.c: Likewise.
4536         * dwarf2out.c: Likewise.
4537         * dwarfout.c: Likewise.
4538         * gcc.c: Likewise.
4539         * gcc.h: Likewise.
4540         * mips-tfile.c: Likewise.
4541         * protoize.c: Likewise.
4542         * toplev.c: Likewise.
4543         * tree.h: Likewise.
4544         
4545         * version.c (version_string): Constify a char*.
4546
4547         * version.h: New file.
4548
4549 2000-02-14  Nick Clifton  <nickc@cygnus.com>
4550
4551         * configure.in: Add mcore-elf and mcore-pe targets.
4552         * configure: Regenerate.
4553
4554         * NEWS: Add note that MCore port has been contributed.
4555
4556         * invoke.texi: Document command line switches for MCore port.
4557         * install.texi: Add MCore to list of supported targets.
4558
4559 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
4560
4561         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
4562         then we will need to import the frame handling functions.
4563         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
4564         to import the frames themselves.
4565
4566 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
4567                           Jason Eckhardt  <jle@cygnus.com>
4568
4569         * basic_block.h: Added prototype for reorder_basic_blocks.
4570         * toplev.c: Changes to add -freorder-blocks and graph dump after
4571         block reordering is done.
4572         * flow.c (reorder_block_def): New structure for use during block
4573         reordering.
4574         (REORDER_BLOCK_*): New macros to access members of above structure.
4575         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
4576         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
4577         functions for block reordering.
4578
4579 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
4580
4581         * gcc.texi (Passes): Fix typo.
4582         * md.texi (Standard Names): Ditto.
4583         * tm.texi (Storage Layout): Ditto.
4584
4585 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
4586
4587         * cpplib.c (do_define): Only free the old definition if it
4588         actually had one.
4589
4590 2000-02-13   Neil Booth  <NeilB@earthling.net>
4591
4592         * cppfiles.c (read_and_prescan): When emitting deferred
4593         newlines, test speccase[] again instead of checking each
4594         possible whitespace character in turn.  When we encounter \r,
4595         look behind for \n first, then ahead.
4596
4597 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
4598
4599         * cse.c (cse_altered): New internal flag.
4600         (cse_insn): Set it if we changed an insn.
4601         (cse_main): Clear cse_altered before each basic block.
4602         Only garbage collect if cse_altered is true afterward.
4603
4604 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4605
4606         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
4607
4608 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
4609
4610         * combine.c (simplify_comparison): Fix typo.
4611
4612 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
4613
4614         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
4615         consistently.
4616
4617 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4618
4619         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
4620         previously inserted node instead of root node.  Caller changed.
4621
4622 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4623
4624         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
4625
4626 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4627
4628         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
4629         __dereg_frame_dtor): Add prototype argument.
4630
4631         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
4632
4633         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
4634
4635         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
4636
4637         * gthr-vxworks.h (__gthread_once): Likewise.
4638
4639         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
4640
4641 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
4642
4643         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
4644         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
4645         stack pointer in functions w/o saved registers, output LEAVE more often
4646         on TARGET_USE_LEAVE machines.
4647
4648 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
4649
4650         * config/arm/arm.c (arm_init_cumulative_args); New function:
4651         Initlaise the CUMULATIE_ARGS strcuture for a function
4652         defintion. 
4653         (arm_function_arg): New function: Determine where to place a
4654         function's argument.  Also handles deciding the function's
4655         call cookie.
4656         (current_file_function_operand): New function: Return true if
4657         the symbol is a function which has already been compiled.
4658         (arm_is_long_call_p): New function: Return true if the
4659         indicated function should be called via a long call.
4660         (arm_valid_type_attribute_p): New function: Return true if the
4661         attribute is a valid, arm specific, attribute.
4662         (arm_comp_type_attribute): New function: Return true if the
4663         two types have compatable, arm specific, attributes.
4664
4665         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
4666         structure.
4667         (FUNCTION_ARG): Redefine to call arm_function_arg.
4668         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
4669         structure field.
4670         (INIT_CUMULATIVE_ARGS): Redefine to call
4671         arm_init_cumulative_args.
4672         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
4673         field. 
4674         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
4675         field. 
4676         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
4677         functions.
4678         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
4679         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
4680         (COMP_TYPE_ATTRIBUTES): Define.
4681
4682         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
4683         if a long call is needed.
4684         (call_value): Call arm_is_long_call_p to decide if a long call
4685         is needed.
4686         (call_symbol): Call arm_is_long_call_p to decide if a long call
4687         is needed.
4688
4689         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
4690
4691 2000-02-11  Denis Chertykov  <denisc@overta.ru>
4692
4693         * README.AVR: New file with information about the avr ports.
4694         * config/avr: New directory with avr port files.
4695
4696 2000-02-11  Andreas Jaeger  <aj@suse.de>
4697
4698         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
4699
4700 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
4701
4702         * cpphash.c: Fix formatting, update commentary.
4703         (dump_definition): Take three separate arguments instead of a
4704         MACRODEF structure argument.
4705         * cpphash.h: Update prototype of dump_definition.
4706         * cppinit.c (cpp_finish): Update call of dump_definition.
4707
4708         * cpplib.c (do_define): Always create new hash entry with
4709         T_MACRO type.  Remove redundant check for redefinition of
4710         poisoned identifier.  Update call of dump_definition.
4711         (do_undef): Don't call check_macro_name.  Rename sym_length to
4712         len.
4713         (do_error, do_warning): Don't use copy_rest_of_line or
4714         SKIP_WHITE_SPACE.
4715         (do_warning): Don't use pedwarn for the actual warning,
4716         only the notice about its not being in the standard.  (Fixes
4717         bug with #warning in system headers.)
4718         (do_ident): Stricter argument checking - accept only a single
4719         string after #ident.  Also, macro-expand the line.
4720         (do_xifdef): Use cpp_defined.  De-obfuscate.
4721
4722         (do_pragma): Split out specific pragma handling to separate
4723         functions.  Use get_directive_token.  Update commentary.  Do
4724         not pass on #pragma once or #pragma poison to the front end.
4725         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
4726         do_pragma_default): New.
4727
4728 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
4729
4730         * jump.c (jump_optimize_1): The first operand in a relational
4731         can be a CONST_INT.
4732         * optabs.c (emit_conditional_move): Handle relationals which
4733         have a known true/false result.
4734
4735 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
4736
4737         * function.c (thread_prologue_and_epilogue_insns): Don't insert
4738         a RETURN insn into a block which already ends with a jump.
4739
4740 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
4741
4742         * haifa-sched.c (BUF_LEN): Increase a lot.
4743
4744 2000-02-11  Nick Clifton  <nickc@cygnus.com>
4745
4746         * configure.in: Add tm_p_file specification for thumb targets.
4747         * configure: Regenerate.
4748
4749         * config/arm/thumb-protos.h: New file: Prototypes for exported
4750         functions defined in thumb.c.
4751
4752 2000-02-11  Robert Lipe  <robertl@sco.com>
4753
4754         * Makefile.in (bootstrap-lean): Remove additional files.
4755         (bootstrap2-lean): Likewise.
4756         (VOL_FILES): List of files for above.
4757
4758 2000-02-11  Nathan Sidwell  <nathan@acm.org>
4759
4760         * cpphash.c (special_symbol): Remove spurious argument to
4761         cpp_lookup.
4762
4763 2000-02-11  Joel Sherrill (joel@OARcorp.com>
4764
4765         * configure.in: (i*86-*-rtems*): Swapped elf and coff
4766         stanzas.
4767         * configure: Rebuilt.
4768
4769 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
4770         
4771         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
4772
4773 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
4774
4775         * pa.c, pa.h: Remove trigraph sequences within comments.
4776
4777 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
4778
4779         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
4780
4781 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
4782
4783         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
4784
4785 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4786         
4787         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
4788
4789 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4790
4791         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
4792         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
4793         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
4794         (ASM_FILE_END): Use c4x_file_end.
4795         * config/c4x/c4x.c (c4x_global_label): New function.
4796         (c4x_external_ref, c4x_file_end): Likewise.
4797
4798         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
4799         (c4x_external_ref, c4x_end_file): Likewise.
4800
4801 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
4802
4803         * cppexp.c: Don't include cpphash.h.
4804         (parse_charconst, cpp_lex): Use cpp_defined.
4805         (cpp_lex): Use get_directive_token throughout.  Remove
4806         unnecessary cases from switch.  Move assertion-handling code
4807         down to OTHER case.
4808         (cpp_parse_expr): If we see '+' or '-', check the context to
4809         determine if they are unary or binary operators.  Streamline
4810         the jumps a bit.  Do not call skip_rest_of_line.
4811
4812         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
4813         static.  Export get_directive_token.  Update commentary.
4814         (cpp_defined): New function.
4815         (do_define): Remove reference to T_PCSTRING.  Call
4816         free_definition to release memory for old definition, when
4817         redefining a macro.
4818         (eval_if_expression): Set only_seen_white to 0 before calling
4819         cpp_parse_expr.  Call skip_rest_of_line after it returns.
4820         (cpp_read_check_assertion): Don't preserve a pointer into the
4821         token buffer across a call to cpp_get_token.
4822
4823         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
4824         * cppfiles.c (redundant_include_p): Use cpp_defined.
4825         * cpphash.c (free_definition): New function.
4826         (delete_macro): Use it.  Update commentary.
4827         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
4828         free_definition.
4829         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
4830         from enum node_type.  Prototype cpp_defined and get_directive_token.
4831         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
4832
4833         * fix-header.c (check_macro_names): Use cpp_defined.
4834         (read_scan_file): Set inhibit_warnings and inhibit_errors in
4835         the options structure.
4836
4837 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4838
4839         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
4840
4841 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
4842
4843         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
4844         rather than die->die_tag.
4845
4846 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4847
4848         * combine.c (make_extraction, force_to_mode): Avoid warning on
4849         mixed-signedness conditionals.
4850         (make_field_assignment, nonzero_bits): Likewise.
4851         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
4852         (store_split_bit_field, extract_split_bit_field): Likewise.
4853         (extract_fixed_bit_field, store_bit_field, 
4854         * expr.c: Change alignment to be unsigned everywhere.
4855         (move_by_pieces, store_constructor_field, store_constructor): 
4856         Alignment parm is unsigned.
4857         (emit_block_move, emit_group_load, emit_group_store): Likewise.
4858         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
4859         (do_compare_rtx_and_jump): Likewise.
4860         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
4861         Compare align with GET_MODE_ALIGNMENT.
4862         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
4863         (get_inner_reference): Likewise.
4864         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
4865         (expand_assignment): Local vars for alignment now unsigned.
4866         (store_constructor, store_field, expand_expr, do_jump): Likewise.
4867         (do_compare_and_jump): Likewise.
4868         (store_field): Call new function expr_align.
4869         * expr.h (emit_block_move, emit_group_load, emit_group_store):
4870         Alignment arg now unsigned.
4871         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
4872         (do_compare_rtx_and_jump, store_bit_field): Likewise.
4873         (extract_bit_field): Likewise.
4874         * fold-const.c (add_double): Add cast to eliminate signedness warning.
4875         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
4876         (get_best_mode): Alignment arg is unsigned.
4877         * rtl.h (move_by_pieces): Likewise.
4878         * store-layout.c (maximum_field_alignment, set_alignment):
4879         Now unsigned.
4880         (layout_decl): Alignment arg is now unsigned.
4881         Remove unneeded casts.
4882         (layout_record, layout_union, layout_type): Remove unneeded casts.
4883         Local alignment variables now unsigned.
4884         (get_best_mode): Alignment arg now unsigned.
4885         * tree.c (expr_align): New function.
4886         * tree.h (expr_align): Likewise.
4887         (maximum_field_alignment, set_alignment): Now unsigned.
4888         (get_inner_reference): Alignment argument is now pointer to unsigned.
4889         * varasm.c (assemble_variable): Add cast to eliminate warning.
4890
4891 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
4892
4893         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
4894         then store directly into op0.
4895
4896         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
4897         the CALL_INSN, and emit the note immediately after it.
4898
4899 2000-02-10  Nick Clifton  <nickc@cygnus.com>
4900
4901         * config/arm/thumb.md (epilogue): Include a (return) in the
4902         generated insn, and emit it using emit_jump_insn not
4903         emit_insn. 
4904
4905 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
4906
4907         * function.c (assign_temp): Change zero-sized arrays to size 1.
4908         * integrate.c (expand_inline_function): Do not update
4909         stack_alignment_needed
4910         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
4911         add some sanity checking, remove optimization for function with
4912         zero frame size.
4913
4914 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4915
4916         * flow.c (mark_regs_live_at_end): Delete unused variables.
4917
4918         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
4919
4920         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
4921         in macro FRAME_GROWS_DOWNWARD.
4922
4923         * stmt.c (expand_end_bindings): Delete unused variable.
4924
4925         * unroll.c (iteration_info): Mark parameter `loop' with
4926         ATTRIBUTE_UNUSED.
4927
4928 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4929
4930         * fixinc/server.c (load_data): Return NULL if the marker line is
4931         not found.
4932         (run_shell): If load_data returns NULL, retry the command once, in
4933         a new shell.
4934
4935         * configure: Rebuilt.
4936
4937 2000-02-09  Bruce Korb  <bkorb@gnu.org>
4938
4939         * gcc/fixincludes:  ** DELETED **
4940         * gcc/fixcpp:  ** DELETED **
4941         * gcc/fixinc-nt.sed:  ** DELETED **
4942         * gcc/just-fixinc:  ** DELETED **
4943         * gcc/Makefile.in:  Removed out-dated commentary
4944         * gcc/configure.in: Removed fast-fixincludes disablement.
4945         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
4946
4947 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
4948         * function.c (thread_prologue_and_epilogue_insns): Uncomment
4949         last change.
4950
4951 2000-02-09  Richard Henderson  <rth@cygnus.com>
4952
4953         * jump.c (delete_insn): Don't delete user labels at -O0.
4954
4955 2000-02-09  Robert Lipe  <robertl@sco.com>
4956
4957         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
4958         Don't link with HOST_LIBS. 
4959
4960 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
4961
4962         * configure.in: Correct --help text for --with-dwarf2.
4963         Put tm-dwarf2.h after other tm files, if it's requested.
4964         * configure: Regenerate.
4965         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
4966         defining it.
4967
4968 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
4969
4970         * cpplib.h: Provide HASHNODE typedef and forward decl of
4971         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
4972         DEFINITION, struct hashnode, struct macrodef, struct
4973         definition, scan_decls prototype, default defn of
4974         INCLUDE_LEN_FUDGE moved elsewhere.
4975
4976         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
4977         definition, and struct hashnode moved here. Remove the unused
4978         'predefined' field from struct definition.  Replace the 'args'
4979         union with its sole member.  All users updated (cpphash.c).
4980         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
4981         multiple include guard.
4982
4983         * cpphash.c (hashf): Make static; use better algorithm; drop
4984         HASHSIZE parameter; return an unsigned int.
4985         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
4986         used. Calculate HASHSIZE modulus here.
4987         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
4988         here.
4989         (create_definition): Drop PREDEFINITION parameter.
4990         * cpplib.c (do_define): Don't calculate a hash value here.
4991         Don't pass (keyword == NULL) to create_definition.
4992
4993         * scan.h: Prototype scan_decls here.
4994         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
4995         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
4996         callers of cpp_lookup and cpp_install updated.
4997         
4998         * cpphash.c (macarg): Hoist all the flag diddling out of the
4999         function...
5000         (macroexpand): ... and out of the loop that calls macarg.
5001         Skip over the initial paren before macro arguments with
5002         cpp_get_non_space_token; point may be some distance before
5003         that paren.  Abort if it's not there.
5004
5005         * cpplib.c (parse_clear_mark): Delete function.
5006         (parse_set_mark, parse_goto_mark): Make static.
5007         (ACTIVE_MARK_P): New macro.
5008         (skip_block_comment, skip_line_comment): Do not bump the line
5009         if ACTIVE_MARK_P is true.
5010         (cpp_pop_buffer): The buffer to be popped may not have an
5011         active mark.
5012         (cpp_get_token): When looking for the initial paren before
5013         macro arguments, only set a mark in a file buffer, Always
5014         return to that mark before proceeding to call macroexpand or
5015         return a NAME token.
5016
5017         * cpplib.h: Remove prototypes of parse_set_mark,
5018         parse_clear_mark, parse_goto_mark.
5019         (struct cpp_options): Rename 'put_out_comments' to
5020         'discard_comments' and invert its sense.
5021         * cppinit.c, cpphash.c, cpplib.c: All users of
5022         put_out_comments changed to use discard_comments, with
5023         opposite sense.
5024
5025 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
5026
5027         * function.c (thread_prologue_and_epilogue_insns): Don't delete
5028         the edge from a block that both jumps and falls through to the
5029         fallthru block.
5030
5031 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
5032
5033         * config/arm/arm.md (movsi): In PIC mode, make sure that a
5034         constant source address is legitimate.
5035
5036 2000-02-09  Philip Blundell  <pb@futuretv.com>
5037
5038         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
5039         correctly.
5040
5041         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
5042         generating PIC.
5043         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
5044
5045 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
5046
5047         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
5048         ends with a newline and a NUL.  Don't be so clever manipulating
5049         strings.
5050
5051 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
5052
5053         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
5054         not to BIGGEST_ALIGNMENT.
5055
5056 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
5057
5058         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
5059         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
5060         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
5061         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
5062         * frame.c (execute_cfa_insn): Handle 
5063         DW_CFA_GNU_negative_offset_extended.
5064
5065 2000-02-08  Richard Henderson  <rth@cygnus.com>
5066
5067         * flow.c (tidy_fallthru_edges): Split out from ...
5068         (delete_unreachable_blocks): ... here.
5069         (find_basic_blocks): Use it.
5070
5071 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5072
5073         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
5074
5075 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
5076
5077         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
5078         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
5079         (fix-header.o): Don't depend on cpphash.h.
5080
5081         * scan.c (hashstr): New function. 
5082         * scan.h: Prototype it.
5083         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
5084         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
5085         hashstr.  Report hash table statistics.  Add private     
5086         definition of xrealloc.
5087
5088 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5089
5090         * i386.h (TARGET_SWITCHES): Fix typo in option name.
5091
5092 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
5093
5094         * function.c (thread_prologue_and_epilogue_insns): Don't replace
5095         jumps with returns unless they are jumps to the fallthru block.
5096
5097 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
5098
5099         * i386.md (addqi3_cc): Fix contraints.
5100
5101 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5102
5103         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
5104
5105 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
5106
5107         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
5108         carriage return after a macro name.
5109
5110 2000-02-07  Fred Fish  <fnf@be.com>
5111
5112         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
5113         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
5114
5115 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
5116
5117         * cppfiles.c (deps_output): Count spacers in deps_column.
5118
5119 2000-02-07  Neil Booth  <NeilB@earthling.net>
5120
5121         * cppinit.c (initialize_dependency_output): If there is no
5122         suffix, don't try to look for known suffixes.  Use strrchr.
5123         (cpp_start_read): Remove duplicate initialization.
5124
5125 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
5126
5127         * calls.c (compute_argument_block_size): New argument
5128         preferred_stack_boundary.
5129         (expand_call): update cfun->preferred_stack_boundary, update call of
5130         compute_argument_block_size
5131         (emit_library_call): Increate cfun->preferred_stack_boundary
5132         to PREFERRED_STACK_BOUNDARY
5133         (emit_library_call_value): Likewise.
5134         * explow.c (allocate_dynamic_stack_spave): Likewise.
5135         * function.c (prepare_function_start): Set
5136         cfun->preferred_stack_boundary
5137         * function.h (struct function): Add preferred_stack_boundary field.
5138         * integrate.c (expand_inline_function): Update
5139         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
5140         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
5141         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
5142
5143 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
5144
5145         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
5146         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
5147         cpp_pedwarn, cpp_pedwarn_with_line,
5148         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
5149         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
5150         v_cpp_error_with_line, v_cpp_warning_with_line,
5151         cpp_message_from_errno, cpp_perror_with_name): Delete.
5152
5153         * cpperror.c (cpp_print_containing_files): Take starting
5154         buffer as argument.
5155         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
5156         (v_cpp_message): Now called directly by all entry points.
5157         Remove -1 case.
5158         (cpp_pfatal_with_name, cpp_message): Delete.
5159         (cpp_notice_from_errno, cpp_ice): New functions.
5160         (cpp_notice): Is now for reporting error conditions, just
5161         without an associated file.
5162         (cpp_error, cpp_error_with_line): Don't do anything if
5163         opts->inhibit_errors is on.
5164         (cpp_pedwarn_with_file_and_line): Take column argument also.
5165
5166         * cpplib.h: Update prototypes of exported functions.
5167         (struct cpp_options): Add inhibit_errors.
5168
5169         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
5170         non-error messages.  Include intl.h.
5171
5172         * cppinit.c, cppmain.c: Likewise.  Also, use
5173         cpp_notice_from_errno instead of cpp_perror_with_name or
5174         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
5175
5176         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
5177         report internal errors.
5178
5179         * cpplib.c (do_define): Switch bcopy to memcpy.
5180         Give cpp_pedwarn_with_file_and_line a dummy column argument.
5181
5182         * cpplib.c (copy_rest_of_line): Revert previous change: don't
5183         bail out early if we hit a line comment.
5184
5185 2000-02-06  Richard Henderson  <rth@cygnus.com>
5186
5187         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
5188         * basic-block.h: Declare them.
5189         * emit-rtl.h (active_insn_p): New.
5190         (next_active_insn, prev_active_insn): Use it.
5191         * rtl.h: Declare it.
5192         * function.c (emit_return_into_block): New.
5193         (thread_prologue_and_epilogue_insns): Insert return insns instead
5194         of epilogues when possible.
5195         * jump.c (jump_optimize_1): Remove code to insert a return insn
5196         on the fallthru to the exit block.
5197
5198         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
5199         and for non-empty stack frames.
5200         * i386.md (return): Expand to return-pop as needed.
5201
5202 2000-02-06  Richard Henderson  <rth@cygnus.com>
5203
5204         * simplify-rtx.c (simplify_relational_operation): Canonicalize
5205         constant to op1 for testing.
5206
5207 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5208
5209         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
5210         (fixuns_truncqfqi2): Use it.
5211
5212 2000-02-06  Richard Henderson  <rth@cygnus.com>
5213
5214         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
5215         as a TYPE_LEA insn.
5216
5217         * i386.md (widening and peepholes): Mask the constant instead of
5218         using gen_lowpart.
5219
5220 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
5221
5222         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
5223         input pointer before possibly branching off to the backslash
5224         code.
5225         * cpphash.c (macroexpand): Correctly delete \r escapes when
5226         stringifying parameters.
5227         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
5228         if we can; bail out early if we hit a line comment.
5229         (handle_directive): Treat '# 123' in an .S file just like
5230         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
5231         Return 1 for '# not_a_directive'.
5232         (get_directive_token): Pop macro buffers here, so that
5233         cpp_get_token can't sneakily move past a newline.
5234         Add sanity checks. 
5235         (cpp_get_token): goto randomchar if handle_directive returns 0.
5236
5237         * cppalloc.c: Update copyright.
5238         * cpplib.c: Merge all the static function prototypes into one
5239         block.
5240         * cpplib.h: Remove #if 0 block.
5241
5242         * cpperror.c: Remove #ifdef EMACS block.
5243         * cppmain.c: Likewise.
5244         * cpphash.c: Remove #if 0 blocks.
5245         * cppinit.c: Remove #if 0 blocks, and the -lint option.
5246         * cpplib.c: Remove #if 0 blocks and code referencing
5247         pcp_inside_if or for_lint.  Remove duplicate error message.
5248         Fix error messages for #else after #else or #elif.  Reformat.
5249         Remove archaic TODO list.
5250         * cpplib.h: Remove pcp_inside_if and for_lint flags.
5251
5252 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
5253
5254         * i386/osf1elf.h: Add missing backslash to multiline string.
5255
5256 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5257
5258         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
5259
5260 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5261
5262         * Makefile.in (c-common.o): Depend on $(EXPR_H).
5263
5264         * c-common.c: Include expr.h.
5265
5266         * c-pragma.c (mark_align_stack): Add prototype.
5267
5268         * caller-save.c (add_stored_regs): Likewise.
5269
5270         * combine.c (record_promoted_value): Likewise.
5271
5272         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
5273         Likewise.
5274
5275         * cppinit.c (new_pending_define): Likewise.
5276
5277         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
5278
5279         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
5280         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
5281         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
5282         class_scope_p): Likewise.
5283
5284         * dwarf2out.h (dwarf2out_set_demangle_name_func,
5285         dwarf2out_add_library_unit_info): Likewise.
5286
5287         * ggc.h (ggc_page_print_statistics): Likewise.
5288
5289         * haifa-sched.c (propagate_deps): Likewise.
5290
5291         * reg-stack.c (next_flags_user, record_label_references): Likewise.
5292
5293         * rtl.h (set_stack_check_libfunc): Likewise.
5294
5295         * toplev.h (set_fatal_function): Likewise.
5296
5297         * toplev.c (set_fatal_function): Delete prototype.
5298         
5299         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
5300         
5301 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
5302
5303         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
5304         (FUNC_END): Likewise.
5305
5306 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5307
5308         * caller-save.c: Include tm_p.h.
5309
5310 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5311
5312         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
5313
5314 2000-02-04  Neil Booth  <NeilB@earthling.net>
5315
5316         * cccp.c (main): Check 'dir' for a NULL pointer before passing
5317         it to strcmp.
5318
5319 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
5320
5321         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
5322         * genflags.c: Use the max_operand_1 logic from genemit.c to
5323         calculate how many arguments gen_insn prototypes have.  Remove
5324         NO_MD_PROTOTYPES ifdefs from the generated file.
5325         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
5326         file.  Cast gen_insn initializers to insn_gen_fn.
5327         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
5328         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
5329
5330 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5331
5332         * fixinc/Makefile.in (HDR): Add machname.h.
5333         (clean): Likewise.
5334
5335 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5336
5337         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
5338         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
5339         (c4x_cpu_version): Ditto.
5340         * config/c4x/c4x-protos.h: ... here.
5341
5342 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
5343
5344         * dwarf2out.c (add_abstract_origin_attribute): Don't call
5345         gen_abstract_function on our context if we're a nested function.
5346
5347 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5348
5349         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
5350         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
5351
5352 2000-02-04  Bruce Korb  <bkorb@gnu.org>
5353
5354         * fixinc/genfixes(machname.h):
5355         Move the functionality from gen-machine.h into this file.
5356         UNdef MN_NAME_PAT if there are no names to change.
5357         Also, be a little kinder when AutoGen is not present.
5358
5359         * fixinc/Makefile.in(machname.h):
5360         Change the generation rule to use genfixes.
5361
5362         * fixinc/fixfixes.c(machine_name):
5363         machine_name_fix's functionality now dependent upon whether
5364         MN_NAME_PAT is defined.
5365
5366         * fixinc/fixtests.c(machine_name):
5367         ditto.
5368
5369         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
5370         of MN_NAME_PAT.
5371
5372         * fixinc/fixlib.h(mn_get_regexps):
5373         ditto
5374
5375         * fixinc/gen-machine.h: DELETED
5376
5377 2000-02-04  Jan Hubicka  <jh@suse.cz>
5378             Richard Henderson  <rth@cygnus.com>
5379
5380         * i386.c (SAVE_REGS_FIRST): Remove.
5381         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
5382         (ix86_compute_frame_size): Likewise.
5383         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
5384         (ix86_emit_restore_regs): Remove.
5385         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
5386         when a frame pointer is in use.
5387         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
5388         instead of pop to restore a register when profitable; emit leave
5389         when profitable.
5390         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
5391         as a TYPE_LEA insn.
5392         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
5393         * i386.md (prologue_allocate_stack): Remove.
5394         (epilogue_deallocate_stack): Remove.
5395         (pro_epilogue_adjust_stack): New.
5396
5397 2000-02-04  Richard Henderson  <rth@cygnus.com>
5398
5399         * function.c (diddle_return_value): Rework to use a callback function.
5400         Use current_function_return_rtx if it's been set up.
5401         (do_clobber_return_reg, clobber_return_register): New.
5402         (do_use_return_reg, use_return_register): New.
5403         (expand_function_end): Use them.
5404         * stmt.c (expand_null_return): Likewise.
5405         * function.h: Declare them.
5406         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
5407         (mark_reg): Change arguments as appropriate for callback.
5408         * integrate.c (expand_inline_function): Revert 19 Jan change.
5409
5410 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5411
5412         * tm.texi (Values in Registers): Fix typo: "fo" "for".
5413         (Misc): Say the scheduler, not the Haifa scheduler.
5414
5415 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
5416
5417         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
5418         when in_mem is set.  Update all callers.
5419
5420 2000-02-04  Richard Henderson  <rth@cygnus.com>
5421
5422         * i386/openbsd.h (INT_ASM_OP): Define.
5423
5424 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5425
5426         * tm.texi: Fix various typos.
5427
5428 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
5429
5430         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
5431         (MD_STARTFILE_PREFIX_1): New macro.
5432
5433 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
5434
5435         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
5436         destination when needed.
5437         (strmovsi, strsetsi): New expander.
5438         (strmovsi_1, strsetsi_1): New pattern.
5439         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
5440         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
5441         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
5442         * invoke.texi (align-stringops, inline-all-stringops): Document.
5443
5444 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
5445
5446         * i386/netbsd.h (INT_ASM_OP): Define.
5447
5448 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
5449
5450         * cpplib.h (cpp_reader): Add new flag, no_directives.
5451         * cpphash.c (macarg): Set it.
5452         * cpplib.c (handle_directive): If no_directives is on and we
5453         find a directive, issue an error and discard the line.
5454
5455 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
5456
5457         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
5458         FP constants.  Add ! TARGET_FPU check for FP constants.
5459
5460 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
5461         
5462         * flow.c (find_basic_blocks): Don't kill label_value_list
5463         here.
5464         (cleanup_cfg): Kill it here.
5465
5466 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5467
5468         * expr.c (store_field): Ensure ALIGN is no stricter than the
5469         alignment of EXP.
5470
5471 2000-02-02  Richard Henderson  <rth@cygnus.com>
5472
5473         * jump.c (delete_insn): Partially revert 19 Jan change; 
5474         don't convert unused code labels to notes at -O0.
5475
5476 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5477
5478         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
5479         split_all_insns to recreate REG_LABEL notes for flow2 pass.
5480
5481 2000-02-01  Richard Henderson  <rth@cygnus.com>
5482
5483         * i386.c (general_no_elim_operand): New.
5484         (nonmemory_no_elim_operand): New.
5485         (ix86_expand_move): Copy eliminable operands before a push.
5486         * i386-protos.h: Declare new functions.
5487         * i386.h (CAN_ELIMINATE): Simplify.
5488         (PREDICATE_CODES): Update.
5489         * i386.md (push insns): Don't allow eliminable register operands.
5490
5491 2000-02-01  Richard Henderson  <rth@cygnus.com>
5492
5493         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
5494         replace BLKmode with DECL_RTL's mode.
5495
5496 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
5497
5498         * frame.c (find_fde): Convert for loop to do-while so compiler
5499         sees it's always executed at least once.
5500         * libgcc2.c (BBINBUFSIZE): Kill.
5501         (__bb_init_prg): Use fgets.
5502         (__bb_exit_trace_func): Don't paste strings.
5503         * unroll.c (unroll_loop): Initialize unroll_type, not
5504         unroll_number, and tweak logic to match.
5505
5506         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
5507         all failure paths.
5508         (ix86_flags_dependant): Likewise.  Disentangle control flow.
5509         (ix86_sched_reorder): Break guts out to
5510         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
5511         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
5512         any possible use.
5513
5514         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
5515         use string concatenation.  Don't save and restore esi.
5516
5517         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
5518         (machname.h): Remove script to separate file.  Use two-step
5519         sequence so target is not created if script fails.
5520         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
5521         identifiers are defined.
5522         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
5523         an empty string, machine_name doesn't need to do anything at
5524         all.
5525         (is_cxx_header): Add more cases to regexp.
5526         * fixinc/fixlib.h: Update prototype.
5527         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
5528         mn_get_regexps.
5529         * fixinc/fixincl.c: Define NO_BOGOSITY.
5530
5531         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
5532         (hp_sysfile): Add missing comma.
5533         (math_exception): Put the wrapper ifdefs at the beginning and
5534         the end of the file.
5535         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
5536
5537 2000-02-01  Richard Henderson  <rth@cygnus.com>
5538
5539         * sparc.c (fp_zero_operand): Turn into a normal predicate.
5540         Use CONST0_RTX.  Update all callers.
5541         * sparc.h, sparc-protos.h: Update accordingly.
5542         * sparc.md (fp mov insns): Use fp_zero_operand directly
5543         where applicable.
5544
5545 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5546
5547         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
5548         example.
5549
5550 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5551
5552         * Makefile.in (specs.ready): New target.
5553         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
5554
5555 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5556
5557         * fixinc.irix: Use unique filenames for writing into /tmp,
5558         * fixinc.ptx: Likewise.
5559         * fixinc.sco: Likewise.
5560         * fixinc.svr4: Likewise.
5561         * fixinc.winnt: Likewise.
5562
5563 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5564
5565         * tsystem.h: New file.
5566
5567         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
5568         s-crtS): Depend on tsystem.h.
5569
5570         * crtstuff.c: Include tsystem.h.
5571         * frame.c: Likewise.
5572         * libgcc2.c: Likewise.
5573
5574 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
5575
5576         * builtins.c (expand_builtin_memset): Expand for variable sized
5577         lengths too.
5578
5579 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
5580
5581         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
5582         on ABI.
5583
5584 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5585
5586         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
5587
5588         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
5589
5590 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
5591
5592         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
5593         case 3->2 combining (combining with splitting) in which 2 is CC0
5594         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
5595         checked at the begining of the function with the aid of calling 
5596         function 'can_combine_p'. 
5597
5598 2000-01-31  Dave Brolley  <brolley@redhat.com>
5599
5600         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
5601
5602 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
5603
5604         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
5605         new label.
5606
5607 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5608
5609         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
5610         
5611         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
5612         PROTO -> PARAMS.
5613
5614 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
5615
5616         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
5617         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
5618         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
5619         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
5620         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
5621         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
5622         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
5623         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
5624         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
5625         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
5626         
5627         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
5628         Add %(cpp_cpu) to CPP_SPEC.
5629
5630         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
5631         Add %(cc1_cpu) to CC1_SPEC.
5632
5633 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
5634
5635         * c-decl.c (c_decode_option): Accept optional numeric argument to
5636         -Wformat and set warn_format.
5637         * c-common.c: Don't emit warning about non-constant printf format
5638         string unless warn_format > 1.
5639
5640 2000-01-30  Richard Henderson  <rth@cygnus.com>
5641
5642         * alpha.md (return_internal): Allow after reload only.
5643
5644 2000-01-30  Richard Henderson  <rth@cygnus.com>
5645
5646         * i386.c (ix86_compute_frame_size): Omit padding1 if the
5647         local frame size is zero.
5648
5649 2000-01-30  Richard Henderson  <rth@cygnus.com>
5650
5651         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
5652         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
5653         * alpha.md (return): Turn into an expander.
5654         (return_internal): Don't use $26.
5655         (epilogue): Emit the return insn.
5656
5657 2000-01-30  Richard Henderson  <rth@cygnus.com>
5658
5659         * alpha.md (negtf2, abstf2): Fix word order thinko.
5660         (extendsftf2): New.
5661         (trunctfsf2): Avoid intermediate rounding errors.
5662
5663 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
5664
5665         * cppfiles.c (find_position): Drop 'colp' argument, return the
5666         new line base.
5667         (read_and_prescan): Adjust to match.  Don't ever manipulate
5668         line or line_base except via find_position.
5669
5670 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
5671
5672         * c-parse.in: Apply Ulrich's changes from c-parse.y.
5673         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
5674         Regenerate.
5675
5676 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
5677
5678         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
5679         just print "<command line>".  If 'filename' is null or an
5680         empty string, print "<stdin>" for the filename.
5681         * cpplib.c (do_define): Don't print the 'location of the
5682         previous definition' message if we're still parsing the
5683         command line.
5684         (cpp_pedwarn_with_file_and_line): Always call
5685         cpp_file_line_for_message.
5686
5687 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
5688
5689         * flow.c (mark_regs_live_at_end): Fix typo.
5690
5691 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
5692
5693         * c-common.c: Adjust variable names, comments, help strings to c99.
5694         * c-lex.c: Likewise.
5695         * c-parse.y: Likewise.
5696         * c-tree.h: Likewise.
5697         * cccp.c: Likewise.
5698         * cpplib.h: Likewise.
5699         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
5700         * cppinit.c: Likewise.
5701
5702 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5703
5704         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
5705         * c4x.c: Define the optab rtx values.
5706         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
5707         (c4x_emit_libcall): Use new optab rtx values.
5708         (c4x_emit_libcall3): Likewise.
5709         (c4x_emit_libcall_mulhi): Likewise.
5710         * c4x-protos.h: Add prototypes for optab rtx values and change
5711         prototypes for above c4x_emit_libcall functions.
5712
5713 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5714
5715         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
5716         syntax is used.
5717         (c4x_function_prologue): Use regnames intead of float_reg_names when
5718         TI syntax is used.
5719         (c4x_function_epilogue): Likewise.
5720         (c4x_print_operand): Likewise.
5721         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
5722         * c4x.md (set_high): Disable for TARGET_TI.
5723
5724 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5725
5726         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
5727         of framepointer + constant to ADDR_REGS class.
5728         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
5729         * c4x.c (std_or_reg_operand): New function.
5730         * c4x-protos.h (std_or_reg_operand): Prototype it.
5731
5732 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5733
5734         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
5735                 object names as libgcc2.c.
5736         * libgcc.S: Use newly defined names.
5737
5738 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
5739         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
5740         function.
5741         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
5742         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
5743         (FLOW_LOOP_LAST_BLOCK): Likewise.
5744
5745 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5746
5747         * basic-block.h (struct loop): New fields 'first' and 'last'.
5748         * flow.c (flow_loops_find): Compute loop->first and loop->last.
5749         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
5750         and loop->last to check for NOTE_INSN_LOOP_END.
5751
5752 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
5753
5754         * predict.c (estimate_probability): Use the new FIRST and LAST fields
5755         of the loop descriptor rather than HEADER and LATCH. Also added
5756         missing break statements as well making some coding style modifications
5757         as suggested by Michael Hayes.
5758
5759 2000-01-28  Richard Henderson  <rth@cygnus.com>
5760
5761         * flow.c (find_basic_blocks): Remove do_cleanup argument.
5762         Break out that code ...
5763         (cleanup_cfg): ... here.
5764         (commit_one_edge_insertion): Detect a return instruction being
5765         emitted to an edge.  Emit a barrier following; clear fallthru.
5766         (commit_edge_insertions): Verify CFG consistency.
5767         * function.c (expand_function_start): Kill unused variable.
5768         (expand_function_end): Likewise.
5769         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
5770         to insert the epilogue.
5771
5772         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
5773         (delete_null_pointer_checks): Likewise.
5774         * output.h: Likewise.
5775         * reg-stack.c (reg_to_stack): Likewise.
5776         * toplev.c (rest_of_compilation): Likewise.  Run
5777         thread_prologue_and_epilogue_insns after rebuilding the CFG.
5778
5779 2000-01-28  Richard Henderson  <rth@cygnus.com>
5780
5781         * Makefile.in (flow.o): Revert 24 Jan change.
5782         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
5783         FUNCTION_VALUE result to DECL_RESULT's mode.
5784
5785         * haifa-sched.c (schedule_insns): Don't recompute reg info
5786         after reload.
5787
5788 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
5789
5790         * configure.in: Make --enable-cpplib the default.
5791         * configure: Regenerate.
5792         * gcc.dg/990119-1.c: No longer expected to fail.
5793
5794 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
5795
5796         * jump.c (jump_optimize_1): Delete an optimization that is also done
5797         by merge_blocks in flow.
5798
5799 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5800
5801         * diagnostic.c (build_message_string, output_printf,
5802         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
5803         (build_location_prefix): Fix non-literal format string.
5804
5805 2000-01-27  Richard Henderson  <rth@cygnus.com>
5806
5807         * alpha.md (trunctfsf2): New.
5808
5809 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
5810
5811         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
5812
5813 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
5814
5815         * cppinit.c (cpp_handle_option): Recognize C++ comments under
5816         -std=gnu89.
5817         * cpplib.c (skip_block_comment, skip_line_comment): Split code
5818         out of...
5819         (skip_comment) ... here.  Permit C++ comments in system
5820         headers always.  Warn about C++ comments in user code under
5821         -std=gnu89 -pedantic.
5822         (copy_comment): Use skip_comment.
5823         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
5824         return EOF.
5825         (consider_directive_while_skipping, do_else, do_endif): Call
5826         validate_else unconditionally.
5827         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
5828         text after the conditional in a system header.
5829         * cpplib.h (struct cpp_buffer): Add flag
5830         warned_cplusplus_comments.
5831
5832 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
5833
5834         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
5835         Use unshare_all_rtl_1.
5836         (unshare_all_rtl_again): New function.
5837         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
5838
5839         * function.c (purge_addressof_1): Use unshare_all_rtl_again
5840         rather than resetting the 'used' flags ourself.
5841
5842         * toplev.c (rest_of_compilation): Add current_function_decl
5843         to the unshare_all_rtl call.
5844         * tree.h: Prototype unshare_all_rtl.
5845         * rtl.h: Prototype unshare_all_rtl_again here.
5846
5847 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
5848
5849         * genoutput.c (output_prologue): Include ggc.h in generated
5850         files.
5851         * Makefile.in (insn-output.o): Depends on ggc.h.
5852
5853 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
5854             Hans-Peter Nilsson  <hp@bitrange.com>
5855
5856         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
5857         Remove redundant include of xm-ns32k.h.
5858         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
5859         Remove redundant include of xm-ns32k.h.
5860         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
5861         Remove redundant include of xm-ns32k.h.
5862         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
5863
5864         * ns32k/ns32k.h: Update comment on multiply-add instructions.
5865         (TARGET_SWITCHES): Add documentation strings.
5866         (DWARF_FRAME_REGNUM): Override default definition.
5867         (REG_CLASS_CONTENTS): Add comments.
5868         (SUBSET_P): Format to reduce line length.
5869         (SMALL_REGISTER_CLASSES): Make a run time option.
5870         (GO_IF_NONINDEXED_ADDRESS): Reformat.
5871         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
5872         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
5873         (regclass_map): fix typo in comment.
5874         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
5875         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
5876         (trace, reg_or_mem_operand): Delete, unused function.
5877         (calc_address_cost): Small offsets are cheaper than large ones.
5878         (expand_block_move): Generate more efficient code when bytes is a
5879         known at compile time.
5880         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
5881         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
5882         instead of reg_or_mem_operand.
5883
5884         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
5885         not general_operand.  Similarly use "=rm" or stricter, not "=g".
5886         For input operands, use stricter constraints than "g" if not
5887         general_operand.  Similarly use stricter predicate than
5888         "general_operand" when stricter constraints than "g" are present,
5889         except for matching constraints.
5890         (movstrsi): Use "memory_operand" for operands 0 and 1.
5891         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
5892         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
5893         not reg_or_mem_operand.
5894         (udivmoddisi4): Ditto.
5895         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
5896         Use nonimmediate_operand for operand 3, not register_operand.
5897         (udivmoddiqi4_internal): Use register_operand for operand 1, not
5898         reg_or_mem_operand.
5899
5900 2000-01-27  Fred Fish  <fnf@be.com>
5901
5902         * gthr-posix.h: Fix typo; compatibily -> compatibility.
5903         * gthr-single.h: Likewise.
5904         * gthr-solaris.h: Likewise.
5905         * gthr-vxworks.h: Likewise.
5906         * gthr-win32.h: Likewise.
5907         * gthr.h: Likewise.
5908
5909 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
5910
5911         * cppinit.c: Add " (cpplib)" to end of string printed by
5912         -v / --version.
5913
5914 2000-01-27  Richard Henderson  <rth@cygnus.com>
5915
5916         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
5917         testing for a signed comparison.
5918         (alpha_emit_floatuns): New.
5919         * alpha-protos.h: Declare it.
5920         * alpha.md (floatunsdisf2, floatunsdidf2): New.
5921         (extendsfdf2): Tidy.
5922
5923 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
5924
5925         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
5926         no -g option specifying debugging format, default to -gstabs+.
5927
5928 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5929
5930         * calls.c (special_function_p): New argument fork_or_exec.
5931         (expand_call): When profile_arc_flag is set and the function
5932         is in the fork_or_exec group, call __bb_fork_func first.
5933         * libgcc2.c, _bb module (__bb_fork_func): New function.
5934         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
5935         output file.
5936         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
5937         * tree.h (special_function_p): Update prototype.
5938
5939 2000-01-26  Richard Henderson  <rth@cygnus.com>
5940
5941         * alpha.c (alpha_split_tfmode_pair): New.
5942         * alpha-protos.h: Declare it.
5943         * alpha.md (abstf2, negtf2): New.
5944         (movtf insn): Add input G constraint.
5945         (movtf splitter): Use alpha_split_tfmode_pair.
5946
5947 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5948
5949         * i386/cygwin.h: PROTO -> PARAMS.
5950
5951 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
5952
5953         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
5954         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
5955         using _Qp_cmp/_Q_cmp and testing the return value.
5956         (print_operand): Call reverse_condition_maybe_unordered if
5957         we are handling CCFPmode or CCFPEmode.
5958         Handle ORDERED, UN* and LTGT comparisons.
5959         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
5960         if not TARGET_HARD_QUAD.
5961         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
5962         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
5963         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
5964         Adjust gen_b* calls so that they reflect return comparison of
5965         sparc_emit_float_lib_cmp.
5966
5967 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5968
5969         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
5970         incoming operands array is large enough for one more operand.
5971         (alpha_emit_xfloating_arith): Likewise.
5972
5973 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
5974
5975         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
5976         file with one line and no trailing newline.
5977         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
5978         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
5979         checking if the match is on the line.
5980         * fixinc/gnu-regex.c: Provide regerror not __regerror.
5981
5982 2000-01-25  Richard Henderson  <rth@cygnus.com>
5983
5984         * sparc.c (output_cbranch): Fix accidental squashing of the
5985         fp branch pre-delay nop.
5986
5987 2000-01-25  Richard Henderson  <rth@cygnus.com>
5988
5989         * tree.def (UNNE_EXPR): Remove.
5990         * c-typeck.c (build_binary_op): Don't handle it.
5991         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
5992
5993         * rtl.def (UNNE): Remove.
5994         (LTGT): Add.
5995         * jump.c (reverse_condition): Update accordingly.
5996         (swap_condition): Likewise.
5997         (comparison_dominates_p): Handle unordered comparisons.
5998         (reverse_condition_maybe_unordered): New.
5999         * rtl.h (reverse_condition_maybe_unordered): Declare.
6000
6001         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
6002         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
6003         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
6004         * sparc.md (bltgt): New.
6005
6006 2000-01-25  Nick Clifton  <nickc@redhat.com>
6007
6008         * emit-rtl.c (emit_insn): Only check machine class insns for
6009         improper emission of a RETURN.
6010
6011 2000-01-25  Richard Henderson  <rth@cygnus.com>
6012
6013         * Makefile.in (flow.o): Depend on $(EXPR_H).
6014         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
6015         duplicate the structure of diddle_return_value for keeping regs live.
6016
6017 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6018
6019         * loop.c (current_loop_info): Delete.
6020         (consec_sets_invariant_p): Add loop argument, update callers.
6021         (get_condition_for_loop): Likewise.
6022         (count_nonfixed_reads, update_giv_derive): Likewise.
6023         (simplify_giv_expr, general_induction_var): Likewise.
6024         (consec_sets_giv, recombine_givs): Likewise.
6025         (move_movables): Delete loop_start and loop_end arguments,
6026         add loop argument, and update callers.
6027         (find_mem_givs, check_final_value): Likewise.
6028         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
6029         (loop_invariant_p): Rename from invariant_p, add loop argument, and
6030         update callers.
6031         (basic_induction_var): Add loop argument, delete loop_level argument,
6032         and update callers.
6033         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
6034         add loop argument, and update callers.
6035         (find_splittable_regs, find_splittable_givs): Likewise.
6036         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
6037         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
6038         (biv_total_increment): Delete loop_start and loop_end arguments;
6039         update callers.
6040         (precondition_loop_p): Delete loop_start and loop_info arguments;
6041         update callers.
6042         * loop.h (get_condition_for_loop): Add loop argument.
6043         (biv_total_increment): Delete loop_start and loop_end arguments.
6044         (precondition_loop_p): Delete loop_start and loop_info arguments;
6045         add loop argument.
6046         (final_biv_value): Delete loop_start and loop_end arguments;
6047         add loop argument.
6048         (final_giv_value, back_branch_in_range_p): Likewise.
6049
6050 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
6051
6052         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
6053
6054 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
6055
6056         * Makefile.in (c-gperf.h) : Change the "See" pointer to
6057         point to the new "generated_files" doc.
6058
6059 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
6060
6061         * config/fp-bit.c (_unord_f2): Fix typo.
6062
6063 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
6064
6065         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
6066         c-typeck.c, objc/objc-act.c: Remove all references to obstack
6067         functions obsoleted by GC, such as push_obstacks_nochange,
6068         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
6069         and code which existed only to decide whether or not to call
6070         them.  Remove now-unused NESTED argument from start_function;
6071         all callers changed.  Do not change behavior based on ggc_p.
6072         The use of the ixp_obstack in c-iterate.c and the util_obstack
6073         in objc/objc-act.c remain; these are not obsoleted by garbage
6074         collection.
6075         * c-tree.h: Update prototype for start_function.
6076
6077         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
6078
6079 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
6080
6081         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
6082         mips16.
6083
6084 2000-01-25  Richard Henderson  <rth@cygnus.com>
6085
6086         * sparc-protos.h (select_cc_mode): Declare.
6087         * sparc.c (select_cc_mode): New.  Handle unordered compares.
6088         (output_cbranch): Always reverse via code change.  Handle
6089         unordered compares.  Factor tests and string updates.
6090         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
6091         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
6092         * sparc.md (bunordered, bordered): New.
6093         (bungt, bunlt, buneq, bunge, bunle): New.
6094
6095 2000-01-25  Richard Henderson  <rth@cygnus.com>
6096
6097         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
6098         * ggc-common.c (ggc_add_rtx_varray_root): New.
6099         (ggc_mark_rtx_varray): New.
6100         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
6101         functions down below ggc_mark_foo.
6102         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
6103
6104 2000-01-25  Richard Henderson  <rth@cygnus.com>
6105
6106         * alpha.c (secondary_reload_class): Don't allocate a secondary
6107         for integral mode memories into FLOAT_REGS.  Rearrange the more
6108         complicated memory expression inward.
6109
6110 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
6111
6112         * inclhack.def: Fixes to play nicer with FreeBSD, and
6113         corrections to comments.
6114         (cxx_unready): Add select expression.
6115         (irix_sockaddr): Add bypass expression.
6116         (machine_ansi_h_va_list): New fix.
6117         (stdio_va_list): No need to edit _BSD_VA_LIST_.
6118         Split out addition of "#include <stdarg.h>" to...
6119         (stdio_stdarg_h): ... here.
6120         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
6121         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
6122         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
6123         size_t.
6124         (ultrix_ifdef): Tighten up select expression.
6125
6126         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
6127         re_ct and max_mach to avoid use of shell.  Make printed names
6128         match names in inclhack.def.  Use static copyright date.
6129         Don't count c_test and test expressions as requiring regex_t
6130         slots.  Add some commentary.
6131         * inclhack.tpl: Do not include the 'This script contains N
6132         fixup scripts' line if PROGRAM is defined.  Use static
6133         copyright date.
6134
6135 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
6136
6137         * dwarf2out.c: include "varray.h", not dyn-string.h.
6138         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
6139         (addr_const_to_string, addr_to_string): Lose.
6140         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
6141         (struct dw_val_struct): val_addr is now an rtx.
6142         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
6143         (used_rtx_varray): New varray.
6144         (dwarf2out_init): Initialize it.
6145         (save_rtx): New fn.
6146         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
6147         addr_to_string.
6148         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
6149         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
6150         * Makefile.in (dwarf2out.o): Update dependencies.
6151
6152 2000-01-24  Richard Henderson  <rth@cygnus.com>
6153
6154         * i386.c (i386_dwarf_output_addr_const): New.
6155         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
6156
6157         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
6158         if defined.
6159         * dwarfout.c (output_mem_loc_descriptor): Likewise.
6160         * i386.c (i386_simplify_dwarf_addr): New.
6161         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
6162
6163 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
6164
6165         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
6166         TYPE_STUB_DECL is NULL.
6167
6168 2000-01-24  Richard Henderson  <rth@cygnus.com>
6169
6170         * builtins.c (expand_tree_builtin): Move ...
6171         * c-common.c (expand_tree_builtin): ... here.
6172
6173 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6174
6175         * loop.h (LOOP_INFO): New accessor macro.
6176         * basic-block.h (struct loop): Rename field `info' to `aux'.
6177         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
6178         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
6179         * unroll.c (loop_iterations, unroll_loop): Likewise.
6180
6181 2000-01-24  Christopher Faylor <cgf@cygnus.com>
6182
6183         * config/i386/t-cygwin: Accomodate new winsup directory layout
6184         when searching for include files.
6185
6186 2000-01-24  Richard Henderson  <rth@cygnus.com>
6187
6188         * rtl.def: Add unordered fp comparisions.
6189         * tree.def: Likewise.
6190         * tree.h: Add ISO C 9x unordered fp comparision builtins.
6191
6192         * builtins.c (expand_tree_builtin): New function.
6193         * c-typeck.c (build_function_call): Use it.
6194         (build_binary_op): Support unordered compares.
6195         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
6196
6197         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
6198         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
6199         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
6200         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
6201         * jump.c (reverse_condition): Don't abort for UNLE etc, but
6202         return UNKNOWN.
6203         (swap_condition): Handle unordered compares.
6204         (thread_jumps): Check can_reverse before reversing.
6205         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
6206         reversed for FP.
6207
6208         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
6209         setcc is present before acking for cmp_optab.  Update all callers.
6210         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
6211         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
6212         * expr.c (expand_expr): Likewise.  Support unordered compares.
6213         (do_jump, do_store_flag): Likewise.
6214         * expr.h (enum libfunc_index): Add unordered compares.
6215
6216         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
6217         (DPBIT_FUNCS): Add _unord_df.
6218         * config/fp-bit.c (_unord_f2): New.
6219         * fp-test.c (main): Try unordered compare builtins.
6220
6221         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
6222         * alpha.c (alpha_comparison_operator): Check mode properly.
6223         (alpha_swapped_comparison_operator): Likewise.
6224         (signed_comparison_operator): Likewise.
6225         (alpha_fp_comparison_operator): New.
6226         (alpha_emit_conditional_branch): Handle unordered compares.
6227         * alpha.h (PREDICATE_CODES): Update.
6228         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
6229         (bunordered, bordered): New.
6230
6231 2000-01-24  Richard Henderson  <rth@cygnus.com>
6232
6233         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
6234         * alpha.md (movtf): New expander, insn, and splitter.
6235
6236 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
6237
6238         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
6239         dead registers.
6240
6241 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
6242
6243         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
6244         (FIXED_REGISTERS, CALL_USED_REGISTERS,
6245          REG_ALLOC_ORDER): Add frame pointer
6246         (FRAME_POINTER_REGNUM): Set to 20
6247         (HARD_FRAME_POINTER_REGNUM): New macro.
6248         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
6249         to HARD_FRAME_POINTER.
6250         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
6251         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
6252         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
6253         (HI_REGISTER_NAMES): Add "frame".
6254         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
6255         (debug_reg): Handle FRAME_POINTER_REGNUM.
6256         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
6257         GENERAL_REGS and INDEX_REGS.
6258         * i386.c (SAVED_REGS_FIRST): new macro.
6259         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
6260         (ix86_decompose_address, memory_address_length): Likewise.
6261         (regclass_map): Add frame pointer.
6262         (call_insn_operand): Handle frame_pointer_rtx.
6263         (reg_no_sp_operand): Likewise.
6264         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
6265         (print_operand, legitimize_pic_address): Fix formating.
6266         (ix86_compute_frame_size): Make static, update prototype, new
6267         parameters padding1, padding2, use ix86_nsaved_regs, use
6268         stack_alignment_needed.
6269         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
6270         to HARD_FRAME_POINTER_REGNUM conversions.
6271         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
6272         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
6273         (print_reg): Abort on FRAME_POINTER_REGNUM
6274
6275 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
6276
6277         * i386.h (PREDICATE_CODES): Add aligned_operand.
6278         * i386.c (aligned_operand): New function.
6279         (ix86_aligned_p): Kill.
6280         * i386.md (movhi_1): Emit mov for aligned operands.
6281         (promoting peep2s): Use aligned_operand.
6282
6283 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
6284
6285         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
6286         expression to allow underscores in macro names.
6287         (fix_char_macro_defines): Increment scanning pointer.
6288
6289 2000-01-23  Richard Henderson  <rth@cygnus.com>
6290
6291         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
6292         * alpha/osf5.h: New file.
6293         * configure.in (alpha-*-osf5): Add it to tm_file.
6294
6295         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
6296
6297         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
6298         (alpha_emit_xfloating_cvt, function_arg): Declare.
6299         * alpha.c (alpha_emit_conditional_branch): Call
6300         alpha_emit_xfloating_compare for TFmode compares.
6301         (alpha_lookup_xfloating_lib_func): New.
6302         (alpha_compute_xfloating_mode_arg): New.
6303         (alpha_emit_xfloating_libcall): New.
6304         (alpha_emit_xfloating_arith): New.
6305         (alpha_emit_xfloating_compare): New.
6306         (alpha_emit_xfloating_cvt): New.
6307         (print_operand): Add default abort case.
6308         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
6309         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
6310         (BIGGEST_ALIGNMENT): Increase to 128 bits.
6311         (RETURN_IN_MEMORY): True for TF/TCmode.
6312         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
6313         (FUNCTION_ARG): Move to function_arg.
6314         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
6315         (ASM_OUTPUT_LONG_DOUBLE): New.
6316         (ASM_OUTPUT_DOUBLE): Always output bits.
6317         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
6318         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
6319         (extenddftf2, trunctfdf2): New.
6320
6321 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6322
6323         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
6324         * config/sparc/sol2.h: ... here.
6325
6326 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6327
6328         * basic-block.h (struct loops): New field `levels'.
6329         * flow.c (flow_loops_level_compute): Traverse all outer loops.
6330         (flow_loop_level_compute): Initialise level to 1.
6331         (flow_loops_find): Set loops->levels.
6332         (flow_loops_dump): Print loops->levels.
6333
6334 2000-01-23  Richard Henderson  <rth@cygnus.com>
6335
6336         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
6337         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
6338
6339 2000-01-23  Richard Henderson  <rth@cygnus.com>
6340
6341         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
6342         * i386.h (DBX_REGISTER_NUMBER): Use them.
6343         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
6344         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
6345         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
6346         * i386/sequent.h: Kill incorrect comment.
6347
6348 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
6349
6350         * ggc-page.c (struct page_entry): Make `context_depth' an
6351         `unsigned short'.
6352         (struct globals): Likewise.
6353
6354 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
6355
6356         * loop.c (check_dbra_loop): When checking a loop for
6357         reversability, check the source of any stores to ensure
6358         they don't depend on an initial value.
6359
6360 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6361
6362         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
6363
6364 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
6365
6366         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
6367         'pz_scan' into scope of entire function.  Only affects
6368         compiles with -DDEBUG.
6369
6370 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
6371
6372         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
6373         section naming to that prior to 2000-01-07 patch.
6374         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
6375         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
6376         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
6377         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
6378         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
6379
6380 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
6381
6382         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
6383         constant.
6384
6385 2000-01-21  Jim Wilson  <wilson@cygnus.com>
6386
6387         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
6388         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
6389
6390 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
6391
6392         * cpphash.c (change_newlines): Delete function.
6393         (struct argdata): Delete 'newlines' and 'use_count' fields.
6394         (macroexpand): Remove code referencing those fields.
6395
6396 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6397
6398         * loop.c (loops_info): New variable.
6399         (loop_optimize): Allocate loops->array and free it on exit.
6400         Allocate memory for loops_info and assign to each loop,
6401         replacing alloca.
6402         (find_and_verify_loops): Do not allocate loops->array.
6403
6404 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
6405
6406         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
6407
6408 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
6409
6410         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
6411         pseudos if expanded after first flow.
6412         (movdi_pic_label_ref): Likewise.
6413
6414 2000-01-20  Richard Henderson  <rth@cygnus.com>
6415
6416         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
6417
6418 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
6419
6420         * Makefile.in (fixinc.sh): Depend on specs.
6421         * fixinc/Makefile.in: Add rule to create machname.h.
6422         (fixlib.o): Depend on machname.h.
6423         * fixinc/fixtests.c (machine_name): New test.
6424         * fixinc/fixfixes.c (machine_name): New fix.
6425         * fixinc/fixlib.c (mn_get_regexps): New helper function for
6426         the machine_name test and fix.
6427         * fixinc/fixlib.h: Prototype it.
6428         * fixinc/inclhack.def (machine_name): Use the C test and fix.
6429         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
6430
6431         * gcc.c (do_spec_1) [case P]: Take care not to create
6432         identifiers with three leading or trailing underscores.
6433
6434         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
6435         (fixincl): Don't specify libraries twice on link line.
6436         (gnu-regex.o): Remove special rule.
6437         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
6438         defined by config.h.  Do not define _REGEX_RE_COMP.
6439         (regcomp): Allocate and initialize a fastmap.
6440         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
6441
6442 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
6443
6444         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
6445
6446 2000-01-19  Richard Henderson  <rth@cygnus.com>
6447
6448         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
6449         arguments with BB.  Update all callers.  Tidy line wrapping.
6450
6451 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
6452
6453         * emit-rtl.c (try_split): Return last_insn if we split the
6454         last_insn.
6455
6456 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
6457
6458         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
6459         (ix86_initial_elimination_offset): Declare.
6460         * i386.c (ix86_nsaved_regs): Break out from ...
6461         (ix86_can_use_return_insn_p): ... here.
6462         (ix86_emit_save_regs): Break out from ...
6463         (ix86_expand_prologue): ... here.
6464         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
6465         out from ...
6466         (ix86_expand_epilogue): ... here.
6467         (ix86_compute_frame_size): Make static, add prototype.
6468         (ix86_initial_elimination_offset): Break out from ...
6469         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
6470
6471 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6472
6473         * recog.h (OUT_FCN): Delete.
6474
6475         * vax.md: Call `get_insn_template' instead of OUT_FCN.
6476
6477 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6478
6479         * cppalloc.c: PROTO -> PARAMS.
6480         * cpperror.c: Likewise.
6481         * cppfiles.c: Likewise.
6482         * cpplib.c: Likewise.
6483         * cpplib.h: Likewise.
6484
6485         * config/arm/arm-protos.h: PROTO -> PARAMS.
6486         * config/arm/arm.c: Likewise.
6487         * config/c4x/c4x.c: Likewise.
6488         * config/fr30/fr30-protos.h: Likewise.
6489         * config/nextstep.c: Likewise.
6490         * config/pa/pa.c: Likewise.
6491         * config/pj/pj.c: Likewise.
6492         * config/rs6000/rs6000.c: Likewise.
6493         * config/v850/v850-protos.h: Likewise.
6494         * config/v850/v850.c: Likewise.
6495
6496 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6497
6498         * i370-protos.h: New file.
6499
6500         * i370.c: Include tm_p.h.  Fix compile time warnings.
6501
6502         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
6503         warnings.
6504
6505         * i370.md: Likewise.
6506
6507 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6508
6509         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
6510         (target_isinf, target_isnan, eisnan): Mark parameter with
6511         ATTRIBUTE_UNUSED.
6512         (eiisinf): Wrap in INFINITY.
6513         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
6514         (ibmtoe): Remove unused variable `rndsav'.
6515
6516 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6517
6518         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
6519         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
6520
6521 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
6522
6523         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
6524         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
6525         (fix_char_macro_defines, fix_char_macro_uses): New functions.
6526
6527         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
6528         Recognize Emacs mode markers also.
6529         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
6530         C++ comments in C++ headers.  Call is_cxx_header only if
6531         necessary.
6532
6533         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
6534         bypass for ncurses.
6535         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
6536         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
6537         ... these, which use the new C fixes.
6538         (math_exception): Escape literal '+' in bypass expression.
6539
6540         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
6541         Regenerate.
6542
6543 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
6544
6545         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
6546         inside the MEM.
6547
6548 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6549
6550         * loop.c (loop_optimize): Allocate loop_info structure for each loop
6551         prior to calling scan_loop.
6552
6553 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6554
6555         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
6556         (split_branches, calc_live_regs): Likewise.
6557
6558 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6559
6560         * sh.md (fpu_single, fp_mode): New attributes.
6561
6562 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6563
6564         * loop.c (current_loop_info): Renamed from loop_info_data
6565         and changed to a pointer.
6566         (loop_optimize): Allocate loop_info structure for each loop
6567         and initialise to zero.
6568         (scan_loop): Set current_loop_info.
6569
6570         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
6571         on iteration_var.
6572
6573 2000-01-19  Richard Henderson  <rth@cygnus.com>
6574
6575         * stupid.c: Die die die.
6576         * Makefile.in (OBJS): Remove stupid.o.
6577         (stupid.o): Likewise.
6578
6579         * except.c (emit_eh_context): Don't emit USEs for stupid.
6580         * explow.c (probe_stack_range): Likewise.
6581         * flags.h (obey_regdecls): Remove.
6582         * flow.c (find_basic_blocks): Don't run try_merge_blocks
6583         when not optimizing.
6584         (life_analysis): Limit data collection when not optimizing.
6585         (mark_regs_live_at_end): Always mark the return value registers.
6586         (mark_used_regs): Remove dummy RETURN case.
6587         (print_rtl_with_bb): Don't consult obey_regdecls.
6588         * function.c (use_variable, use_variable_after): Remove.
6589         (assign_parms): Consult optimize not obey_regdecls.
6590         (expand_function_start): Don't emit USEs for stupid.
6591         (expand_function_end): Likewise.
6592         * global.c (build_insn_chain): Export.
6593         * integrate.c (expand_inline_function): Kill return-value USE
6594         handling code.
6595         * jump.c (jump_optimize_1): Do simple jump optimizations and
6596         dead code elimination.
6597         (calculate_can_reach_end): Remove check_deleted argument.
6598         (delete_insn): Patch out insns even when not optimizing.
6599         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
6600         * rtl.h (use_variable, use_variable_after): Remove declarations.
6601         (build_insn_chain): Declare.
6602         * stmt.c (expand_value_return): Don't emit USEs for stupid.
6603         (expand_end_bindings): Likewise.
6604         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
6605         * toplev.c (obey_regdecls): Remove.
6606         (rest_of_compilation): Don't set it.  Kill stupid in favour of
6607         flow1, local-alloc, and reload.
6608         (main): Don't set obey_regdecls.
6609
6610         * config/nextstep.c (handle_pragma): Likewise.
6611
6612         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
6613
6614         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
6615
6616 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6617
6618         * alpha-protos.h: PROTO -> PARAMS.
6619         * alpha.c: Likewise.
6620         * elf.h: Likewise.
6621         * h8300.c: Likewise.
6622         * i386-protos.h: Likewise.
6623         * i386.c: Likewise.
6624         * m32r-protos.h: Likewise.
6625         * m32r.c: Likewise.
6626         * mips.c: Likewise.
6627         * mips.md: Likewise.
6628         * gmon-sol2.c: Likewise.
6629         * sparc.c: Likewise.
6630
6631 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6632
6633         * ns32k-protos.h: New file.
6634
6635         * ns32k.c: Fix compile time warnings.
6636
6637         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
6638         warnings.
6639
6640         * ns32k.md: Likewise.
6641
6642 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6643
6644         * vax-protos.h: New file.
6645
6646         * vax.c: Fix compile time warnings.
6647
6648         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
6649         warnings.
6650
6651         * vax.md: Likewise.
6652
6653         * vaxv.md: Likewise.
6654
6655 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6656
6657         * romp-protos.h: New file.
6658
6659         * romp.c: Fix compile time warnings.
6660
6661         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
6662         warnings.
6663
6664         * romp.md: Likewise.
6665
6666 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6667
6668         * we32k-protos.h: New file.
6669
6670         * we32k.c: Fix compile time warnings.
6671
6672         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
6673         warnings.
6674
6675 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6676
6677         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
6678
6679         * except.c (eh_regs): Likewise.
6680
6681         * final.c (output_operand): Likewise.
6682
6683         * fold-const.c (target_isinf, target_isnan): Likewise.
6684
6685 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
6686
6687         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
6688         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
6689
6690         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
6691         when optimize_size.
6692         (clrstrsi): Rewrite.
6693         (strsethi, strsetqi): New expanders.
6694         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
6695         (cmpstrsi): Emit compare insn before cmpstrsi_1
6696         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
6697         (strlensi_1): Likewise.
6698         (cmpstrsi_1): Likewise; do not output compare.
6699         (strlen expander): Do not unroll when optimizing for size.
6700         (*subsi3_carry): Rename to subsi3_carry
6701         (addqi3_cc): New pattern.
6702         * i386.h (processor_costs): Add move_ratio field.
6703         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
6704         * i386.c (*_cost): Set move_ratio.
6705         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
6706         (x86_expand_strlensi_1): Rewrite the main loop.
6707
6708 2000-01-17  Richard Henderson  <rth@cygnus.com>
6709
6710         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
6711         * cse.c (find_comparison_args, fold_rtx): Likewise.
6712         * integrate.c (subst_constants): Likewise.
6713         * loop.c (get_condition): Likewise.
6714
6715         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
6716
6717         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
6718
6719 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6720
6721         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
6722         (RESTORE_WARN_FLAGS): Unpack it.
6723         Change semantic type of extension to ttype.
6724         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
6725         * c-parse.y, c-parse.c, objc/objc-parse.y,
6726         objc/objc-parse.c: Regenerate.
6727
6728 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
6729
6730         * fixinc/fixlib.c: Add copyright notice.
6731         (compile_re): New function.
6732         * fixinc/fixlib.h: Prototype compile_re.
6733
6734         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
6735         Use compile_re to compile regular expressions.
6736
6737         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
6738         where the pattern matched.
6739
6740         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
6741         use 'replace'.
6742         (ultrix_ansi_compat): Likewise.
6743         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
6744         add egrep test.
6745         (interactv_add2, interactv_add3): Delete.
6746         (x11_sprintf): Don't use filename glob.
6747         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
6748         Regenerate.
6749
6750 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6751
6752         * print-rtl.c: PROTO -> PARAMS.
6753         * real.c: Likewise.
6754         * reg-stack.c: Likewise.
6755         * resource.c: Likewise.
6756         * sdbout.h: Likewise.
6757         * simplify-rtx.c: Likewise.
6758         * stor-layout.c: Likewise.
6759         * stupid.c: Likewise.
6760         * xcoffout.c: Likewise.
6761         * xcoffout.h: Likewise.
6762
6763 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6764
6765         * toplev.c: PROTO -> PARAMS.
6766         * toplev.h: Likewise.
6767         * tree.c: Likewise.
6768         * tree.h: Likewise.
6769         * unroll.c: Likewise.
6770         * varasm.c: Likewise.
6771         * varray.c: Likewise.
6772         * varray.h: Likewise.
6773
6774 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6775
6776         * reload.c: PROTO -> PARAMS.
6777         * reload.h: Likewise.
6778         * reload1.c: Likewise.
6779         * reorg.c: Likewise.
6780         * resource.h: Likewise.
6781         * rtl.c: Likewise.
6782         * rtl.h: Likewise.
6783         * rtlanal.c: Likewise.
6784         * sbitmap.h: Likewise.
6785         * sdbout.c: Likewise.
6786         * stack.h: Likewise.
6787         * stmt.c: Likewise.
6788         * system.h: Likewise.
6789
6790 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6791
6792         * machmode.h: PROTO -> PARAMS.
6793         * mbchar.h: Likewise.
6794         * mips-tdump.c: Likewise.
6795         * mips-tfile.c: Likewise.
6796         * optabs.c: Likewise.
6797         * output.h: Likewise.
6798         * prefix.c: Likewise.
6799         * profile.c: Likewise.
6800         * protoize.c: Likewise.
6801         * real.h: Likewise.
6802         * recog.c: Likewise.
6803         * recog.h: Likewise.
6804         * regclass.c: Likewise.
6805         * regmove.c: Likewise.
6806         * regs.h: Likewise.
6807
6808 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6809
6810         * ggc-common.c: PROTO -> PARAMS.
6811         * ggc-page.c: Likewise.
6812         * ggc-simple.c: Likewise.
6813         * ggc.h: Likewise.
6814         * global.c: Likewise.
6815         * graph.c: Likewise.
6816         * gthr-win32.h: Likewise.
6817         * haifa-sched.c: Likewise.
6818         * halfpic.h: Likewise.
6819         * integrate.c: Likewise.
6820         * integrate.h: Likewise.
6821         * jump.c: Likewise.
6822         * lcm.c: Likewise.
6823         * local-alloc.c: Likewise.
6824         * loop.c: Likewise.
6825         * loop.h: Likewise.
6826
6827 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6828
6829         * genattr.c: PROTO -> PARAMS.
6830         * genattrtab.c: Likewise.
6831         * gencheck.c: Likewise.
6832         * gencodes.c: Likewise.
6833         * genconfig.c: Likewise.
6834         * genemit.c: Likewise.
6835         * genextract.c: Likewise.
6836         * genflags.c: Likewise.
6837         * gengenrtl.c: Likewise.
6838         * genopinit.c: Likewise.
6839         * genoutput.c: Likewise.
6840         * genpeep.c: Likewise.
6841         * genrecog.c: Likewise.
6842
6843 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
6844
6845         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
6846
6847 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6848
6849         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
6850         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
6851         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
6852         * configure, config.in: Rebuilt.
6853
6854 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
6855
6856         * config/i386/i386.md: Add peephole to merge successive stack
6857         adjusts.
6858
6859 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
6860
6861         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
6862         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
6863         when walking backwards to find all the parameter loads when
6864         the basic block ends in a call.
6865
6866 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6867
6868         * loop.c (this_loop_info): Delete.
6869         (uid_loop): Add in place of uid_loop_num.  All uses updated.
6870         (loop_number_exit_count): Delete and replace with entry in loop
6871         structure.  All uses updated.
6872         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
6873         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
6874         (loop_outer_loop): Likewise.
6875         (loop_invalid, loop_number_exit_labels): Likewise.
6876         (loop_used_count_register): Delete and replace with entry in
6877         loop_info structure.
6878         (find_and_verify_loops): Add loops argument.
6879         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
6880         loop_end, etc. arguments with loop structure pointer.  All callers
6881         changed.
6882         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
6883         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
6884         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
6885         (insert_bct): Likewise.
6886         (basic_induction_var): New argument level.
6887         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
6888         vtop, and cont.  Add used_count_register.
6889         (uid_loop): Delete declaration.
6890         (loop_number_exit_count): Likewise.
6891         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
6892         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
6893         (loop_outer_loop, loop_used_count_register): Likewise.
6894         (loop_invalid, loop_number_exit_labels): Likewise.
6895         (unroll_loop): Replace loop_start and loop_end arguments
6896         with loop structure pointer.
6897         (loop_precondition_p, loop_iterations): Likewise.
6898         Include basic-block.h.
6899         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
6900         with loop structure pointer.
6901         (loop_precondition_p, loop_iterations): Likewise.
6902         * basic-block.h (struct loop): New entries vtop, cont,
6903         cont_dominator, start, end, top, scan_start, exit_labels,
6904         exit_count.
6905         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
6906
6907 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6908
6909         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
6910
6911 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
6912
6913         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
6914
6915 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6916
6917         * pdp11-protos.h: New file.
6918
6919         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
6920         time warnings.
6921
6922         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
6923         warnings.
6924
6925         * pdp11.md: Likewise.
6926
6927         * 2bsd.h: Likewise.
6928
6929 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6930
6931         * mn10300-protos.h: New file.
6932
6933         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
6934         time warnings.
6935
6936         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
6937         warnings.
6938
6939         * mn10300.md: Likewise.
6940
6941 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6942
6943         * mn10200-protos.h: New file.
6944
6945         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
6946         time warnings.
6947
6948         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
6949         warnings.
6950
6951         * mn10200.md: Likewise.
6952
6953 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6954
6955         * h8300-protos.h: New file.
6956
6957         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
6958         time warnings.
6959
6960         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
6961         warnings.
6962
6963         * h8300.md: Likewise.
6964
6965 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6966
6967         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
6968         (asm_emit_uninitialised): Likewise.
6969
6970 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
6971
6972         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
6973         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
6974
6975 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
6976
6977         * config/mips/mips.c (override_options): Don't turn on extra
6978         alignment for mips16.
6979
6980 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
6981
6982         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
6983         eabi, and make sure queued POSTINCREMENT rtl is emitted at
6984         the right point.
6985
6986 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
6987
6988         * builtins.c (PAD_VARARGS_DOWN): Define.
6989         (std_expand_builtin_va_arg): Use the above macro.
6990         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
6991         * tm.texi (Register Arguments): Document the above macro.
6992
6993 2000-01-14  Nick Clifton  <nickc@cygnus.com>
6994
6995         * emit-rtl.c (emit_insn): If checking is enabled, make sure
6996         that this function has not been used to emit a jump
6997         instruction.
6998
6999         * jump.c (return_jump_1): Cope with being passed a null rtx.
7000
7001 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7002
7003         * eh-common.h: PROTO -> PARAMS.
7004         * emit-rtl.c: Likewise.
7005         * errors.c: Likewise.
7006         * errors.h: Likewise.
7007         * except.c: Likewise.
7008         * except.h: Likewise.
7009         * explow.c: Likewise.
7010         * expmed.c: Likewise.
7011         * expr.c: Likewise.
7012         * expr.h: Likewise.
7013         * final.c: Likewise.
7014         * fix-header.c: Likewise.
7015         * flow.c: Likewise.
7016         * fold-const.c: Likewise.
7017         * function.c: Likewise.
7018         * function.h: Likewise.
7019         * gcc.c: Likewise.
7020         * gcov-io.h: Likewise.
7021         * gcov.c: Likewise.
7022         * gcse.c: Likewise.
7023
7024 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7025
7026         * sh-protos.h: New file.
7027
7028         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
7029         Add static prototypes.  Fix compile time warnings.
7030
7031         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
7032         * sh.md: Likewise.
7033         * elf.h: Likewise.
7034
7035 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7036
7037         * arc-protos.h: New file.
7038
7039         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
7040         time warnings.
7041
7042         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
7043         warnings.
7044
7045         * arc.md: Likewise.
7046
7047 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7048
7049         * dsp16xx-protos.h: New file.
7050
7051         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
7052         time warnings.
7053
7054         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
7055         warnings.
7056
7057         * dsp16xx.md: Likewise.
7058
7059 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7060
7061         * convex-protos.h: New file.
7062
7063         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
7064         time warnings.
7065
7066         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
7067         warnings.
7068
7069 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7070
7071         * elxsi-protos.h: New file.
7072
7073         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
7074         time warnings.
7075
7076         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
7077         warnings.
7078
7079         * elxsi.md: Likewise.
7080
7081 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
7082
7083         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
7084         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
7085         match the comment for MIPS16.
7086
7087 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
7088
7089         * flow.c (split_edge): Do not call set_block_for_insn if we
7090         do not have a basic_block_for_insn structure.
7091
7092         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
7093         and destination functions are 32bit aligned within the trampoline.
7094         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
7095         (TRAMPOLINE_ALIGNMENT): Define.
7096
7097         * cse.c (cse_insn): When changing (set (pc) (reg)) to
7098         (set (pc) (label_ref)), verify the change creates a valid insn.
7099
7100         * fr30.c (call_operand): Tighten and rework to match rules for
7101         call RTL expressions.
7102         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
7103         * fr30.md (call patterns): Improve constraints.
7104
7105 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
7106
7107         * fr30.c (fr30_expand_epilogue): Revert last change.
7108         Use emit_jump_insn for the return insn.
7109
7110 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
7111                           Stan Cox  <scox@cygnus.com>
7112
7113         * predict.c: New file. Preliminary infrastructure work for static
7114         branch prediction and basic block reordering.
7115         * basic-block.h: Add prototype for estimate_probability.
7116         * Makefile.in: Add rules for predict.o.
7117
7118 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
7119
7120         * fixincludes (va_list): Use __not_va_list__ for the dummy.
7121         * fixinc/*: Likewise.
7122
7123 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7124
7125         * cccp.c: PROTO -> PARAMS.
7126         * cexp.y: Likewise.
7127         * collect2.c: Likewise.
7128         * combine.c: Likewise.
7129         * convert.h: Likewise.
7130         * cse.c: Likewise.
7131         * dbxout.c: Likewise.
7132         * dbxout.h: Likewise.
7133         * diagnostic.c: Likewise.
7134         * doprint.c: Likewise.
7135         * dwarf2out.c: Likewise.
7136         * dwarf2out.h: Likewise.
7137         * dwarfout.c: Likewise.
7138         * dwarfout.h: Likewise.
7139         * dyn-string.h: Likewise.
7140
7141 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7142
7143         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
7144         macro conditionals guarding use.
7145
7146         * dwarf2out.c: Include "tm_p.h".
7147
7148         * function.c (locate_and_pad_parm): Mark parameter with
7149         ATTRIBUTE_UNUSED.
7150         (expand_function_end): Likewise for variable `context'.
7151
7152         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
7153
7154 2000-01-13  Nick Clifton  <nickc@cygnus.com>
7155
7156         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
7157         register to prevent compile time warnings.
7158
7159 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
7160
7161         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
7162         to avoid -Wtraditional warning.
7163
7164 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7165
7166         * 1750a-protos.h: New file.
7167
7168         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
7169         time warnings.
7170
7171         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
7172         warnings.
7173
7174         * 1750a.md: Likewise.
7175
7176 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7177
7178         * a29k-protos.h: New file.
7179
7180         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
7181         time warnings.
7182
7183         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
7184         warnings.
7185
7186 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7187
7188         * clipper-protos.h: New file.
7189
7190         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
7191         time warnings.
7192
7193         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
7194         warnings.
7195
7196 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7197
7198         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
7199
7200 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
7201
7202         * configure.in (--enable-new-gxx-abi): New option.
7203         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
7204         * Makefile.in (GXX_ABI_FLAG): New variable.
7205         * configure: Regenerate.
7206
7207 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7208
7209         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
7210         * tm.texi (FORCE_STRUCT_BLK): Document.
7211         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
7212
7213 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
7214
7215         * config/ns32k/ns32k.md: Revert Jan 9 change.
7216
7217         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
7218         to a mode-test, if the predicate is address_operand.
7219
7220 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
7221
7222         * combine.c (if_then_else_cond): Be careful about what kinds
7223         of RTL expressions are passed to operand_subword.
7224
7225         * flow.c (split_edge): If we have to insert a new jump, make
7226         sure to associate it with a basic block.
7227
7228         * flow.c (commit_one_edge_insertion): A block with one successor
7229         can end in a JUMP_INSN that is not a simplejump.
7230
7231 2000-01-12  Robert Lipe  <robertl@sco.com>
7232
7233         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
7234         (BUILD_VA_LIST_TYPE): Define.
7235         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
7236         with crtstuff.c.
7237
7238 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
7239
7240         * cccp.c (do_pragma): Add cast to (char *).
7241
7242 2000-01-12  Richard Henderson  <rth@cygnus.com>
7243             Fred Fish  <fnf@be.com>
7244             Jason Merrill  <jason@cygnus.com>
7245
7246         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
7247         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
7248         * i386/beos-elf.h, i386/beos-pe.h: New files.
7249
7250         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
7251         * cross-make (SYSTEM_HEADER_DIR): Define using
7252         CROSS_SYSTEM_HEADER_DIR.
7253
7254         * gcc.c (LIBRARY_PATH_ENV): Provide default.
7255         (process_command): Use it.
7256         (main): Likewise.  Kill trailing = from env vars.
7257         (build_search_list): Put it back.
7258         * collect2.c (main): Use LIBRARY_PATH_ENV.
7259
7260         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
7261         * toplev.c: Use NEED_DECLARATION_ENVIRON.
7262
7263         * tm.texi (Frame Layout): Document SMALL_STACK.
7264         * c-common.c (c_common_nodes_and_builtins): Check it.
7265
7266         * system.h: Undef alloca after including glibc's <stdlib.h>,
7267         if USE_C_ALLOCA is defined.
7268
7269         * gcc.c (set_input): New fn.
7270         (main): After all input files are compiled, reset the input file
7271         info to the first.
7272
7273         * aclocal.m4 (rindex, index): If already defined, don't attempt
7274         to redefine.
7275
7276         * ginclude/varargs.h: (__va_list__): Define ifndef.
7277         * ginclude/stdarg.h: Likewise.
7278
7279         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
7280         instead of unsigned char.
7281
7282         * hash.h (true, false, boolean): Undef before enum.
7283
7284         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
7285         proper type of "HOST_WIDE_INT *", rather than their natural type of
7286         "unsigned HOST_WIDE_INT *".
7287
7288 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7289
7290         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
7291
7292         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
7293
7294         * regclass.c (choose_hard_reg_mode): Likewise.
7295
7296         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
7297
7298         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
7299
7300 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7301
7302         * c-common.c: PROTO -> PARAMS.
7303         * c-common.h: Likewise.
7304         * c-decl.c: Likewise.
7305         * c-iterate.c: Likewise.
7306         * c-lang.c: Likewise.
7307         * c-lex.c: Likewise.
7308         * c-lex.h: Likewise.
7309         * c-parse.in: Likewise.
7310         * c-pragma.c: Likewise.
7311         * c-pragma.h: Likewise.
7312         * c-tree.h: Likewise.
7313         * c-typeck.c: Likewise.
7314         * objc/objc-act.c: Likewise.
7315         * objc/objc-act.h: Likewise.
7316
7317 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7318
7319         * m88k-protos.h: New file.
7320
7321         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
7322         time warnings.
7323
7324         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
7325
7326         * m88k.md: Likewise.
7327
7328         * tekXD88.h: Likewise.
7329
7330 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7331
7332         * m68k-protos.h: New file.
7333
7334         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
7335         time warnings.
7336
7337         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
7338
7339         * mot3300.h: Likewise.
7340
7341 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
7342
7343         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
7344         extract_bitlst.
7345         (extract_bitlist): Declare bitlen.
7346
7347 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
7348
7349         * cccp.c: Accept and ignore -lang-fortran.
7350
7351         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
7352         qualifiers don't match at any level of pointerness.
7353
7354 2000-01-12  Robert Lipe  <robertl@sco.com>
7355
7356         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
7357
7358 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
7359
7360         * reload1.c (reload_reg_unavailable): New static variable.
7361         (reload_reg_free_p): Test it.
7362         (reload_reg_free_for_value_p): Test it instead of
7363         reload_reg_used.
7364         (choose_reload_regs_init): Compute it.
7365
7366 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
7367
7368         * reorg.c (fill_slots_from_thread): Check modified_in_p
7369         before replacing.
7370
7371 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
7372
7373         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
7374         these nodes even if INTERNALS is not set.
7375
7376 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
7377
7378         * gcse.c (delete_null_pointer_checks_1): Cope when
7379         get_condition cannot determine the condition.
7380
7381 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
7382
7383         * toplev.h (set_message_length): Declare.
7384
7385         * diagnostic.c (obstack_chunk_alloc): Define macro.
7386         (obstack_chunk_free): Likewise.
7387         (struct output_buffer): New data structure.
7388         (vmessage): Remove.
7389         (output_maximum_width): New variable.
7390         (doing_line_wrapping, set_message_length, init_output_buffer,
7391         get_output_prefix, output_space_left, emit_output_prefix,
7392         output_newline, output_append, output_puts, dump_output,
7393         vbuild_message_string, build_message_string, build_location_prefix,
7394         voutput_notice, output_printf, line_wrapper_printf,
7395         vline_wrapper_message_with_location):  New functions. Implement
7396         automatic line wrapping.
7397         (v_message_with_decl): Make it handle automatic line wrapping.
7398         (v_error_with_file_and_line): Likewise.
7399         (v_warning_with_file_and_line): Likewise.
7400         (announce_function): Likewise.
7401         (default_print_error_function): Likewise.
7402
7403 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
7404
7405         * cpplib.h (struct cpp_options): Change lang_asm to char.
7406         Add lang_fortran.
7407         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
7408         done in cpp_handle_option now.
7409         (initialize_builtins): Take out special case code used only by
7410         __STDC_VERSION__.
7411         (cpp_handle_option): Turn off trigraphs and trigraph warnings
7412         if -traditional.  Recognize -lang-fortran and set
7413         lang_fortran, also turn off cplusplus_comments.
7414         (print_help): Document -lang-fortran.
7415         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
7416         lang_asm. Ignore all directives other than `# 123 "file"' if
7417         CPP_PREPROCESSED.
7418         (cpp_get_token): If -traditional, don't recognize directives
7419         unless the # is in column 1.
7420         (parse_string): If lang_fortran or lang_asm, silently
7421         terminate strings ('' or "") at end of line.
7422         Remove unnecessary braces.
7423
7424 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7425             Richard Henderson  <rth@cygnus.com>
7426
7427         * resource.c (mark_referenced_resources): Mark a set strict_low_part
7428         as used.
7429         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
7430         strict_low_part when possible.
7431
7432 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7433
7434         * alias.c: PROTO -> PARAMS.
7435         * basic-block.h: Likewise.
7436         * bitmap.c: Likewise.
7437         * bitmap.h: Likewise.
7438         * builtins.c: Likewise.
7439         * c-aux-info.c: Likewise.
7440         * caller-save.c: Likewise.
7441         * calls.c: Likewise.
7442
7443 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7444
7445         * Makefile.in (toplev.o): Depend on regs.h.
7446
7447         * output.h (tdesc_section): Prototype.
7448
7449         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
7450
7451         * sdbout.c: Include "tm_p.h".
7452
7453         * toplev.c: Include "regs.h".
7454
7455 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
7456
7457         * unroll.c (unroll_loop): Add EH support.
7458
7459 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7460
7461         * pa-protos.h: New file.
7462
7463         * pa.c: Include recog.h and tm_p.h.
7464         (compute_zdepwi_operands, compute_movstrsi_length,
7465         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
7466         find_addr_reg, import_milli): Add static prototypes.
7467         (pa_cpu_string, pa_arch_string): Constify a char*.
7468         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
7469         (read_only_operand): Add argument `mode'.
7470         (singlemove_string, output_move_double, output_fp_move_double,
7471         output_block_move, output_and, output_ior, output_ascii,
7472         remove_useless_addtr_insns, milli_names, output_mul_insn,
7473         output_div_insn, output_mod_insn, output_arg_descriptor,
7474         output_cbranch, output_bb, output_bvb, output_dbra, ,
7475         output_millicode_call, output_call, hppa_encode_label,
7476         output_parallel_movb, output_parallel_addb): Constify a char*.
7477         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
7478         (output_parallel_addb): Remove extra arg to `constrain_operands'
7479
7480         * pa.h:  Move all prototypes to pa-protos.h.
7481         (pa_cpu_string, pa_arch_string): Constify a char*.
7482         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
7483
7484         * pa.md: Call `function_label_operand' with mode argument.
7485         Likewise for `read_only_operand'.
7486         Fix nesting of parens in call to `symbolic_operand'.
7487
7488 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7489
7490         * i860-protos.h: New file.
7491
7492         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
7493         time warnings.
7494
7495         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
7496
7497         * i860.md: Likewise.
7498
7499 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
7500
7501         * i386.md (movstrsi expander): Rewrite.
7502         (movstrsi_1 insn): Deleted.
7503         (strmovhi, strmovqi expander): New expanders.
7504         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
7505         * i386.c (x86_single_stringop): New global variable.
7506         * i386.h (x86_single_stringop): Declare.
7507         (TARGET_SINGLE_STRINGOP): New macro.
7508
7509 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
7510
7511         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
7512         integer vararg POSTINCREMENT before the destination of the jump
7513         for the hard fp case.
7514         (function_arg_pass_by_reference): Pass a copy of CUM to
7515         FUNCTION_ARG.
7516
7517         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
7518         for CONSTANT_ADDRESS_P above while loop for subreg.
7519
7520 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
7521
7522         * flow.c (propagate_block): When a prologue/epilogue insn
7523         is marked dead, unconditionally clear libcall_is_dead and
7524         insn_is_dead, and only dump rtl if warnings aren't being
7525         suppressed.
7526
7527 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
7528
7529         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
7530         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
7531         (FIXED_REGISTERS): Set dirflag as fixed.
7532         (CALL_USED_REGISTERS): Set dirflag as used.
7533         (REG_ALLOC_ORDER): Set dirflag as last one.
7534         (DIRFLAG_REG): New macro.
7535         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
7536         (HI_REGISTER_NAMES): Add dirflag.
7537         (DEBUF_PRINT_REG): Handle dirflag.
7538         * i386.md (type attribute): New cld and str types.
7539         (length_opcode attribute): Set cld and str to 1.
7540         (memory attribute): Set str to unknown - it is not clear from the
7541         patterns.
7542         (pent_np function unit): Prefixed string operations takes 12 cycles
7543         minimally; cld takes 2 cycles.
7544         (ppro_uops attribute): Str is "many" and cld is "few".
7545         (ppro_p0 unit): Handle cld here.
7546         (k6_alux unit): Handle cld and str types.
7547         (k6_load unit): It is ocupied by str opcodes.
7548         (k6_store unit): It is ocupied by str opcodes.
7549         (athlon_decode): Str is vector decoded.
7550         (athlon_ieu): Handle str and cld.
7551         (cld pattern): New.
7552         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
7553         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
7554         cmpstrsi_nz_1 insn): Do not output cld instruction
7555
7556 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
7557
7558         * gcc.texi (G++ and GCC): Add Java and Chill.
7559         (Bug Critera): Don't list languages.
7560
7561         * gcc.texi (Incompatibilities): No longer claim most C compilers
7562         are K&R.
7563
7564         * gcc.texi (G++ and GCC): Update other front-ends list.
7565
7566 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
7567
7568         * i386.c (ix86_expand_setcc): Fix typo.
7569         (ix86_expand_movcc): Similarly.
7570
7571         * Band-aid until haifa's bitset implementation is nuked.
7572         * haifa-sched.c (extract_bitlst): New parameter for size of the
7573         bitset in bits.  All callers changed.  Avoid looking at undefined
7574         bits in the bitset.
7575         (edgeset_bitsize): New variable.
7576         (schedule_region): Initialize edgeset_bitsize.
7577
7578 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7579
7580         * Makefile.in (optabs.o): Depend on real.h
7581         (resource.o): Depend on insn-attr.h
7582
7583         * builtins.c (result_vector): Wrap prototype in macro conditions
7584         governing definition and use.
7585
7586         * c-common.c: Include tm_p.h.
7587
7588         * c-lex.c: Likewise.
7589
7590         * elfos.h: Constify a char*.
7591
7592         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
7593         (get_attr_length, shorten_branches, profile_after_prologue): Mark
7594         parameter with ATTRIBUTE_UNUSED.
7595
7596         * fold-const.c (exact_real_inverse): Wrap variable `i' in
7597         CHECK_FLOAT_VALUE.
7598
7599         * haifa-sched.c (schedule_insns): Mark parameter with
7600         ATTRIBUTE_UNUSED.
7601
7602         * optabs.c: Include real.h.
7603
7604         * real.h (ereal_atof): Add prototype arguments.
7605
7606         * resource.c: Include insn-attr.h.
7607
7608         * sdbout.c (sdbout_queue_anonymous_type,
7609         sdbout_dequeue_anonymous_types): Wrap in macro
7610         SDB_ALLOW_FORWARD_REFERENCES.
7611         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
7612         ATTRIBUTE_UNUSED.
7613
7614         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
7615
7616         * stupid.c: Include tm_p.h.
7617
7618         * tree.c (real_value_from_int_cst): Mark parameter with
7619         ATTRIBUTE_UNUSED.
7620
7621 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7622
7623         * i960-protos.h: New file.
7624
7625         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
7626         time warnings.
7627
7628         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
7629
7630 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7631
7632         * combine.c (expand_field_assignment): Do not discard SUBREGs
7633         while computing nonzero_bits.
7634
7635 2000-01-09  Nick Clifton  <nickc@cygnus.com>
7636
7637         * config/arm/arm.c: Fix compile time warnings about signed vs
7638         unsigned constants.
7639         * config/arm/arm.h: Fix compile time warnings about signed vs
7640         unsigned constants.
7641
7642 2000-01-09  Philip Blundell  <philb@gnu.org>
7643
7644         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
7645         than `ldm' with only one register.
7646         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
7647         only one register.
7648
7649         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
7650         clobbered.
7651
7652 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
7653
7654         * config/ns32k/ns32k.md (load or push effective address): Operand 1
7655         must have SImode.
7656
7657 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7658
7659         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
7660         assignment used as truth value.
7661
7662         * function.c (assign_temp): Mark parameter `dont_promote' with
7663         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
7664         PROMOTE_FOR_CALL_ONLY.
7665
7666         * genrecog.c (write_subroutine): Mark variable `operands' with
7667         ATTRIBUTE_UNUSED.
7668
7669         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
7670         ATTRIBUTE_UNUSED.
7671
7672         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
7673         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
7674
7675         * toplev.c (note_deferral_of_defined_inline_function): Likewise
7676         for `decl'.
7677
7678 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7679
7680         * config/c4x.h: Tidy up comments.
7681         * config/c4x.c: Likewise.
7682
7683 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
7684
7685         * fold-const.c (lshift_double, rshift_double): Handle
7686         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
7687
7688 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7689
7690         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
7691         in prepare_function_start().
7692
7693 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
7694
7695         * config/v850/v850.c (expand_epilogue): Interrupt functions no
7696         longer allocate extra stack for function calls.
7697
7698 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7699
7700         * config/c4x/c4x.md (*subqf3_set): Fix typo.
7701
7702 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7703
7704         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
7705
7706 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
7707
7708         * rs6000.c (processor_target_table): Add power3 as alias for 630.
7709         * aix43.h: Revert Aug 2 change.
7710         (HAS_INIT_SECTION): Define, not visible yet.
7711         (LD_INIT_SWITCH): Define, not visible yet.
7712         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
7713
7714         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
7715
7716         * collect2.c (main): Expand ld2 size further.
7717         (export_object_lst): Cast assignment to avoid warning.
7718         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
7719         (scan_prog_file, COFF): Do not collect initialization or
7720         finalization functions generated for entire shared object if
7721         init/fini support present.
7722
7723 2000-01-07  Nick Clifton  <nickc@cygnus.com>
7724
7725         * config/elfos.h: Tidy up formatting of marcos.  Make sure
7726         that .section directives are always prefixed by a tab.
7727
7728         * config/svr4.h: Add #include "elfos.h" and remove duplicate
7729         definitions.
7730
7731 2000-01-07  Matt Austern  <austern@sgi.com>
7732
7733         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
7734         expon.
7735
7736 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
7737
7738         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
7739         crtstuff.c.
7740         (crtbegin.o, s-crtS): Likewise.
7741
7742 2000-01-06  Richard Henderson  <rth@cygnus.com>
7743
7744         * alpha.md (adddi_2+1): Limit offset such that it will be
7745         loadable with a single ldah+lda pair.
7746         (adddi_2+2): Explicitly fail split if we can't make it work.
7747
7748 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
7749
7750         * protoize.c: Conditionally include unistd.h.
7751         (IS_SAME_PATH_CHAR): New macro.
7752         (IS_SAME_PATH): New macro.
7753         (CPLUS_FILE_SUFFIX): New macro.
7754         (cplus_suffix): New static variable.
7755         (is_abspath): New static function.
7756         (in_system_include_dir): Handle DOS style pathnames.
7757         (file_could_be_converted): Likewise.
7758         (file_normally_convertible): Likewise.
7759         (directory_specified_p): Likewise.
7760         (file_excluded_p): Likewise.
7761         (abspath): Likewise.
7762         (shortpath): Likewise.
7763         (referenced_file_is_newer): Likewise.
7764         (save_def_or_dec): Likewise.
7765         (do_processing): Likewise.
7766         (main): Likewise.
7767         (edit_file): Likewise. Use rename instead of link.
7768         (rename_c_file): Likewise. Don't rename syscalls file.
7769         (munge_compile_params): Define null device for DOS based systems.
7770         (process_aux_info_file): Use binary mode if appliable.
7771         (edit_file): Likewise.
7772         * invoke.texi (Running Protoize): Document C++ suffixes used.
7773
7774         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
7775         IS_DIR_SEPARATOR macros.
7776         * collect2.c: Likewise.
7777         * cppinit.c: Likewise.
7778         * dwarf2out.c: Likewise.
7779         * gcc.c: Likewise.
7780         * gcov.c: Likewise.
7781         * prefix.c: Likewise.
7782         * rtl.c: Likewise.
7783         * toplev.c: Likewise.
7784         * system.h: And move to here.
7785
7786         * prefix.c (update_path): Fix typo in variable name.
7787
7788 2000-01-06  Richard Henderson  <rth@cygnus.com>
7789
7790         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
7791         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
7792         (count_reg_sets_1, count_reg_references): Likewise.
7793         (flow_loops_level_compute): Start counting actual loop depth at 1.
7794         (flow_loops_find): Likewise.
7795         * local-alloc.c (update_equiv_regs): Likewise.
7796         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
7797
7798 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
7799
7800         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
7801         FIRST_PSEUDO_REGISTER
7802         * dwarf2out.c: Don't include frame.h
7803         * dwarfout.c: Likewise
7804         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
7805         frame.h
7806
7807 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
7808
7809         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
7810         dead registers.
7811
7812         * i386.c (movsf splitter): Fix typo in my last checkin.
7813
7814 2000-01-05  Nick Clifton  <nickc@cygnus.com>
7815
7816         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
7817         own definition of this macro.
7818         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
7819         flag_data_sections or UNIQUE_SECTION_P are true.
7820
7821         * tm.texi (UNIQUE_SECTION): Document that it can be called for
7822         unitialised data decls.
7823
7824         * config/i386/winnt.c (i386_pe_unique_section): Cope with
7825         being called for uninitialised data.
7826
7827         * config/i386/interix.c (i386_pe_unique_section): Cope with
7828         being called for uninitialised data.
7829
7830         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
7831         for uninitialised data.
7832
7833         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
7834         for uninitialised data.
7835
7836         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
7837         for uninitialised data.
7838
7839         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
7840         (UNIQUE_SECTION_P): Always generate a unique section if
7841         flag_data_sections is true.
7842         (UNIQUE_SECTION): Also generate unique sections for
7843         uninitialised data.
7844         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
7845         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
7846         named_section().
7847
7848 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7849
7850         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
7851         SI, or DI.
7852
7853 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7854
7855         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
7856         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
7857         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
7858         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
7859         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
7860
7861         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
7862
7863 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
7864
7865         * c-decl.c (finish_enum): Simplify code to determine minimum and
7866         maximum values of the enum, and calculate the type.  Remove check
7867         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
7868         the DECL_INITIAL of each enumeration constant with a copy converted
7869         to the enumeration type.  When updating variant types, don't bother
7870         updating the type itself.
7871
7872         * c-typeck.c (build_binary_op): Simplify conditional expressions
7873         when weeding out spurious signed-unsigned warnings.  Add new
7874         spurious warning category: if the unsigned quantity is an enum
7875         and its maximum value fits in signed_type(result_type).  Update
7876         commentary.
7877         (build_conditional_expr): Warn here if one alternative is signed
7878         and the other is unsigned.
7879
7880 2000-01-05  Nick Clifton  <nickc@cygnus.com>
7881
7882         * config/fr30/fr30.h: Remove extraneous comments.
7883
7884 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
7885
7886         * reload1.c (choose_reload_regs): When disabling a reload, also
7887         set reload_spill_index to -1.
7888
7889 2000-01-04  Joel Sherrill (joel@OARcorp.com>
7890
7891         * configure.in (m68*-*-rtemscoff*): New target, formal name for
7892         old m68*-*-rtems*.
7893         (m68*-*-rtemself*): New target.
7894         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
7895         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
7896         (sparc*-*-rtemself*): New target.
7897         (sparc*-*-rtems*): Now elf not a.out.
7898         * config/i386/rtems.h: Include config/rtems.h.
7899         * config/i386/rtemself.h: Include config/rtems.h.
7900         * config/i960/rtems.h: Include config/rtems.h.
7901         * config/m68k/rtems.h: Include config/rtems.h.
7902         * config/m68k/rtemself.h: Include config/rtems.h.
7903         * config/mips/rtems64.h: Include config/rtems.h.
7904         * config/pa/rtems.h: Include config/rtems.h.
7905         * config/rs6000/rtems.h: Include config/rtems.h.
7906         * config/sh/rtems.h: Include config/rtems.h.
7907         * config/sh/rtemself.h: Include config/rtems.h.
7908         * config/sparc/rtems.h: Include config/rtems.h.
7909         * config/sparc/rtemself.h: Include config/rtems.h
7910
7911 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
7912
7913         * final.c (shorten_branches): Correctly compute length of
7914         asms without operands.
7915
7916 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
7917
7918         * configure.in: Add pj target.
7919         * configure: Regenerate.
7920         * config/pj: New directory.
7921         * config/pj/lib1funcs.S: New file.
7922         * config/pj/linux.h: New file.
7923         * config/pj/pj.c: New file.
7924         * config/pj/pj.md: New file.
7925         * config/pj/pjl.h: New file.
7926         * config/pj/t-pj: New file.
7927         * config/pj/xm-pj.h: New file
7928
7929 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
7930
7931         * toplev.c (rest_of_compilation): Run shorten-branches before
7932         reg-stack for now.
7933
7934 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7935
7936         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
7937         macros so that they're consistent with their names.
7938         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
7939         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
7940
7941 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7942
7943         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
7944         modified inadvertently.
7945
7946 2000-01-04  Joel Sherrill <joel@OARcorp.com>
7947
7948         * configure.in (v850*-*-rtems*): New target.
7949         * configure: Regenerate.
7950         * config/v850/rtems.h: New file.
7951
7952 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
7953
7954         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
7955         (__gthread_key_create): Likewise.
7956         (__gthread_key_dtor):  Likewise.
7957         (__gthread_once): Fix logic.
7958         (__gthread_key_delete): Cast away constness.
7959
7960         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
7961         * invoke.texi: Document.
7962         * i386/mingw32.h (CPP_SPEC): Use.
7963         (LIBGCC_SPEC): Likewise.
7964         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
7965
7966 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
7967
7968         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
7969         (HANDLE_PRAGMA_PACK): Undefine.
7970         (SLOW_UNALIGNED_ACCESS): Define.
7971
7972 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
7973
7974         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
7975         to default definition.
7976         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
7977         (store_fixed_bit_field): Call macro with word_mode and alignment.
7978         (extract_bit_field): Call macro with relevant mode and alignment.
7979         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
7980         to default definition.
7981         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
7982         and alignment.
7983         (move_by_pieces_ninsns): Likewise.
7984         (clear_by_pieces): Likewise.
7985         (emit_push_insn): Likewise.
7986         (store_field): Call macro with relevant mode and alignment.
7987         (expand_expr): Likewise.
7988         (expand_expr_unaligned): Likewise.
7989
7990         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
7991         (SLOW_UNALIGNED_ACCESS): Define.
7992         (CASE_VECTOR_MODE): Always use 32-bit offsets.
7993         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
7994         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
7995         (toc_section): Likewise and .toc pseudo-op.
7996         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
7997         64-bit mode.
7998         (TEXT_SECTION_ASM_OP): Likewise.
7999         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
8000         32-bit offsets.
8001
8002         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
8003         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
8004         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
8005         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
8006         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
8007
8008 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
8009
8010         * regclass.c: Revert my Jan 4 change to loop cost computation.
8011
8012 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
8013
8014         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
8015         compilation.
8016
8017 2000-01-04  Stan Cox  <scox@cygnus.com>
8018
8019         * haifa-sched.c (build_control_flow): Change unreachable simple
8020         loop test to check if current block has only one predecessor.
8021         (find_rgns): Initialize degree.  Use dest as degree index, not src.
8022
8023 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8024
8025         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
8026
8027         * calls.c (expand_call): Likewise for
8028         `old_stack_arg_under_construction'.
8029
8030         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
8031
8032         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
8033         `save_constant'.
8034
8035         * gcc.c (execute): Likewise for `ut' and `st'.
8036
8037         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
8038
8039         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
8040
8041         * jump.c (jump_optimize_1): Likewise for `temp2'.
8042
8043         * local-alloc.c (block_alloc): Likewise for `r1'.
8044
8045         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
8046
8047         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
8048         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
8049
8050         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
8051         and `set2'.
8052
8053         * reload.c (find_reloads): Likewise for `goal_alternative_number'
8054         and `goal_earlyclobber'.
8055
8056         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
8057
8058         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
8059
8060         * stupid.c (stupid_life_analysis): Likewise for `chain'.
8061
8062         * unroll.c (copy_loop_body): Likewise for `copy'.
8063
8064         * varasm.c (output_constructor): Likewise for `byte'.
8065
8066 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
8067
8068         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
8069         all FP constants for constant->reg moves.
8070         (ix86_split_to_parts): Try to convert memory address into immediate
8071         when available in the constant pool.
8072         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
8073         moves.
8074         (LEGITIMATE_CONSTANT_P): Return 1.
8075         * i386.md (pushsf): New splitter to convert constant pool memory
8076         reference to immediate.
8077         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
8078         reload.
8079
8080 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
8081
8082         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
8083         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
8084         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
8085         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
8086         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
8087
8088 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
8089
8090         * ginclude/stdbool.h:  Support compilation as C++.
8091
8092 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8093
8094         * fold-const.c (make_range): Don't try to reverse an unbounded range.
8095
8096 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
8097
8098         * regclass.c (regclass): Properly compute loop_cost.  Adjust
8099         comments.
8100
8101         * regclass.c: Fix minor whitespace problems.
8102
8103 2000-01-03  Anthony Green  <green@cygnus.com>
8104
8105         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
8106         Restore the pic register if required.
8107
8108 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
8109
8110         * c-common.c (format_char_info): Update comment.
8111         (check_format_info): Recognize 'z' modifier in the same way 'Z'
8112         was recognized.  Emit warning for formats new in ISO C99 only
8113         if flag_isoc9x is not set.
8114
8115 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
8116
8117         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
8118
8119 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
8120
8121         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
8122         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
8123         (make_compound_operation): Choose cheaper alternative between
8124         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
8125
8126         * regclass.c (op_costs): Remove global variable.
8127         (record_reg_classes): New parameter "op_costs" and "reg_pref".
8128         (record_operand_costs): Break out from ...
8129         (scan_one_insn): ... here.
8130         (dump_regclass): Make dumps nicer.
8131         (regclass): Dump preferrences choosed and changes done during passes.
8132
8133 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
8134
8135         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
8136
8137 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
8138
8139         * config/sparc/sparc.c (gen_df_reg): New function.
8140         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
8141         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
8142         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
8143         movtf_cc_reg_sp64+1): Use it.
8144
8145 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
8146
8147         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
8148         copied LABEL_DECLs.
8149
8150 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8151
8152         * config/i386/i386.c (ix86_expand_unary_operator): Function
8153         definition made void.
8154         (ix86_expand_binary_operator): Update outdated preceding comment.
8155         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
8156         prototype.
8157
8158         * config/i386/i386.c (override_options): Fix option-name typo.
8159
8160 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
8161
8162         * system.h (CEIL): Define.
8163         * builtins.c (CEIL): Remove.
8164         * expmed.c (CEIL): Likewise.
8165         * expr.c (CEIL): Likewise.
8166         * stor-layout.c (CEIL): Likewise.
8167
8168 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8169
8170         * expr.c (store_constructor_field): Fix typo introduced with last
8171         gcc2 merge.
8172
8173 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
8174
8175         * tree.h (BINFO_N_BASETYPES): New macro.
8176
8177 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
8178
8179         * expmed.c (emit_store_flag): Prevent losing a pending stack
8180         adjust the same way we prevent losing queued increments.
8181
8182 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8183
8184         * function.c (update_temp_slot_address): Handle case where sum of
8185         temporary address plus offset in register is a valid address.
8186
8187 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
8188
8189         * genrecog.c (change_state) Corrected typo.
8190
8191 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8192
8193         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
8194         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
8195         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
8196
8197 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
8198
8199         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
8200         case, expand GT comparisons correctly.  Fix a comment before this
8201         part of the code.
8202
8203 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
8204
8205         * dwarfout.c: Include "frame.h"
8206         * dwarf2out.c: Likewise.
8207         * Makefile.in (dwarfout.o): Depend on frame.h
8208         (dwarf2out.o): Likewise.
8209
8210 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
8211
8212         Restore i386 binary compatibility in Dwarf EH info.
8213         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
8214         value of FIRST_PSEUDO_REGISTER.
8215         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
8216         (struct frame_state): Use DWARF_FRAME_REGISTERS.
8217         * dwarfout.c (output_reg_number): Ditto.
8218         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
8219         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
8220
8221 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
8222
8223         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
8224         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
8225         (<hack>_RE_CT): not needed
8226         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
8227         rewritten to scan the file text once only
8228         "template<..." test added
8229         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
8230         (is_cxx_header): declaration added
8231         * fixinc/fixtests.c(is_cxx_header): removed
8232         (apply_fix_p_t): removed
8233         (double_slash_test): is_cxx_header is only called once now
8234         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
8235         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
8236         within the templates.
8237         The borken spelling of "broken" was fixed.
8238         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
8239         The default level depends on FIXINC_DEBUG.
8240
8241 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8242
8243         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
8244         Otherwise provide a declaration for atexit.
8245         (init_dummy): Make sure dummy call to atexit is nevertheless
8246         called with correct number of args.
8247
8248         * frame.c: Update comments referring to other files.
8249
8250         * libgcc2.c: Likewise.
8251
8252 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8253
8254         * cse.c (free_element, get_element): Remove unused prototypes.
8255
8256         * fold-const.c (extract_muldiv): Initialize variables `op0' and
8257         `op1'.
8258
8259         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
8260         `else' clauses.
8261
8262 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
8263
8264         * configure.in,configure: case arm for mn10200-*-* now sets
8265         float_format=i32 so that float.h will correctly claim "double"
8266         to be 32 bits. Ran autoconf to generate configure from .in file.
8267
8268 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
8269
8270         * pa.md (conditional zero): If op1 is a register, force it into
8271         the same register as op0.
8272
8273 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
8274
8275         * tree.h (BINFO_BASETYPES): Improve documentation.
8276
8277 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8278
8279         * configure.in (--enable-checking): Use a more portable `for'
8280         loop syntax.
8281
8282 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8283
8284         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
8285         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
8286
8287         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
8288         Delete files.
8289
8290         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
8291         Delete descriptions.
8292
8293         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
8294         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
8295         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
8296         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
8297         xm-svr4.h: Remove all instances of sys_siglist handling.
8298
8299 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
8300
8301         * config/sparc/sparc.md (cmp_zero_qi,
8302         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
8303         cmp_zero_extendqidi2_andcc_set): New patterns.
8304
8305 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
8306
8307         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
8308         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
8309         (fpgnulib.c, xfgnulib.c): Add rules.
8310         * m68k/t-mot3300-gas: Likewise.
8311
8312 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
8313
8314         * configure.in: Avoid [[ by using test and changequote.  Add
8315         changequote required by 1999-12-14 change.
8316         * configure: Rebuild.
8317
8318 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
8319
8320         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
8321
8322 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
8323
8324         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
8325         * flow.c (find_use_as_address): Likewise.
8326         * function.c (fixup_var_refs_1): Likewise.
8327         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
8328         * jump.c (invert_exp, redirect_exp): Likewise.
8329         * loop.c (replace_call_address): Likewise.
8330         (count_nonfixed_reads): Likewise.
8331         * rtlanal.c (modified_between_p): Likewise.
8332         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
8333         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
8334         * unroll.c (remap_split_bivs): Likewise.
8335
8336 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8337
8338         * diagnostic.c (v_message_with_decl): Use .* format specifier
8339         instead of building the format specifier width manually.
8340
8341         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
8342         determining whether to provide a prototype.  Remove the
8343         sys_siglist clause in the conditional.
8344
8345 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8346
8347         * fold-const.c (operand_equal_p): Use memcmp to compare string
8348         constants.
8349         Suggested by D. J. Bernstein
8350
8351 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
8352
8353         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
8354         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
8355         compiling libgcc2.
8356         * config/mips/mips.h (TARGET_64BIT): Likewise.
8357         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
8358         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
8359         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
8360         dsps.  Give routines proper names if SI/DI modes are not used.
8361         * longlong.h: Use DWunion instead of DIunion.
8362
8363 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
8364
8365         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
8366         GC_CHECKING, GC_ALWAYS_COLLECT.
8367         * configure.in: Allow --enable-checking with an argument
8368         listing check modes to enable.
8369         * config.in, configure: Rebuilt.
8370         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
8371         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
8372         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
8373         ENABLE_GC_ALWAYS_COLLECT.
8374         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
8375         throughout.
8376         * tree.h, tree.c: Change ENABLE_CHECKING to
8377         ENABLE_TREE_CHECKING throughout.
8378
8379 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8380
8381         * fold-const.c (fold_truthop): Properly check for FP RHS.
8382
8383 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
8384
8385         * toplev.h (note_deferall_of_defined_inline_function): Declare.
8386         * toplev.c (note_deferral_of_defined_inline_function): New
8387         function, split out from ...
8388         (rest_of_compilation): ... here.  Use it.
8389
8390 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8391
8392         * expr.c (store_constructor): Don't call clear_storage if size is
8393         variable.
8394
8395 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8396
8397         * Makefile.in (toplev.o): Depend on loop.h.
8398
8399         * dwarfout.c: Include tm_p.h.
8400
8401         * emit-rtl.c (restore_emit_status): Mark parameter with
8402         ATTRIBUTE_UNUSED.
8403
8404         * final.c (final_scan_insn): Likewise.
8405
8406         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
8407         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
8408         flow_depth_first_order_compute, flow_loop_pre_header_find,
8409         flow_loop_tree_node_add, flow_loops_tree_build,
8410         flow_loop_level_compute, flow_loops_level_compute,
8411         flow_loop_outside_edge_p): Add prototypes.
8412         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
8413
8414         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
8415         Mark with ATTRIBUTE_NORETURN.
8416
8417         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
8418
8419         * local-alloc.c (no_conflict_p): Likewise.
8420
8421         * loop.c (insert_bct): Hide definitions of variables with hidden
8422         usage.
8423         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
8424
8425         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
8426         with ATTRIBUTE_UNUSED.
8427         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
8428         (reg_scan): Likewise.
8429
8430         * reload.c (find_reloads): Remove unused variables `changed'.
8431
8432         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
8433         away const-ness.
8434         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
8435         Remove unused variable `insn'.
8436
8437         * toplev.c: Include loop.h.
8438         (report_file_and_line): Remove unnecessary prototype.
8439
8440         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
8441
8442         * unroll.c (biv_total_increment): Likewise.
8443
8444 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8445
8446         * reload1.c (emit_input_reload_insns): Restore old behaviour
8447         wrt. 'special' reloads.
8448
8449 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
8450
8451         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
8452         hash.h.  (cse.c): Don't depend on hashtab.h.
8453
8454         * cse.c: Don't include hashtab.h.
8455         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
8456         of dead functions.
8457         * ggc-simple.c: Don't include hash.h.
8458
8459 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
8460
8461         * dwarf2out.c (add_abstract_origin_attribute): Call
8462         gen_abstract_function on our function context.
8463
8464 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
8465
8466         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
8467
8468 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8469
8470         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
8471         case in switch.
8472
8473 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8474
8475         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
8476         constraints to "a!r".
8477
8478 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
8479
8480         * Makefile.in (calls.o): Depend on function.h.
8481         (alias.o): Likewise.
8482
8483 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
8484
8485         * reload1.c (emit_reload_insns): Break out code and variables into...
8486         (input_reload_insns, other_input_address_reload_insns,
8487         other_input_reload_insns, input_address_reload_insns,
8488         inpaddr_address_reload_insns, output_reload_insns,
8489         output_address_reload_insns, outaddr_address_reload_insns,
8490         operand_reload_insns, other_operand_reload_insns,
8491         other_output_reload_insns): ... new static variables, and...
8492         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
8493         do_output_reload): ... new functions.
8494
8495 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8496
8497         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
8498
8499 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8500
8501         * md.texi: Add c4x constraints documentation.
8502
8503 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8504
8505         * config/i386/dgux.c (struct option): Rename to
8506         lang_independent_option.
8507         (struct m_options): Add description field.
8508         (output_options): Rename option type, add sep declaration, output
8509         ix86_cpu_string and ix86_arch_string only if set.
8510         (output_file_start): Rename option type.
8511
8512 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
8513
8514         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
8515         stmp-int-hdrs.
8516         (libgcc2.a): Similarly.
8517
8518 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
8519
8520         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
8521         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
8522         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
8523
8524 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
8525
8526         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
8527         Remove redundant initialization of "frexpon" and "expon".
8528
8529 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8530
8531         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
8532
8533         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
8534         (store_constructor_field, expand_expr): Pass new arg.
8535
8536 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
8537
8538         * Makefile.in (explow.o): Depend on function.h.
8539
8540         * stor-layout.c (set_sizetype): Fix typo.
8541
8542 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
8543
8544         * function.c (cfun): Renamed from current_function.  All users
8545         changed.
8546         * function.h (cfun): Rename declaration as well.
8547
8548         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
8549         to be of type regset_head, not regset.  All users changed by adding
8550         address operator.
8551         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
8552
8553 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8554
8555         * config/c4x/rtems.h: New file.
8556
8557 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
8558
8559         * reload1.c (spill_failure): Take class of failed reload as argument
8560         and print it.  Caller changed.
8561
8562 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8563
8564         * rs6000.h (SUBTARGET_DEFAULT): New macro.
8565         (TARGET_SWITCHES): Allow subtargets to default switches.
8566         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
8567
8568 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
8569
8570         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
8571         in a main program.
8572
8573 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
8574
8575         * cccp.c (main): Define __STDC_VERSION__ as necessary.
8576         * cppinit.c (cpp_handle_option): Likewise.
8577
8578         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
8579         determine when to define.
8580
8581 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
8582
8583         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
8584         cmove with mismatched test and data modes.
8585
8586 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
8587
8588         * c-typeck.c (c_expand_start_case): Don't warn for long switch
8589         in system headers.
8590
8591 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8592
8593         * alias.c: Minor reformatting.
8594         * flow.c: Likewise.
8595         * regs.h: Likewise.
8596         * stor-layout.c: Likewise.
8597         * fold-const.c: Likewise.
8598         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
8599         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
8600         not arg itself.
8601         (size_int_wide): Cache nodes even if garbage collecting.
8602         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
8603         of SAVE_EXPR has no side effects.
8604         * cse.c: Move a comment.
8605         * tree.c: Minor reformatting.
8606         (int_size_in_bytes): Return -1 if constant overflows.
8607
8608 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8609
8610         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
8611
8612 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
8613
8614         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
8615         after any change to c-parse.in, even if objc-parse.y didn't
8616         change.  Oops.
8617
8618 1999-12-18  David S. Miller  <davem@redhat.com>
8619
8620         * toplev.c (rest_of_compilation): Restore BLOCK tree
8621         reconstruction and branch shortening changes lost in
8622         December 18th change.
8623
8624 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
8625
8626         * config/arm/linux-elf.h: Change all instances of
8627         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
8628         * config/arm/uclinux-elf.h: Likewise.
8629
8630 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
8631
8632         * toplev.c (notice, vmessage, v_message_with_file_and_line,
8633         v_message_with_decl, file_and_line_for_asm,
8634         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
8635         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
8636         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
8637         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
8638         pfatal_with_name, fatal_io_error, need_error_newline,
8639         last_error_function, last_error_tick, announce_function,
8640         default_print_error_function, print_error_function,
8641         report_error_function, fnotice, error_with_file_and_line,
8642         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
8643         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
8644         warning_with_decl, warning_for_asm, warning, pedwarn,
8645         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
8646         diagnostic.c
8647         (compile_file): Use fnotice instead of notice.  Adjust call.
8648
8649         * diagnostic.c: New file.
8650
8651         * Makefile.in (OBJS): Include diagnostic.o
8652         (diagnostic.o): Define dependence.
8653
8654 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8655
8656         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
8657         Tweak formatting.
8658
8659 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8660
8661         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
8662
8663 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
8664
8665         * fixtests.c (is_cxx_header): New fn, split out of
8666         double_slash_test.
8667         (else_endif_label): Allow "#endif // comment" in C++ headers,
8668         as determined by is_cxx_header.
8669         * fixfixes.c (else_endif_label_fix): Update comment.
8670         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
8671         a tty.
8672         * genfixes: Correct double thinko in commandline parsing.
8673         * hackshell.tpl: Generate correct sh syntax for bypass
8674         entries.
8675
8676         * inclhack.def (all): Whenever an inserted preprocessor
8677         conditional is split over multiple lines, use double
8678         backslashes in this file so the fixed header will be readable.
8679
8680         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
8681         and add bypass entry for correct version of this header.
8682         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
8683         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
8684
8685         (hpux8_bogus_inlines): New fix, split from...
8686         (ultrix_atof_param) ... here.
8687         (math_expression): Add bypass entry keyed to glibc comment
8688         indicating the problem has been dealt with; disable
8689         unnecessary sed operations; update commentary.
8690         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
8691         add select and bypass entries, simplify shell operation.
8692         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
8693
8694         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
8695          ultrix_atof_param): Add select entry.
8696         (stdio_va_list, sunos_mather_decl): Add bypass entry.
8697         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
8698         comments with the fixes they describe.
8699
8700         * c-parse.in (string action): Do not warn about ANSI string
8701         concatenation in system headers.  Affects C parser only.
8702         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
8703
8704 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
8705
8706         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
8707         compiling libgcc2 the macro depends always on arch cpp defines.
8708
8709 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
8710
8711         * loop.c (insert_loop_mem): Don't record MEMs from inside
8712         EXPR_LISTs.
8713
8714 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
8715
8716         * regclass.c (regclass): Do not use flowgraph when not optimizing.
8717
8718         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
8719         notes too, create one when replacement failed, attempt to simplify
8720         resulting notes.
8721         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
8722         or REG_EQUIV notes.
8723
8724 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
8725
8726         * crtstuff.c (__dso_handle): Declare.
8727         (__cxa_finalize): Likewise.
8728         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
8729         non-NULL.
8730
8731         * invoke.texi: Document -fuse-cxa-atexit.
8732
8733         * tree.h (ptr_type_node): Document.
8734         (const_ptr_type_node): Likewise.
8735
8736 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8737
8738         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
8739         (optimize_reg_copy_2): Likewise.
8740         (optimize_reg_copy_3): Likewise.
8741         (fixup_match_2): Likewise.
8742         (regmove_optimize): Likewise.
8743         (fixup_match_1): Liekwise.
8744
8745         * i386.md (HI to SImode promoting splitters): Rewrite.
8746         (pushsf mem peep2): New.
8747         (testhi to andhi peep2): Remove.
8748         * i386.h (x86_promote_QImode): New.
8749         (TARGET_PROMOTE_QImode): New.
8750         (PREDICATE_CODES): Add promotable_binary_operator.
8751         * i386.c (x86_promote_QImode0: New.
8752         (promotable_binary_operator): New.
8753         * i386-protos.h (promotable_binary_operator): New.
8754
8755         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
8756         condition.
8757         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
8758
8759 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
8760
8761         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
8762         * function.c (insert_block_after_note): Remove.
8763         (retrofit_block): Likewise.
8764         (identify_blocks): Fix indentation.
8765         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
8766         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
8767         * function.h (insert_block_after_note): Remove prototype.
8768         (retrofit_block): Likewise.
8769         * integrate.c (expand_inline_function): Don't call
8770         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
8771         just expand_start_bindings.  Use the block_map to remap old
8772         NOTE_BLOCKs to new ones.
8773         (integrate_decl_tree): Keep track of remapped blocks.
8774         * integrate.h (struct inline_remap): Add block_map.
8775         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
8776         NOTE_BLOCK on the notes.
8777         (expand_start_bindings): Rename to ...
8778         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
8779         (expand_end_bindings): Set NOTE_BLOCK.
8780         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
8781         reconstruct the BLOCK tree.
8782         * tree.h (expand_start_bindings): Macroize.  Call ...
8783         (expand_start_bindings_and_block): New function.
8784
8785 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
8786
8787         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
8788         to match the format.
8789
8790 1999-12-16  David S. Miller  <davem@redhat.com>
8791
8792         * expr.c (emit_move_insn_1): Only emit clobbers if one of
8793         the outputs is a SUBREG.
8794         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
8795         change.
8796
8797         * config/sparc/sparc.c (epilogue_renumber): Add default case
8798         to switch stmt.
8799
8800 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8801
8802         * toplev.c (rest_of_compilation): Run branch shortening after
8803         reg-stack.
8804
8805         * regclass.c (loop_depth): Remove
8806         (scan_one_insn): Do not handle LOOP_NOTE insns.
8807         (regclass): Go through basic blocks and set loop_cost
8808
8809 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
8810
8811         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
8812
8813 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8814
8815         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
8816         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
8817         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
8818
8819 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
8820
8821         * loop.c (insert_loop_mem): Ignore memory clobbers.
8822
8823         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
8824         to (OP A B).
8825
8826 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
8827
8828         * profile.c: Remove redundant #include "output.h".
8829
8830         * h8300.md (HImode preinc peephole): Fix typo.
8831
8832 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
8833
8834         * function.c (retrofit_block): Abort if we don't find a suitable insn.
8835         (insert_block_after_note): Abort if we don't have a previous block.
8836         Remove FN parameter.
8837         * function.h: Adjust.
8838
8839 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
8840
8841         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
8842         argument more than once.
8843
8844 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
8845
8846         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
8847
8848 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
8849
8850         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
8851
8852 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8853
8854         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
8855         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
8856         update stack_alignment_needed.
8857         (prepare_function_start): Initialize stack_alignment_needed
8858         * function.h (struct function): Add field stack_alignment_needed.
8859
8860 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8861
8862         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
8863         Handle live_throughout / dead_or_set instead of live_before /
8864         live_after.
8865         (save_call_clobbered_regs): Get register livenessinformation from
8866         chain->live_throughout.
8867         (add_stored_regs): New function.
8868         (insert_restore, insert_save): Add restored / saved registers to
8869         dead_or_set.
8870         * global.c (reg_dies): New parameter chain.
8871         (reg_becomes_live): Third parameter is regs_set now.
8872         Changed all callers.
8873         (reg_dies): New parameter chain.  Changed all callers.
8874         (build_insn_chain): Set live_throughout instead of
8875         live_before / live_after.
8876         * reload.h (struct insn_chain): Replace members live_before /
8877         live_after with live_throughout / dead_or_set.
8878         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
8879         instead of live_before / live_after.
8880         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
8881         (order_regs_for_reload, find_reg, finish_spills): Likewise.
8882         (choose_reload_regs_init): Likewise.
8883         * stupid.c (current_chain, find_clobbered_regs): Delete.
8884         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
8885         instead of chain->live_before / chain->live_after.
8886         (mark_hard_ref): New function.
8887         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
8888
8889 1999-12-15  David S. Miller  <davem@redhat.com>
8890
8891         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
8892
8893 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8894
8895         * flow.c (calculate_loop_depth): Make global, remove prototype,
8896         rewrite to use new loop infrastructure.
8897         (find_basic_block): Remove calculate_loop_depth call.
8898         * toplev.c (rest_of_compilation): Call find_basic_block.
8899         * output.h (calculate_loop_depth): Declare.
8900
8901         * flow.c (dump_flow_info): Dump loop_depth.
8902         (flow_loops_nodes_find): Increase loop_depth for basic block in the
8903         body.
8904         (flow_loops_find): Initialize the loop_depth for each basic block.
8905
8906 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
8907
8908         * tree.c (decl_function_context): Handle virtual functions.
8909
8910         * tlink.c (scan_linker_output): Don't look in demangled name when
8911         looking for linker output keywords.
8912
8913         * dwarfout.c (output_type): We can defer namespace-scope classes.
8914
8915 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
8916
8917         * regclass.c (record_reg_classes): Update comment for merging
8918         register class preferences in reg->reg copies.  Tighten conditions
8919         for merging register class preferences in reg->reg copies.
8920
8921 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
8922
8923         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
8924
8925 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
8926
8927         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
8928         (INIT_SECTION_ASM_OP): Delete.
8929         (FINI_SECTION_ASM_OP): Delete.
8930         (STARTFILE_SPEC): Define to hold just crtbegin.o.
8931
8932 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
8933
8934         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
8935         the abstract origin wasn't emitted.
8936
8937         * dwarf2out.c (class_scope_p): New fn.
8938         (gen_subprogram_die): Use it.
8939         (gen_variable_die): Use it.  Tweak logic.
8940         (gen_struct_or_union_type_die): Check context_die to determine
8941         if we're function-local.
8942         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
8943
8944 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
8945
8946         * loop.c (check_dbra_loop): Can't reverse a biv that has
8947         maybe_multiple set.
8948
8949 1999-12-14  Nick Clifton  <nickc@cygnus.com>
8950
8951         * config/arm/arm.c: Add support for -mcpu=arm720 command line
8952         switch.
8953
8954 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8955
8956         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
8957         for givs made from biv increments.
8958
8959 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
8960
8961         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
8962         * alpha.c (override_options): Recognize -mcpu=ev67.
8963         * alpha.h (CPP_CPU_EV67_SPEC): New.
8964         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
8965         (EXTRA_SPECS): Update.
8966
8967 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
8968
8969         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
8970         appropriate for -lang-c89 and -std=*.
8971         * cppinit.c (cpp_handle_option): Likewise.
8972         (new_pending_define): New, split out from cpp_handle_option.
8973         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
8974         or enable trigraphs for -ansi/-std=*.
8975
8976         * ginclude/stdarg.h (__va_copy): New.
8977         (va_copy): Don't define for C89.
8978
8979 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
8980
8981         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
8982         for long long multiply-accumulate.
8983
8984 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
8985
8986         * regclass.c (scan_one_insn): Set loop_cost to 1 when
8987         optimizing for size.
8988
8989 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
8990
8991         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
8992         if something changed.  Back out that part of yesterday's changes.
8993
8994         * loop.c (loop_max_reg): New static variable.
8995         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
8996         max_reg_num.
8997         (scan_loop): Call reg_scan_update whenever we may have added new
8998         registers, and update loop_max_reg.
8999
9000 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9001
9002         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
9003         when source does not die.
9004
9005         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
9006
9007 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
9008
9009         * config/sparc/linux64.h (TARGET_LIVE_G0,
9010         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
9011         variants on Linux.
9012         * config/sparc/linux.h (TARGET_LIVE_G0,
9013         TARGET_BROKEN_SAVERESTORE): Likewise.
9014         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
9015         TARGET_BROKEN_SAVERESTORE): Likewise.
9016
9017         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
9018         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
9019         not %g2.
9020         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
9021         as sparc64 block profiling register.
9022         * config/sparc/sparc.c (sparc_override_options): Allow block
9023         profiling with -m32.
9024         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
9025         profiling register.
9026         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
9027         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
9028         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
9029
9030         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
9031         for sparc64.
9032         * config/sparc/sparc.h: Likewise.
9033         * config/sparc/xm-sysv4-64.h: Likewise.
9034         * config/float-sparc.h: Likewise.
9035         * glimits.h: Likewise.
9036         * longlong.h: Likewise.
9037
9038         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
9039         (ASM_IDENTIFY_GCC): Remove.
9040
9041 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
9042
9043         * combine.c (combine_simplify_rtx): Don't make shared rtl.
9044         (simplify_logical): Likewise.
9045
9046 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
9047
9048         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
9049         * cppfiles.c (INO_T_EQ): Likewise.
9050
9051 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
9052
9053         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
9054         * i386/mingw32.h (LIB_SPEC): Likewise.
9055         (STARTFILE_SPEC): Likewise.
9056         * i386/uwin.h (LIB_SPEC): Likewise.
9057         (STARTFILE_SPEC): Likewise.
9058
9059         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
9060         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
9061
9062 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
9063
9064         * combine.c (combine_simplify_rtx): Fix order of checks for
9065         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
9066
9067 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
9068
9069         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
9070         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
9071
9072 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
9073
9074         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
9075         defined.
9076         * regclass.c (inv_reg_alloc_order): New array.
9077         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
9078
9079         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
9080         counted_for_groups, counted_for_nongroups.  Add fields rld and
9081         n_reloads.
9082         * reload.c (push_secondary_reload): Don't set nongroup field of
9083         new reloads.
9084         (push_reload): Likewise.
9085         (find_reloads): Delete code to compute nongroup fields.
9086         * reload1.c (reload_insn_firstobj): New static variable.
9087         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
9088         users changed.
9089         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
9090         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
9091         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
9092         functions.
9093         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
9094         functions.
9095         (struct hard_reg_n_uses): Deleted.
9096         (potential_reload_regs): Deleted.
9097         (init_reload): Initialize spilled_pseudos and pseudos_counted.
9098         (reload): Don't try to allocate reload registers if we already know
9099         we have to make another pass.  Call select_reload_regs.  Free memory
9100         starting with reload_firstobj when starting another pass.
9101         Don't allocate spilled_pseudos.
9102         (calculate_needs_all_insns): Call copy_reloads for an insn that
9103         needs reloads; don't call calculate_needs.
9104         (spill_cost): New static array.
9105         (used_spill_regs_local): New static variable.
9106         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
9107         to compute potential_reload_regs.
9108         (find_reload_regs): Completely rewritten to use find_reg.
9109         (allocate_reload_reg): Don't test counted_for_groups or
9110         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
9111         all cllers changed.
9112         (choose_reload_regs): Add fallback code that uses the existing
9113         register allocation from find_reload_regs.
9114
9115 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
9116
9117         * flow.c (create_edge_list): Cast xmalloc return value.
9118
9119 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
9120
9121         * doprnt.c: Remove incorrect comment closure.
9122
9123         * cse.c: Fix a few minor whitespace goofs.
9124
9125 1999-12-13  Don Bowman  <don@pixstream.com>
9126
9127         * mips/vxworks.h: Fix problem with comment termination.
9128         (EXTRA_SECTIONS): Add in_sbss.
9129         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
9130
9131 1999-12-12  David S. Miller  <davem@redhat.com>
9132
9133         * cse.c (struct cse_reg_info): Add hash_next member,
9134         reorder rest of struct for better packing on 64-bit
9135         hosts.
9136         (cse_reg_info_tree): Kill.
9137         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
9138         REGHASH_FN): New custom pow2 hash mechanism.
9139         (NBUCKETS): Kill.
9140         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
9141         use a pow2 hash table.
9142         (get_cse_reg_info): Rework to use new REGHASH.
9143         (new_basic_block): Likewise, use HASH_SIZE, and inline
9144         free_element call.
9145         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
9146         and inline free_element call.
9147         (lookup_as_function, insert, flush_hash_table, invalidate,
9148         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
9149         invalidate_for_call, use_related_value, find_comparison_args,
9150         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
9151         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
9152         get_element): Kill.
9153
9154 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
9155
9156         * cse.c (cse_basic_block): Free qty_table consistently.
9157
9158 1999-12-12  David S. Miller  <davem@redhat.com>
9159             Jakub Jelinek    <jakub@redhat.com>
9160
9161         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
9162         SUBREGs by hand, gen the appropriate hard reg directly.
9163         (movtf reg/mem split): Likewise and alter_subreg on destination
9164         if necessary.
9165         (movtf mem/reg split): Similarly.
9166         (movdf_cc_sp64): Rename from hidden pattern.
9167         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
9168         (movtf_cc_sp64, following split): New pattern and splitter.
9169         (movdf_cc_reg_sp64): Rename from hidden pattern.
9170         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
9171         TARGET_HARD_QUAD.
9172         (movtf_cc_reg_sp64, following split): New pattern and splitter.
9173
9174 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
9175
9176         * loop.c (load_mems): Don't hoist written floating point mem
9177         if -ffloat-store.
9178
9179 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
9180
9181         * except.h (struct eh_queue): Add `next' pointer.
9182         (struct eh_status): Make x_ehqueue a pointer.
9183         (push_ehqueue):  Declare.
9184         (pop_ehqueue): Likewise.
9185         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
9186         pointer.
9187         (expand_fixup_region_end): Likewise.
9188         (expand_leftover_cleanups): Likewise.
9189         (push_ehqueue): Define.
9190         (pop_ehqueue): Likewise.
9191         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
9192         than doing it inline.
9193         (expand_start_all_catch):  Adjust now that ehqueue is a
9194         pointer.
9195         (mark_eh_queue): Mark all level of the queue.
9196         (mark_eh_status):  Adjust now that ehqueue is a
9197         pointer.
9198         (init_eh_for_function): Allocate ehqueue.
9199         (free_eh_status): Free it.
9200         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
9201         expansion for a fixup.
9202
9203 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9204
9205         * gthr-single.h (__gthread_active_p): Add prototype arguments.
9206
9207         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
9208         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
9209         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
9210         function_ptr, getpagesize, __enable_execute_stack,
9211         __enable_execute_stack, __clear_insn_cache,
9212         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
9213         _cleanup, _exit, __default_terminate, __terminate_func,
9214         __terminate, __empty, __throw, new_eh_context,
9215         eh_context_initialize, eh_context_static, eh_context_specific,
9216         get_eh_context, __get_eh_context, __get_eh_info,
9217         init_reg_size_table, eh_threads_initialize,
9218         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
9219         __unwinding_cleanup, throw_helper, __throw, __rethrow,
9220         __pure_virtual): Add prototype arguments.
9221         (__bb_exit_func): Cast a sizeof to long when comparing against one.
9222         Cast a signed value to unsigned long when comparing against one.
9223         (new_eh_context): Wrap in _GTHREADS macro.
9224         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
9225         declaration.
9226         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
9227         (throw_helper): Initialize variables `handler_p' and `pc_p'.
9228
9229 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9230
9231         * combine.c (record_promoted_value): Remove unused variable
9232         `links2'.
9233
9234         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
9235
9236         * global.c (record_conflicts): Likewise for `j'.
9237
9238         * genoutput.c (output_insn_data): Don't unnecessarily cast away
9239         const-ness.
9240
9241 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9242
9243         * i386-protos.h (output_387_binary_op, output_fix_trunc,
9244         output_fp_compare): Constify a char*.
9245
9246         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
9247         static prototypes.
9248         (override_options, ix86_comp_type_attributes, print_operand,
9249         output_387_binary_op, output_fix_trunc, output_fp_compare):
9250         Constify a char*.
9251         (ix86_sched_reorder): Mark parameter `clock_var' with
9252         ATTRIBUTE_UNUSED.
9253
9254         * i386.h (DEBUG_PRINT_REG): Constify a char*.
9255
9256 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
9257
9258         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
9259         operand, for use in the Java front-end.
9260
9261 1999-12-10  Ben Collins  <bcollins@debian.org>
9262
9263         * configure.in: Fix typo for "-64" in 64bit as check.
9264         * configure: Rebuilt.
9265
9266 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
9267
9268         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
9269         appropriate.
9270
9271 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9272
9273         * c-parse.in (string): With -Wtraditional, warn if ANSI string
9274         concatenation is utilized.
9275
9276         * invoke.texi (-Wtraditional): Document it.
9277
9278 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9279
9280         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
9281         Cast a ptrdiff_t to long and pass it to printf with %ld.
9282
9283 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
9284
9285         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
9286         68881, we have no 68881 registers at all.
9287         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
9288         value in a 68881 register if it is available.
9289
9290 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
9291
9292         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
9293         for long long multiply-accumulate.
9294
9295 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
9296
9297         * loop.c (insert_loop_mem): Undo last change.
9298
9299 1999-12-10  David S. Miller  <davem@redhat.com>
9300
9301         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
9302         New functions.
9303         * config/sparc/sparc-protos.h: Add them.
9304         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
9305         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
9306         constraints which use those helpers.
9307         (EXTRA_CONSTRAINT): Use this new macro.
9308         * md.texi: Update sparc target constraints documentation.
9309         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
9310         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
9311         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
9312         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
9313         (movsf high/lo_sum split): Rework for new patterns.
9314         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
9315
9316 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
9317
9318         * c-common.c (c_common_nodes_and_builtins):
9319         Create __builtin_ptrdiff_t and __builtin_size_t.
9320
9321 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
9322
9323         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
9324
9325 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9326
9327         * regclass.c (globalize_reg): Re-instate test that allows
9328         fixed registers to be declared as a variable even after functions
9329         are defined.
9330
9331 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9332
9333         * i386.md (cpu attribute): Add "athlon".
9334         (athlon_decode): New attribute.
9335         (Athlon scheduling units definitions): New.
9336         (fcmp and shld patterns): Set athlon_decode to "vector".
9337         * i386.c (athlon_cost): New.
9338         (m_ATHLON): New.
9339         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
9340         x86_use_sahf): Set for Athlon.
9341         (x86_use_fiop): Unset for Athlon.
9342         (override_options): Define Athlon alignments and "athlon" name.
9343         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
9344         * i386.h (TARGET_ATHLON): New.
9345         (enum processor_type): Add PROCESSOR_ATHLON.
9346         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
9347         for CPU_DEFAULT==5
9348         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
9349
9350 1999-12-09  Andreas Jaeger  <aj@suse.de>
9351
9352         * loop.c (record_biv): Declare parameter as int.
9353
9354         * config/i386/i386-protos.h: Declare long_memory_operand.
9355
9356 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
9357
9358         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
9359         EXPR_WITH_FILE_LOCATION.
9360
9361 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
9362
9363         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
9364         in expander.
9365
9366         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
9367
9368         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
9369         updating code.
9370
9371 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
9372
9373         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
9374         default on linux64 again.
9375         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
9376         models for multilibing.
9377         * genmultilib: Accept | as alternative separator within a set in
9378         MULTILIB_OPTIONS.
9379
9380         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
9381
9382         * calls.c (precompute_arguments): Make sure initial_value contains
9383         value pseudo which CSE expects.
9384         * cse.c (struct set): New entry orig_src.
9385         (cse_insn): Set it early on entry, use it for libcall EQUIV note
9386         replacement.
9387
9388 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
9389
9390         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
9391
9392 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
9393
9394         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
9395
9396 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
9397
9398         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
9399         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
9400
9401         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
9402         if TARGET_ARCH32.
9403
9404         * longlong.h: Merge in changes from glibc.
9405         Also don't clobber %g2 register in 32bit SPARC assembly, so that
9406         -mno-app-regs libgcc can be compiled.
9407         * libgcc2.c: Add defines so that the updated longlong.h
9408         can be used in libgcc2.a. Also, make sure on most architectures
9409         (at least on all which have optimized code in longlong.h defined
9410         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
9411
9412 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9413
9414         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
9415         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
9416         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
9417         is GNU ld.
9418         * configure: Rebuilt.
9419
9420 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
9421
9422         * alpha.c (secondary_reload_class): For !BWX, sub-simode
9423         outputs require a register.
9424
9425 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
9426
9427         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
9428         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
9429         functions like dptoul will be resolved.
9430         (libgcc2.a): Make sure that the object files from DPBIT are named
9431         differently (prefix `_dp') from those that would be coming from
9432         FPBIT.
9433
9434 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
9435
9436         * configure.in: When target is sparc* and tm_file contains 64,
9437         test for 64bit support in assembler.  If not supported, remove
9438         sparc/t-sol2-64 from target-dependent Makefile fragments.
9439         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
9440         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
9441         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
9442         * acconfig.h (AS_SPARC64_FLAG): Added.
9443         * configure, config.in: Rebuilt.
9444         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
9445         support.  Use AS_SPARC64_FLAG.
9446
9447 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
9448
9449         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
9450         suitable for holding OFmode values so that gcc works with complex
9451         quad long doubles.
9452         (hard_64bit_mode_classes): Likewise.
9453
9454         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
9455         so that it is actually matched.
9456         (sethi_di_medlow): Likewise.
9457
9458         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
9459         as legitimate constant if -mvis.
9460         * config/sparc/sparc.md (movtf): Likewise.
9461         (clear_sf): Use const_double_operand.
9462         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
9463
9464         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
9465         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
9466         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
9467         routines, _Qp_* cannot be handled like that now.
9468         (INIT_TARGET_OPTABS): Likewise.
9469         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
9470         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
9471         sparc_emit_float_lib_cmp if ARCH64 and soft float.
9472         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
9473         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
9474         divtf3, sqrttf3): New expanders.
9475         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
9476         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
9477         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
9478         non-_hq patterns.
9479
9480         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
9481         * configure: Rebuilt.
9482         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
9483         -mcpu is given and we're doing 64bit compiles.
9484
9485 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
9486
9487         * loop.h (struct induction): Add multi_insn_incr.
9488         * loop.c (basic_induction_var): New multi_insn_incr argument.
9489         Set it if we search back through previous insns for the biv.
9490         (record_biv): New multi_insn_incr argument; fill in struct induction.
9491         (strength_reduce): Discard an iv with multiple bivs, any of
9492         which require multiple insns to increment.
9493
9494 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9495
9496         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
9497         documentation.
9498
9499 1999-12-06  David S. Miller  <davem@redhat.com>
9500
9501         * combine.c (check_promoted_subreg): Do not conditionalize this upon
9502         PROMOTE_FUNCTION_RETURN.
9503
9504 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
9505
9506         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
9507         and handle REG_UNUSED note on insn.
9508
9509         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
9510         inner_mask instead of mask.
9511
9512 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
9513
9514         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
9515         zero if there was an error.
9516
9517 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
9518
9519         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
9520         output string.
9521
9522         * longlong.h: Fix clobbers in SPARC asm statements.
9523
9524         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
9525         valid sethi operations when TARGET_ARCH64.
9526
9527         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
9528         always use move_by_pieces to avoid infinite recursion.
9529         (restore_fixed_argument_area): Likewise.
9530
9531         * combine.c (check_promoted_subreg, record_promoted_value): New
9532         functions.
9533         (combine_instructions): Use them to retain nonzero and sign bit
9534         information after SUBREGs are eliminated by optimizations in
9535         this pass if PROMOTE_FUNCTION_RETURN.
9536
9537         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
9538         .register declaration. Don't use variables with __ prefixes.
9539
9540 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9541
9542         * fold-const.c (optimize_bit_field_compare): Only use one mode
9543         for both RHS and LHS in non-constant case.
9544
9545 1999-12-06  Nathan Sidwell  <nathan@acm.org>
9546
9547         * frame.c (start_fde_sort): Only allocate erratic array, if
9548         linear one was allocated. Return allocated flag.
9549         (fde_insert): Only insert, if there's a valid array.
9550         (fde_end_sort): Split, sort and merge if linear and erratic
9551         arrays exist, else just sort linear one.
9552         (search_fdes): New function. Linear search through original fde
9553         structure.
9554         (frame_init): Permit multiple initializations. Cope with
9555         memory shortages.
9556         (find_fde): Fallback on linear search, if failed to sort array.
9557         (__deregister_frame_info): Only free sorted array, if we
9558         allocated it.
9559
9560 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
9561
9562         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
9563
9564 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
9565
9566         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
9567
9568 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
9569
9570         * tree.h (special_function_p): Declare.
9571         * calls.c (special_function_p): Make it global.  Don't take `name'
9572         as a parameter.  Fix typo in 1999-11-28 change.
9573         (expand_cal): Adjust.
9574
9575 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
9576
9577         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
9578         * tree.h (EXPR_WFL_FILENAME): Define in terms of
9579         EXPR_WFL_FILENAME_NODE.
9580         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
9581         the TREE_CHAIN.
9582         * print-tree.c (print_note): Print TREE_PRIVATE and
9583         TREE_PROTECTED.
9584
9585         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
9586         the original die cannot be found.
9587
9588         * varray.h (varray_head_tag): Add elements_used.
9589         (VARRAY_PUSH): New macro.
9590         (VARRAY_POP): Likewise.
9591         (VARRAY_TOP): Likewise.
9592         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
9593         types.
9594         * varray.c (varray_init): Initialize elements_used.
9595         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
9596         (INTEGRATE_H): New variable.
9597         (integrate.o): Depend on INTEGRATE_H.
9598         (unroll.o): Likewise.
9599
9600         * function.h (insert_block_after_note): Declare.
9601         * function.c (insert_block_after_note): Split out from ...
9602         (retrofit_block): ... here.
9603
9604         * stmt.c (expand_fixup): Fix typo in comment.
9605
9606 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9607
9608         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
9609         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
9610         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
9611         (regmove_optimize, fixup_match_1): Likewise.
9612
9613 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9614
9615         * flow.c (flow_loops_dump): Add missing argument when calling
9616         flow_loop_nested_p.
9617
9618 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
9619             Greg McGary  <gkm@gnu.org>
9620
9621         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
9622         (init_attributes): Add A_NO_LIMIT_STACK.
9623         (decl_attributes): Handle A_NO_LIMIT_STACK.
9624         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
9625         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
9626         Handle stack bounds checking.
9627         * flags.h (flag_stack_check): Use the word 'probe' rather than
9628         'check', because the flag doesn't actually cause any checking to
9629         be done.
9630         * function.c (expand_function_start): Set
9631         current_function_limit_stack.
9632         * function.h (struct function): Add limit_stack.
9633         (current_function_limit_stack): Define.
9634         * invoke.texi (Code Gen Options): Document new options.
9635         * rtl.h: Declare stack_limit_rtx.
9636         * toplev.c (stack_limit_rtx): New variable.
9637         (decode_f_option): Handle new options -fstack-limit-register=REG,
9638         -fstack-limit-symbol=IDENT, -fno-stack-limit.
9639         (main): Add stack_limit_rtx as GC root.
9640         * tree.h (DECL_NO_LIMIT_STACK): New macro.
9641         (struct tree_decl): New member no_limit_stack.
9642
9643         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
9644         stack_limit_rtx.
9645         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
9646         (conditional_trap+1): Get new mnemonic correct.
9647         (conditional_trap+2): New pattern for DImode traps.
9648
9649         * config/m68k/m68k.c (output_function_prologue): Handle
9650         stack_limit_rtx.
9651         * config/m68k/m68k.md (trap): New insn.
9652         (conditional_trap): New insn.
9653         * md.texi (Standard Names): Document `trap' and
9654         `conditional_trap'.
9655         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
9656         so a cc0 setter doesn't get emitted at some random place in the
9657         function.
9658
9659         * config/i960/i960.md (trap): New insn.
9660         (conditional_trap): New expander.
9661         (conditional_trap+1, conditional_trap+2): New insns for signed
9662         and unsigned cases.
9663         * config/i960/i960.c (i960_function_prologue): Use
9664         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
9665
9666 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
9667                           Geoffrey Keating  <geoffk@cygnus.com>
9668
9669         * flags.h (warn_padded, warn_packed): Add global var decls.
9670         * toplev.c (warn_padded, warn_packed): Add global var defns.
9671         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
9672         * stor-layout.c (layout_record): Add local variable `type'
9673         to hold often-used TREE_TYPE (field).  Add local variable
9674         `unpacked_align' to hold alignment that would be in force
9675         if no `packed' attribute were present.  Warn if `packed' attribute
9676         is unnecessary, or even harmful.  Warn when gcc inserts padding
9677         to satisfy alignment requirements of members.  Use NULL_TREE
9678         when checking whether var_size is set.
9679         * invoke.texi: Document new flags.
9680
9681 1999-12-03  Nathan Sidwell  <nathan@acm.org>
9682
9683         * frame.c (fde_split): Reimplement to avoid variable sized array.
9684
9685 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9686
9687         * combine.c (try_combine): Before fixing up LOG_LINKS for the
9688         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
9689
9690 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
9691
9692         * invoke.texi: Document the mips option -mno-crt0
9693
9694 1999-12-02  Mike Karr  <mkarr@mathworks.com>
9695
9696         * cccp.c (argdata): Added free_ptr member.
9697         (macroexpand): Initialize free_ptr of each argument. When an
9698         argument's buffers are freed, if the argument's free_ptr corresponds
9699         to a buffer on the input stack, then return the free_ptr to that stack
9700         frame, otherwise, free it.
9701         (macarg): If an argument begins and ends on the same input stack level,
9702         then transfer the free_ptr of that buffer to the argument in case
9703         the stack is popped during the processing of a subsequent argument.
9704
9705 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
9706
9707         * loop.c (note_reg_stored): New function.
9708         (struct note_reg_stored_arg): New structure.
9709         (try_copy_prop): Change to be more conservative; only replace within
9710         one extended basic block and stop replacing if a store to the
9711         replacement reg is seen.
9712
9713 1999-12-02  Nick Clifton  <nickc@cygnus.com>
9714
9715         * config/fp-bit.c: Initialise all fields of the NAN
9716         constants.
9717
9718         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
9719         to HANDLE_PRAGMA.
9720
9721 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
9722
9723         * i386.md (extend?f?f2): Force the input into a register, not
9724         the output.
9725
9726 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
9727
9728         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
9729         regclass' sake.
9730         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
9731         alternative because setting up 64bit constant is usually costly,
9732         especially when reload is in progress or completed.
9733         (movdf_const_intreg_sp64): Likewise.
9734         (movdf_const_intreg split): Fix building up constants when
9735         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
9736
9737 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
9738
9739         * combine.c (if_then_else_cond): Use const_true_rtx instead of
9740         const1_rtx for return values in EQ/NE comparison against (const_int 0)
9741         case.
9742
9743         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
9744         (asm_file_start): Emit .am33 into assembly file when compiling for
9745         the AM33.
9746         (print_operand_address): Handle POST_INC addresses.
9747         (can_use_return_insn, initial_offset): Check AM33 registers too.
9748         (expand_prologue): Check & save AM33 registers too.
9749         (expand_epilogue): Similarly.
9750         (secondary_reload_class): Handle AM33 specific secondary reloads.
9751         (output_tst): Emit efficient code for the AM33 too.
9752         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
9753         (TARGET_SWITCHES): Add -mam33 switch.
9754         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
9755         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
9756         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
9757         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
9758         (enum reg_class, REG_CLASS_NAMES): Likewise.
9759         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
9760         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
9761         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
9762         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
9763         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
9764         (HAVE_POST_INCREMENT): Define.
9765         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
9766         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
9767         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
9768         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
9769         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
9770         (zero_extend to SI from QI/HI): Likewise.
9771         (sign_extend to SI from QI/HI): Likewise.
9772         (mulsidi3, umulsidi3): New patterns for the AM33.
9773         (tstsi with zero extension from QI/HI): Add AM33 variants.
9774         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
9775         (return_internal_regs, store_movm): Handle new AM33 registers.
9776         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
9777         (LIBGCC, INSTALL_LIBGCC): Likewise.
9778         * invoke.texi: Document new flags.
9779
9780 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9781
9782         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
9783         (addsi3_carry): Likewise.
9784         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
9785         (sbbsi3_carry): Likewise.
9786         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
9787         (mulhi3): Likewise.
9788         (test?i_1): Ensure that only one operand is memory.
9789         (conditional move patterns): likewise.
9790         (shift and rotate patterns): Rewrite to expander, add
9791         "binary_operator_ok" to the condition.
9792
9793         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
9794         * i386.h (procesor_costs): Add movzbl_load field.
9795         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
9796         non-Q registers, accept DImode registers anywhere.
9797         (Q_CLASS_P): New.
9798         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
9799         * i386.c (*_cost): Set value for movxbl_load field.
9800
9801         * (addsi): New add to lea splitter.
9802         (ashlsi): Likewise.
9803         (lea to add/shift peep2): New.
9804
9805 1999-12-01  Mark Salter <msalter@cygnus.com>
9806
9807         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
9808         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
9809         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
9810
9811 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
9812
9813         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
9814         * i386.md (movsi_xor): New.
9815         (movsi_or): New.
9816         (movsi_1, movhi_1, movqi_1): Remove.
9817         (movsi_2): Rename to movsi_1.
9818         (movhi_2): Rename to movhi_1.
9819         (movqi_2): Rename to movqi_1.
9820         (movdi_1): Remove; remove splitter.
9821         (movdi_2): Rename to movdi_1.
9822         (divmodsi4 splitter): Do not emit clobbers for move patterns.
9823         (long move peep2): Do not create QI or HI mode mov0s
9824         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
9825
9826         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
9827         rewrite splitters.
9828
9829         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
9830         (abs?f2_if): Likewise.
9831
9832 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
9833
9834         * ggc.h (ggc_test_and_set_mark): New macro.
9835         (ggc_mark_rtx): Use ggc_test_and_set_mark.
9836         (ggc_mark_tree): Likewise.
9837         (ggc_mark_rtvec): Likewise.
9838         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
9839
9840 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
9841
9842         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
9843         containing types.
9844         (decl_scope_table): Just an array of trees now.
9845         (push_decl_scope): Simplify.
9846         (dwarf2out_init): Adjust.
9847         (local_scope_p): New fn.
9848         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
9849         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
9850         (gen_typedef_die): Likewise.
9851         (gen_lexical_block_die): Don't call push/pop_decl_scope.
9852         (gen_inlined_subroutine_die): Likewise.
9853         (gen_abstract_function): Set current_function_decl temporarily.
9854         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
9855         Handle block extern declarations.  Don't call push/pop_decl_scope.
9856         (gen_decl_die): Fix logic for block externs.
9857
9858 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9859
9860         * calls.c (special_function_p): Remove `realloc' and add `strdup'
9861         to the list of functions which have attribute malloc by default.
9862
9863 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9864
9865         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
9866         integer constant does not match the traditional type, limit the
9867         warnings to cases where the base of the type is ten.
9868
9869         * invoke.texi (-Wtraditional): Document it.
9870
9871 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9872
9873         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
9874         * rs6000.md: Only access a CONST_INT with INTVAL
9875
9876 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
9877
9878         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
9879         (compute_nearerout): Likewise.
9880         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
9881         size_t to unsigned long for formatting.
9882
9883 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
9884
9885         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
9886         Allow the user to override call-used/fixed state of %g2-5
9887         registers from the command line (with the exception of %g4 for
9888         embedded model).
9889         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
9890         there is a higher chance of having a leaf function.
9891         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
9892         for ARCH64 which has %ccr register.
9893         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
9894         patterns.
9895         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
9896         insn accept into delay slot any insn which does not use %[ol]
9897         registers.  Accept some LO_SUM and shift left by 1 for the normal
9898         restore case.
9899         (output_function_epilogue): Likewise.
9900         (epilogue_renumber): Added argument which inhibits any renumbering
9901         and just tests if the rtx does not use any %[ol] registers.
9902         (output_return): Reflect above change.
9903
9904 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
9905
9906         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
9907         aggregate passing for sizes <= 16 bytes.
9908
9909 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
9910
9911         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
9912         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
9913         * reload.c (find_dummy_reload): Likewise.
9914         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
9915         * reload1.c (reload_as_needed): Likewise.
9916         * stupid.c (stupid_find_reg): Likewise.
9917         * tm.texi (Obsolete Register Macros): Delete section.
9918         * gmicro.h: Remove all traces of the two macros.
9919         * i386.h: Likewise.
9920         * m88k.h: Likewise.
9921         * mips.h: Likewise.
9922
9923 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
9924
9925         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
9926         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
9927         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
9928         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
9929         units for the sparclite86x chip.
9930         (flush): Revert October 14th change; add SImode specifically.
9931         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
9932         * invoke.texi: Document it.
9933
9934 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
9935
9936         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
9937         psimode_truncation_operand.
9938
9939         * config/mn10200/mn10200.c (psimode_truncation_operand): New
9940         function.  Return true if the operand is either a MEM valid
9941         for a PSImode address or not a MEM at all.
9942
9943         * config/mn10200/mn10200.md (truncsipsi2): Use
9944         psimode_truncation_operand.
9945
9946 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9947
9948         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
9949         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
9950         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
9951         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
9952         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
9953         (flow_loop_level_compute, low_loops_level_compute): Likewise.
9954         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
9955         * basic-block.h: Protect from multiple inclusion.
9956         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
9957         (struct loops, struct loop): Define structures.
9958         * sbitmap.c (sbitmap_a_subset_b_p): New function.
9959         * sbitmap.h: Protect from multiple inclusion.
9960         (sbitmap_a_subset_b_p): Add prototype.
9961         * Makefile.in (LOOP_H): New macro.
9962         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
9963
9964 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
9965
9966         * cppinit.c (CAT): The argument list of this macro may not contain
9967         spaces !
9968
9969 1999-11-29  David S. Miller  <davem@redhat.com>
9970
9971         Move quantity tables and register equivalence chains into
9972         per-qty and per-register structure arrays respectively.
9973         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
9974         qty_const_insn, qty_comparison_code, qty_comparison_const,
9975         qty_comparison_qty): Delete, replace with...
9976         (qty_table): this structure table.
9977         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
9978         (reg_eqv_table): this structure table.
9979         (make_new_qty): Add argument MODE.  Caller updated.
9980         Update to use qty_table and reg_eqv_table.
9981         (make_regs_eqv, delete_reg_equiv, insert_regs,
9982         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
9983         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
9984         cse_process_notes, cse_main, cse_basic_block): Likewise.
9985
9986 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9987
9988         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
9989         operation if C is negative.
9990         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
9991         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
9992         law for some divisions if constant is negative and change other
9993         divisions to the opposite rounding.
9994
9995         * expr.c (store_constructor_field): If bit position is not multiple
9996         of alignment of TARGET's mode, use BLKmode.
9997
9998         * expr.c (expand_expr_unaligned): Add more code from full case
9999         that is needed when OP0 is in a register.
10000
10001 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10002
10003         * dwarfout.c (field_byte_offset): Size can be zero if there was
10004         an error.
10005
10006 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
10007
10008         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
10009         (associate_trees): Delete unused var TEM.
10010         (extract_muldiv): Delete unused var CANCEL_P.
10011
10012         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
10013         (target_isinf, target_isnan, target_negative): Add return types to
10014         function definitions.
10015
10016 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
10017
10018         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
10019         * fixinc/hackshell.tpl: ditto
10020         * fixinc/fixtests.c(double_slash_test): more C++ header testing
10021         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
10022
10023 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
10024
10025         * reload.c (push_reload): When looking for a register to put into
10026         reg_rtx, make sure all hard regs in a multi-reg register are in the
10027         right class and nonfixed.
10028
10029         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
10030         pending_read_insns, pending_write_insns, pending_read_mems,
10031         pending_write_mems, pending_list_length, last_pending_memory_flush,
10032         last_function_call, sched_before_next_call): Move static variables
10033         into a structure.
10034         (bb_ prefixed versions): Replace with single array bb_deps.
10035         (struct deps): New structure.
10036         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
10037         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
10038         argument of type "struct deps *"; use that instead of global
10039         variables.  All callers changed.
10040         (init_rgn_data_dependencies): Delete function.
10041         (init_rtx_vector): Delete function.
10042         (init_deps): New function.
10043
10044         (free_pending_lists): Simplify, we always use the bb_deps array even
10045         if only one basic block.
10046         (compute_block_backward_dependences): Likewise.
10047         (schedule_region): Likewise.
10048
10049         (propagate_deps): New function, broken out of
10050         compute_block_backward_dependences.
10051         (compute_block_backward_dependences): Use it.
10052
10053         * alpha.md: Delete useless patterns that tried to work around
10054         register elimination problems.
10055
10056         * unroll.c (loop_iterations): Don't abort if iteration variable
10057         was made by loop.
10058
10059         From Joern Rennecke:
10060         * reload1.c (reloads_conflict): Reverse test comparing operand
10061         numbers when testing for conflict between output/outaddr reloads.
10062
10063 1999-11-29  David S. Miller  <davem@redhat.com>
10064
10065         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
10066         arg.
10067         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
10068
10069 1999-11-28  Robert Lipe  <robertl@cygnus.com>
10070
10071         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
10072         table from .fini into .dtor.
10073
10074 1999-11-28  Anthony Green  <green@cygnus.com>
10075
10076         * tree.h (struct tree_decl): Add malloc_flag.
10077         (DECL_IS_MALLOC): Define.
10078         * c-common.c (attrs): Add A_MALLOC attribute.
10079         (init_attributes): Add this attribute to the table.
10080         (decl_attributes): Handle malloc attribute.
10081         * calls.c (special_function_p): Check for the malloc attribute.
10082         * extend.texi (Function Attributes): Document malloc attribute.
10083
10084 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
10085
10086         * pa.md (reload shift-add patterns): Remove.
10087
10088 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10089
10090         * reorg.c (dbr_schedule) Print more statistics. Corrected
10091         problem when printing info when 3 delay slots are filled.
10092
10093 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
10094
10095         * combine.c (setup_incoming_promotions): Pass an outgoing
10096         regno to FUNCTION_ARG_REGNO_P which it expects.
10097
10098 1999-11-28  Andreas Jaeger  <aj@suse.de>
10099
10100         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
10101
10102 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
10103
10104         * cccp.c (do_include): Avoid initialization of automatic variable.
10105
10106         * integrate.c (mark_stores): Function definition made void, to match
10107         previous declaration.
10108         * regclass.c (dump_regclass): Ditto.
10109         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
10110
10111 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10112
10113         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
10114         known to be multiple of divisor.
10115
10116         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
10117
10118         * combine.c (try_combine): Add code to try to merge a set of a
10119         two-word pseudo to a constant with a setting of one of those words
10120         to a constant.
10121
10122         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
10123         (split_tree): Completely rework to make more general.
10124         (make_range, fold): Call negate_expr.
10125         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
10126         (fold, associate): Call new split_tree and associate_trees.
10127         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
10128
10129 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10130
10131         * loop.c (try_copy_prop): Avoid GNU C extension.
10132
10133 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
10134
10135         * except.c (init_eh_for_function): Still zero eh_return_context,
10136         eh_return_stack_adjust, and eh_return_handler.
10137
10138         * except.h (eh_status): Adjust documentation for x_protect_list.
10139         (begin_protect_partials): New function.
10140         * except.c (enqueue_eh_entry): Fix formatting.
10141         (get_first_handler): Add consistency check.
10142         (add_partial_entry): Adjust usage of protect_list.
10143         (emit_cleanup_handler): Save and restore ehqueue.
10144         (expand_start_all_catch): Add comment.
10145         (begin_protect_partials): New function.
10146         (end_protect_partials): Adjust usage of protect_list.
10147         (init_eh_for_function): Use xcalloc.
10148
10149 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10150
10151         * c-common.c (check_format_info): Don't call a variadic function
10152         with a non-literal format string.
10153
10154         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
10155
10156         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
10157         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
10158         Likewise.
10159
10160         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
10161         Likewise.
10162
10163         * collect2.c (collect_wait): Likewise.
10164
10165         * dbxout.c (dbxout_type): Likewise.
10166
10167         * gcc.c (do_spec_1): Likewise.
10168
10169         * genemit.c (gen_insn, gen_expand): Likewise.
10170
10171         * genrecog.c (write_switch, write_subroutine): Likewise.
10172
10173         * mips-tfile.c (catch_signal, botch): Likewise.
10174
10175         * print-rtl.c (print_rtx): Likewise.
10176
10177         * toplev.c (default_print_error_function, report_error_function,
10178         _fatal_insn): Likewise.
10179
10180 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
10181
10182         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
10183
10184 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10185
10186         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
10187         operations when needed.
10188         * i386.md (fop_?f_comm): New.
10189         (fop_?f_1): Do not accept commutative operands.
10190
10191 1999-11-25  Andreas Jaeger  <aj@suse.de>
10192
10193         * config/mips/mips.md (casesi_internal): Add missing brace.
10194
10195 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
10196
10197         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
10198         (splice_child_die): Handle moving a child DIE from the declaration
10199         DIE of a class to its specification.
10200         (gen_struct_or_union_type_die): Use 'complete' consistently.
10201         (gen_decl_die): Generate the virtual context DIE first.
10202         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
10203
10204 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
10205
10206         * config/mips/mips.md (call_value_multiple_interanal1): New.
10207
10208 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
10209
10210         * dwarf2out.c (free_AT, free_die): New fns.
10211         (remove_children): Call them.
10212         (output_line_info): Disable removal of duplicate notes.
10213
10214         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
10215         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
10216         means pretend the type isn't defined.
10217         Don't defer emitting types.
10218         (gen_type_die_for_member): New fn.
10219         (gen_decl_die): Call it.
10220         (splice_child_die): New fn.
10221         (gen_member_die): Call it rather than generate duplicate dies.
10222
10223         Defer emitting information for the abstract instance of an inline
10224         until we either inline it or emit an out-of-line copy.
10225         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
10226         from output_inline_function if DECL_ABSTRACT is also set.
10227         (block_ultimate_origin): Likewise.
10228         (gen_abstract_function): New fn.
10229         (gen_decl_die, gen_inlined_subroutine_die): Call it.
10230         (gen_subprogram_die):  An abstract instance is not a declaration
10231         just because it doesn't match current_function_decl.  Don't abort
10232         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
10233         has an abstract origin.
10234         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
10235         abstract instance here.
10236
10237 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
10238
10239         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
10240         where we need to reload fpul from a system register.
10241
10242 1999-11-24  Andreas Jaeger  <aj@suse.de>
10243
10244         * config/mips/linux.h (CPP_PREDEFINES): Added.
10245         (LINK_SPEC): Remove -Y since this is only needed on sparc.
10246
10247 1999-11-24  Andreas Jaeger  <aj@suse.de>
10248
10249         * config/mips/linux.h (TARGET_VERSION): Added.
10250         (HANDLE_SYSV_PRAGMA): Added.
10251         (DEFAULT_VTABLE_THUNKS): Added.
10252
10253 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10254
10255         * local-alloc.c (qty): New structure and static variable.
10256         (qty_phys_reg): Remove, all references changed to qty.
10257         (qty_n_refs): Likewise.
10258         (qty_min_class): Likewise.
10259         (qty_birth): Likewise.
10260         (qty_death): Likewise.
10261         (qty_size): Likewise.
10262         (qty_mode): Likewise.
10263         (qty_n_calls_crossed): Likewise.
10264         (qty_alternate_class): Likewise.
10265         (qty_changes_size): Likewise.
10266         (qty_first_reg): Likewise.
10267         (alloc_qty): Rename variable QTY to QTYNO.
10268         (finf_free_reg): Likewise.
10269         (local_alloc): Allocate qty, do not allocate the removed variables.
10270
10271 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
10272
10273         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
10274         when -membedded-pic is passed.
10275
10276         * config/mips/mips.md (casesi): Handle 64-bit case too.
10277         (casesi_internal_di): New insn.
10278
10279         * config/mips/mips.c (embedded_pic_offset): Always make the
10280         embedded-pic subtractions relative to the name of the current
10281         function by use of the magic string "..CURRENT_FUNCTION".
10282         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
10283
10284 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
10285
10286         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
10287         of (const_int 0), when what we really care about is
10288         whether it's a zero constant anyway.
10289         (div_trap_mips16): Likewise.
10290
10291 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
10292
10293         * loop.c (loop_optimize): Always find_loop_tree_blocks and
10294         unroll_block_trees when generating debuggable code.
10295
10296         * tree.h (unsave_expr_1): New function.
10297         (lang_unsave): New variable.
10298         (get_callee_fndecl): New function.
10299         * tree.c (unsave_expr_now_r): New function.
10300         (lang_unsave): Define.
10301         (unsave_expr_1): Likewise.
10302         (unsave_expr_now_r): Split out from unsave_expr_now.
10303         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
10304         call unsave_expr_now_r.
10305         (get_callee_fndecl): Define.
10306
10307         * Makefile.in (gencheck): Don't depend on lang_tree_files.
10308         (gencheck.o): Do depend on lang_tree_files.
10309
10310         * integrate.h (copy_decl_for_inlining): New declaration.
10311         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
10312         (copy_decl_for_inlining): New function.
10313         (integrate_parm_decls): Use it.
10314         (integrate_decl_tree): Likewise.
10315
10316 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
10317
10318         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
10319         the second two from the first.
10320         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
10321         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
10322         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
10323         ISA_HAS_FP4.
10324         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
10325         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
10326         ISA_HAS_FP4.
10327
10328 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
10329
10330         * pa.md (call_internal_symref, call_value_internal_symref): No mode
10331         needed on the address operand.
10332         * pa.c (call_operand_address): Check for the correct mode.
10333
10334 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
10335
10336         * loop.c: Include "basic-block.h".
10337         (try_copy_prop, replace_loop_reg): New functions.
10338         (load_mems): Detect registers that just hold copies of the hoisted
10339         mem, and call try_copy_prop to eliminate them.
10340         * Makefile.in (loop.o): Update dependencies.
10341
10342 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
10343
10344         * Makefile.in (gencheck.o): Depend on gencheck.h.
10345         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
10346         (insn-peep.o): Depend on except.h and function.h.
10347         (insn-attrtab.o): Depend on RECOG_H.
10348         (insn-output.o): Depend on toplev.h and flags.h.
10349         (gengenrtl.o): Depend on real.h.
10350         (gen-protos.o): Depend on cpplib.h and cpphash.h.
10351         Unify all dependencies to be on RECOG_H rather than recog.h.
10352
10353 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10354
10355         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
10356         * configure.in: Try building a bi-arch 32/64-bit compiler on
10357         sparc-*-solaris2.7 and higher.
10358         * configure: Rebuild.
10359
10360 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
10361
10362         * config/freebsd.h: New, FreeBSD architecture independent file.
10363         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
10364         independent pieces.
10365         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
10366         directly by i386/freebsd.h.
10367         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
10368         independent configuration file.
10369         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
10370         directly by i386/freebsd.h.
10371         * configure: Rebuilt.
10372
10373         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
10374         which is in the user's namespace.
10375         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
10376         `i386' which is not in our namespace.
10377
10378 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
10379
10380         * invoke.texi (ARM Options): Add in -mno-alignment-traps
10381
10382 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
10383
10384         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
10385         (add_dwarf_attr, add_child_die): Just push onto the front.
10386         (reverse_die_lists): New fn.
10387         (add_sibling_attributes): Use it.
10388         (push_decl_scope): Reorganize.
10389         (add_name_and_src_coords_attributes): Don't set file and line for
10390         an artificial decl.
10391         (gen_subprogram_die): An artificial function doesn't need to match
10392         file and line.
10393         (gen_compile_unit_die): Return the generated die.  Only add
10394         AT_comp_dir if the filename is relative.
10395         (remove_AT): Simplify loop.  Also free string values.
10396         (output_die): A DIE ref can't be null.
10397         (output_value_format, value_format): Take a dw_attr_ref.
10398         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
10399         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
10400         AT_addr, AT_lbl): New fns.
10401         (various): Use them.
10402         (various): Constify.
10403
10404 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10405
10406         * combine.c (combine_simplify_rtx): When handling a SUBREG,
10407         take SUBREG_WORD into account.
10408         (if_then_else_cond): Likewise.
10409
10410 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
10411
10412         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
10413         clause from BSD license, pursuant with
10414
10415           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
10416
10417 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
10418
10419         * loop.c (load_mems): Reformat slightly.
10420         * basic-block.h (regset_head): New typedef.
10421         (INIT_REG_SET): New macro.
10422
10423 1999-11-22  Bruce Korb  <autogen@linuxbox.com
10424
10425         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
10426         (mips-dec-bsd*): non-functional code
10427         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
10428
10429         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
10430         added three replacement fixes
10431         (no_double_slash): removed comments that are not (any longer) pertinent
10432         (bad_lval): this fix currently runs against many files.
10433         The comment seems to indicate that we should select for files
10434         containing 'pragma extern_prefix'.
10435
10436         * fixinc/fixinc.x86-linux-gnu: deleted
10437         * fixinc/inclhack.sh:  regen
10438         * fixinc/fixincl.x:  regen
10439         * fixinc/fixincl.sh:  regen
10440
10441 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
10442
10443         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
10444         its code is INSN and it has no notes.
10445
10446 1999-11-22  Andrew Haley  <aph@cygnus.com>
10447
10448         * varasm.c (function_defined): Remove.
10449         (make_function_rtl): Don't set function_defined.
10450         (make_decl_rtl): Remove global register warning.
10451         * regclass.c (no_global_reg_vars): New variable.
10452         (globalize_reg): Warn if function has already been defined.
10453         (regclass_init): Set no_global_reg_vars.
10454
10455 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10456
10457         * regclass.c (reg_pref): New structure and static variable
10458         (prefclass): Delete.
10459         (altclass): Delete.
10460         (all uses of prefclass and altclass): Use reg_pref instead.
10461
10462 1999-11-21  Nick Clifton  <nickc@cygnus.com>
10463
10464         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
10465         -malignment-traps.
10466         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
10467         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
10468         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
10469
10470 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
10471
10472         * varasm.c (output_constructor): Solve problem with long long
10473         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
10474
10475 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10476
10477         * global.c (allocno): New structure and static variable.
10478         (allocno_reg): Remove, all references replaced by allocno.
10479         (allocno_size): Likewise.
10480         (hard_reg_conflicts): Likewise.
10481         (hard_reg_preferences): Likewise.
10482         (hard_reg_copy_preferences): Likewise.
10483         (hard_reg_full_preferences): Likewise.
10484         (regs_someone_prefers): Likewise.
10485         (allocno_calls_crossed): Likewise.
10486         (allocno_n_refs): Likewise.
10487         (allocno_live_length): Likewise.
10488         (find_reg): Rename ALLOCNO to NUM.
10489
10490         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
10491         references updated.
10492         (may_move_out_cost): New variable.
10493         (init_reg_sets_1): Initialize may_move_out_cost.
10494         (record_reg_classes): Use may_move_out_cost.
10495
10496         * regclass.c (dump_regclass): New function.
10497         (regclass): New parameter DUMP, call DUMP_REGCLASS.
10498         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
10499         pass rtl_dump_file to regclass.
10500         * rtl.h (regclass): Update prototype.
10501
10502 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10503
10504         * i386.md (neg, not and abs patterns): Revmap to use
10505         ix86_expand_unary_operator and ix86_unary_operator_ok.
10506         (add?f and sub?f expanders): Force operand 1 to register.
10507         * i386.c (ix86_expand_unary_operator): Rewrite.
10508         (ix86_unary_operator_ok): Ensure that memory operands
10509         match real opcode.
10510         (ix86_binary_operator_ok): Do not allow operand 1 to
10511         come into memory and operand 0 not.
10512         (ix86_expand_binary_operator): Ensure that
10513         src1 is not non-matching memory.
10514
10515         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
10516         to support integer registers and memory.
10517         (abss?2_integer): Likewise.
10518
10519         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
10520         (REG_CLASS_NAMES): Likewise.
10521         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
10522         and GENERAL_REGS.
10523         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
10524         (movsf): Likewise; unify 4th and 5th alternative.
10525         (pushdf): Likewise.
10526         (movdf_1): Likewise; rename to movdf_integer.
10527         (pushxf): Likewise; rename to pushxf_integer; fix output template;
10528         remove redundant splitter.
10529         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
10530         (movdf_nointeger): New.
10531         (movxf_nointeger): New.
10532         (pushxf_nointeger): New.
10533
10534         * i386.md (extend?f?f): Split to expander and pattern, refuse two
10535         memory operands in patterns.
10536         (fop*): Refuse two memory operands.
10537
10538         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
10539         on !TARGET_USE_CLTD CPUs.
10540
10541 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
10542
10543         * extend.texi: Document C++ restricted pointers and references.
10544
10545 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
10546
10547         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
10548         (invalidate_skipped_set): Call it unconditionally.
10549         (cse_set_around_loop): Likewise.
10550
10551 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
10552
10553         * rtl.texi (mem): Add documentation for alias-set argument
10554         to RTX `mem'.
10555
10556 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10557
10558         * i386.h (struct_processor_costs): New fields int_load, int_store,
10559         fp_move, fp_load and fp_store
10560         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
10561         fp->int moves
10562         (MEMORY_MOVE_COST): New macro.
10563         * i386.c (386_cost): Define new fields.
10564         (i486_cost): Likewise.
10565         (pentium_cost): Likewise.
10566         (pentiumpro_cost): Likewise.
10567         (k6_cost): Likewise.
10568
10569 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
10570                           Geoffrey Keating  <geoffk@cygnus.com>
10571
10572         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
10573
10574         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
10575         MASK_ALIGN_INT.
10576
10577         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
10578         (TARGET_STRICT_ALIGNMENT): New macro.
10579         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
10580         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
10581         * invoke.texi (M680x0 Options): Document -mstrict-align.
10582
10583 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
10584                           Richard Henderson  <rth@cygnus.com>
10585
10586         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
10587         (ix86_split_long_move): Declare.
10588         * i386.c (split_xf, ix86_split_movdi): Remove.
10589         (ix86_split_to_parts, ix86_split_long_move): New.
10590         * i386.md (dimode move splitters): Use ix86_split_long_move.
10591         (dfmode move splitters): Likewise.
10592         (xfmode move splitters): Likewise.
10593         (movsf_1): Allow F->r.
10594         (movdf_1, movxf_1): Allow F->ro.
10595
10596 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
10597
10598         * except.h (struct eh_entry): Add goto_entry_p.
10599         (eh_region_from_symbol): Remove prototype.
10600         * except.c (find_func_region_from_symbol): New function.
10601         (emit_cleanup_handler): Likewise.
10602         (eh_region_from_symbol): Make it static.
10603         (add_new_handler): Verify the argument.
10604         (find_func_region): Update comment.
10605         (expand_eh_region_end): Expand handlers here, rater than waiting
10606         until expand_leftover_cleanups or start_all_catch.
10607         (expand_leftover_cleanups): Don't expand here.
10608         (expand_start_all_catch): Or here.
10609         (expand_rethrow): Check the return value from find_func_region.
10610         * function.c (expand_function_end): Emit the catch_clauses.
10611
10612 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
10613
10614         * integrate.c (expand_inline_function): Add necessary check for NULL.
10615
10616 1999-11-18  Nick Clifton  <nickc@cygnus.com>
10617
10618         * toplev.c (main): Correctly detect an unrecognised option.
10619
10620         * cppinit.c (cpp_handle_option): Do not claim to have consumed
10621         a -f option if it has not been recognised.
10622
10623 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
10624
10625         * basic-block.h (update_life_extent): Remove trailing comma on
10626         enumeration type list.
10627
10628 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10629
10630         * varasm.c (output_constructor) Solved problem with long long
10631         bitfields. Corrected calculating this_time and shift. Also
10632         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
10633
10634 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
10635
10636         * flow.c (split_edge): Take looping structure into account when
10637         determining where to put the new block note.
10638
10639 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
10640
10641         * Makefile.in (ggc-none.o): Provide host specific version if
10642         needed.
10643
10644 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
10645
10646         * cse.c (delete_trivially_dead_insns): Identify no-op insns
10647         containing subregs too.
10648
10649 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
10650
10651         * invoke.texi: Add documentation for -muninit-const-in-rodata.
10652         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
10653         (TARGET_UNINIT_CONST_IN_RODATA): Define.
10654         (text_section): Add switches -munint-const-in-rodata and
10655         -mno-uninit-const-in-rodata.
10656         (ASM_OUTPUT_COMMON): Remove.
10657         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
10658         const objects should be placed in read-only data. Otherwise declare
10659         them in common.
10660
10661 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
10662
10663         * jump.c (jump_optimize_1): Revert last change.
10664
10665 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
10666
10667         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
10668         test if optimizing for size.
10669
10670 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
10671
10672         * Makefile.in (toplev.o): Depend on except.h.
10673         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
10674
10675 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
10676
10677         * i386.md (divmodsi4): Rewrite to expander.
10678         (*divmodsi4_nocltd): New.
10679         (*divmodsi4_cltd): New.
10680         (divmodsi4 splitter): Handle the case when input comes in edx.
10681         (udivmodhi4): Do not use constraints in exander.
10682         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
10683
10684 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
10685
10686         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
10687         for the common case.
10688
10689 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
10690
10691         * explow.c (hard_function_value): Add outgoing argument.
10692         * expr.h (hard_function_value): Declare it.
10693         * calls.c (expand_call, emit_library_call_value): Update callers.
10694         * function.c (aggregate_value_p): Ditto.
10695         (diddle_return_value): Must look at the outgoing registers
10696         on archs with register windows.
10697
10698 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
10699
10700         * alpha.c (alpha_build_va_list): Use make_lang_type and
10701         initialize TYPE_NAME for the va_list record.
10702
10703         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
10704
10705         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
10706         for printing.
10707         * ggc.h (struct ggc_statistics): Rearrange elements for better
10708         packing on 64-bit hosts.
10709         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
10710         (compute_nearerout): Likewise.
10711
10712 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
10713
10714         * config/rs6000/rs6000.c (first_reg_to_save): Save
10715         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
10716
10717 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
10718
10719         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
10720         notion of nesting to find the DIE for a type or function.
10721         DIEs can go in limbo even if we got a context_die.
10722         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
10723         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
10724         for local type.
10725         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
10726         (gen_type_die): Writing out the context doesn't cause member class
10727         template instantiations to be written out as well.
10728
10729 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
10730
10731         * rs6000.h (ASM_OUTPUT_DEF): New.
10732         Based on proposed addition from David Edelsohn.
10733
10734 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
10735             Bruce Korb  <autogen@linuxbox.com>
10736
10737         * fixinc/inclhack.def
10738         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
10739         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
10740                 in net/inet.h.
10741         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
10742         (svr4_endian): enabled with SVR5
10743         (svr4_mkdev): simplified syntax and enabled with SVR5
10744
10745 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
10746
10747         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
10748         * configure: Rebuilt.
10749         * config/t-freebsd-thread: New file.
10750
10751 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
10752
10753         * i386.c (ix86_decompose_address): Verify the base is a REG
10754         before trying to examine its register number.
10755
10756         * basic-block.h: Remove all #defines and prototypes related to
10757         integer lists.
10758         (free_bb_mem, compute_preds_succs): Remove prototype.
10759         * rtl.h (free_bb_mem): Remove prototype.
10760         * flow.c (alloc_int_list_node); Remove function.
10761         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
10762         (compute_preds_succs, free_bb_mem): Likewise.
10763         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
10764         * toplev.c (rest_of_compilation): Likewise.
10765         * haifa-sched.c (build_control_flow): Use flow generated edge
10766         list to build the haifa specific edge list.
10767         (find_rgns): Use new CFG data structures instead of pred/succ lists.
10768         (schedule_insns): Do not build pred/succ lists anymore.  Instead
10769         build the edge table.
10770
10771         * basic-block.h (dump_bb_data): Remove declaration.
10772         * flow.c (dump_bb_data): Remove function.
10773         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
10774         (sbitmap_union_of_predsucc): Likewise.
10775
10776         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
10777         argument.  All callers changed.
10778         (delete_null_pointer_checks_1): No longer need to compute the
10779         pred/succ lists.
10780
10781         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
10782         All callers changed.
10783         (pre_expr_reaches_here_p_work): Likewise.
10784         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
10785         * lcm.c (compute_laterin): Fix initialization of LATER.
10786         (compute_nearerout): Similarly for NEARER.
10787
10788 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10789
10790         * cse.c (set_nonvarying_address_components): Delete unused function.
10791         (refers_to_p): Likewise.
10792
10793 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
10794
10795         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
10796         needed.
10797
10798 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10799
10800         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
10801         definition in do while (0).
10802
10803 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
10804
10805         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
10806
10807 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
10808
10809         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
10810
10811 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
10812
10813         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
10814         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
10815         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
10816         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
10817
10818         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
10819         saved on the stack.  Output more accurate stack frame statistics
10820         into assembler file.
10821
10822 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
10823
10824         * genextract.c (record_insn_name): New function.
10825         (get_insn_name): No longer a stub.
10826         (main): Call record_insn_name for each insn.  After each label
10827         written, print the insn name in a comment.
10828
10829 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10830
10831         * output.h (const_section, init_section, fini_section): Add
10832         prototypes.
10833
10834         * alpha/elf.h (const_section): Delete declaration.
10835
10836         * svr4.h (const_section): Likewise.
10837
10838 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
10839
10840         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
10841         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
10842         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
10843         expressions.
10844         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
10845         variable-sized array bounds.
10846
10847 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
10848
10849         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
10850         ASM_OUTPUT_LABEL.
10851
10852 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10853
10854         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
10855         addresses the same way GO_IF_LEGITIMATE_INDEX does.
10856
10857 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10858
10859         * cse.c (hash_arg_in_struct): Delete.
10860         (struct table_elt): Delete elt in_struct.
10861         (struct set): Delete elt src_in_struct.
10862         (merge_equiv_classes): Don't set either hash_arg_in_struct or
10863         the corresponding in_struct elts.
10864         (canon_hash): Likewise.
10865         (safe_hash): Likewise.
10866         (find_best_addr): Likewise.
10867         (record_jump_cond): Likewise.
10868         (cse_insn): Likewise.
10869
10870 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
10871
10872         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
10873
10874         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
10875         unsigned types.
10876
10877 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
10878
10879         * function.c (diddle_return_value): Put back check that the DECL_RTL
10880         for the function is a register.
10881
10882         * function.c (diddle_return_value): Use hard_function_value to
10883         get an rtx suitable for use in the USE/CLOBBER insn.
10884
10885         * global.c (global_conflicts): Update comments.
10886         (record_conflicts): No need to record conflicts between pseudos here.
10887
10888 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
10889
10890         * fixinc/fixincl.c: Added verbose levels for status messages
10891
10892 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10893
10894         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
10895         operand as argument to expand_and or expand_binop.
10896
10897 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
10898
10899         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
10900         gcc_add_string_root.
10901
10902 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
10903
10904         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
10905
10906 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
10907
10908         * flow.c (compute_flow_dominators): Initially put all blocks on
10909         the worklist.
10910         * lcm.c (compute_antinout_edge, compute_available): Similarly.
10911         * gcse.c (compute_cprop_avinout): Remove.
10912         (compute_cprop_data): Use compute_available.
10913         (delete_null_pointer_checks_1): Use compute_available.
10914
10915         * basic-block.h (compute_available): Returns a void now.
10916         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
10917         to return a value anymore.
10918         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
10919         worklists.  Fix boundary cases. Compute maximal solutions.
10920         (compute_laterin, compute_nearerout): Similarly.
10921
10922         * dwarf2out.c (add_AT_location_description): Allow
10923         (mem (plus (pseudo) (...)) too.
10924
10925 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
10926
10927         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
10928
10929 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
10930                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10931
10932         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
10933
10934         * gansidecl.h: Likewise.
10935
10936         * rtl.c: Likewise.
10937
10938         * rtl.h: Likewise.
10939
10940         * toplev.h: Likewise.
10941
10942         * tree.c: Likewise.
10943
10944         * tree.h: Likewise.
10945
10946         * varray.c: Likewise.
10947
10948         * varray.h: Likewise.
10949
10950 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
10951
10952         * gcov.c (struct arcdata): Add hits and total, remove prob.
10953         (output_branch_counts): New.
10954         (process_args): Set output_branch_counts if -c.
10955         (calculate_branch_probs): Store hits and total instead of
10956         percentage.
10957         (output_data): Emit counts if output_branch_counts is true.
10958         * gcov.texi (Invoking Gcov): Document -c switch..
10959
10960 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
10961
10962         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
10963         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
10964
10965 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
10966
10967         * invoke.texi (C Dialect Options): Add missing builtins from
10968         c-common.c to list.
10969         * extend.texi (Other Builtins): Copy to this list.
10970
10971 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10972
10973         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
10974         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
10975         redundant bitmap.h.
10976
10977 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
10978
10979         * flow.c (compute_flow_dominators): No longer treat basic block 0
10980         or (n_basic_blocks - 1) specially.  Clear the AUX field before
10981         starting computation of doms/pdoms.  Fix initial state for pdoms.
10982
10983 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10984
10985         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
10986         match rtl.o's: added ggc.h and toplev.h
10987         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
10988         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
10989         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
10990
10991 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
10992
10993         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
10994         from HAVE_DOS_BASED_FILESYSTEM.
10995         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
10996         HAVE_DOS_BASED_FILESYSTEM.
10997         (main): Likewise.
10998         (split_directories): Only special-case DOS file names if
10999         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
11000         instead of explicit tests.  Conditionalize on !VMS.
11001         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
11002         tests.  Conditionalize on !VMS.
11003         (process_command): Only use make_relative_prefix if !VMS.
11004         (free_split_directories): Conditionalize on !VMS.
11005         (DIR_UP): Conditionalize on !VMS.
11006
11007 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11008
11009         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
11010
11011 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11012
11013         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
11014         case.
11015
11016 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
11017
11018         * invoke.texi (Environment Variables): Document relative path
11019         lookup.
11020         * gcc.c (DIR_UP): If not defined, define as "..".
11021         (standard_bindir_prefix): New static, holds target location to
11022         install binaries.
11023         (split_directories): New function to split a filename into
11024         component directories.
11025         (free_split_directories): New function, release memory allocated
11026         by split_directories.
11027         (make_relative_prefix): New function, make a relative pathname if
11028         the compiler is not in the expected location.
11029         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
11030         can figure out an appropriate prefix from argv[0].
11031         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
11032         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
11033         STANDARD_BINDIR_PREFIX.
11034
11035 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11036
11037         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
11038         in c4x.c.
11039         * config/c4x/c4x.h: Moved prototypes to c4x.h.
11040         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
11041         c4x_secondary_memory_needed) Delete.
11042         (fp_zero_operand): Add mode argument.
11043
11044 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
11045
11046         * reload1.c (reload_reg_free_for_value_p): Don't use a register
11047         that is in reload_reg_used.
11048
11049 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
11050
11051         * config/arm/arm-protos.h: New file: Prototypes for functions
11052         defined in arm.c and pe.c.
11053         * config/arm/arm.h: Fix compile time warnings.
11054         * config/arm/arm.c: Fix compile time warnings.
11055         * config/arm/pe.h: Fix compile time warnings.
11056         * config/arm/aout.h: Fix compile time warnings.
11057
11058 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
11059
11060         * config/m32r/m32r-protos.h: New file: Prototypes for functions
11061         defined in m32r.c
11062
11063         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
11064         Add support for subtargets.
11065         Add prototypes for new predicates.
11066         Add scheduling macros.
11067
11068         * config/m32r/m32r.c: Fix compile time warnings.
11069         (int8_operand): New predicate function.
11070         (reg_or_cmp_int16_operand): New predicate function.
11071         (extend_operand): New predicate function.
11072         (m32r_adjust_code): New scheduling function.
11073         (m32r_adjust_priorty): New scheduling function.
11074         (m32r_sched_init): New scheduling function.
11075         (m32r_sched_reorder): New scheduling function.
11076         (m32r_sched_variable_issue): New scheduling function.
11077         (direct_return): New codegen function.
11078         (m32r_not_same_reg): New rtl testsing function.
11079
11080         * config/m32r/m32r.md: Fix compile time warnings.
11081         Add support for pre decrement and post increment memory
11082         references.
11083         Add S<cc> patterns.
11084         Add fabs patterns.
11085
11086 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11087
11088         * global.c (EXECUTE_IF_CONFLICT): Don't define.
11089         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
11090         (find_reg): Likewise.
11091
11092 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
11093
11094         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
11095         to avoid assembler errors.
11096
11097 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
11098
11099         * config/v850/v850-protos.h: New file: Prototypes for functions
11100         defined in v850.c
11101         * config/v850/v850.h: Move prototypes to v850-protos.h
11102         * config/v850/v850.c: Move prototypes to v850-protos.h
11103         * config/v850/v850.md: Fix compile time warnings.
11104
11105         * config/fr30/fr30-protos.h: New file: Prototypes for functions
11106         defined in fr30.c
11107         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
11108         * config/fr30/fr30.c: Fix compile time warnings.
11109         * config/fr30/fr30.md: Fix compile time warnings.
11110
11111 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
11112
11113         * tree.h (get_containing_scope): Declare it.
11114         * tree.c (get_containing_scope): New fucntion.
11115         (decl_function_context): Use it.
11116         * toplev.c (rest_of_compilation): Use get_containing_scope.
11117
11118 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11119
11120         * Makefile.in (rtl.o): Depend on toplev.h.
11121
11122 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
11123
11124         * cse.c (delete_trivially_dead_insns): Replace alloca with
11125         xmalloc/xcalloc.
11126         * except.c (update_rethrow_references): Likewise.
11127         (init_eh_nesting_info): Likewise.
11128         * function.c (identify_blocks): Likewise.
11129         * gcse.c (dump_hash_table): Likewise.
11130         * graph.c (print_rtl_graph_with_bb): Likewise.
11131         * loop.c (combine_movables): Likewise.
11132         (move_movables): Likewise.
11133         (count_loop_regs_set): Likewise.
11134         (strength_reduce): Likewise.
11135         * profile.c (compute_branch_probabilities): New function, split
11136         out from ...
11137         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
11138         * regclass.c (regclass): Likewise.
11139         * regmove.c (regmove_optimize): Likewise.
11140         * toplev.c (compile_file): Likewise.
11141         (main): Don't mess with the stack rlimit.
11142
11143 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
11144
11145         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
11146         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
11147
11148 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
11149
11150         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
11151
11152 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
11153
11154         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
11155         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
11156         macro expansion.
11157
11158 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
11159
11160         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
11161
11162 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
11163
11164         * gcse.c (post_dominators): Kill.
11165         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
11166         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
11167         pass in a pdom array since we do not need pdoms.
11168         * haifa-sched.c (schedule_insns): Similarly.
11169         * flow.c (compute_dominators): Remove dead function.
11170         (compute_flow_dominators): Do not compute doms or pdoms if the
11171         caller does not request them.  Split up loop to build doms and
11172         pdoms.  Use a worklist to compute doms and pdoms.
11173         * basic-block.h (compute_dominators): Remove prototype.
11174
11175 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
11176
11177         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
11178         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
11179         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
11180         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
11181         (cant_move, fed_by_spec_load, is_load_insn): Remove.
11182         (schedule_region): Remove unused variable.
11183         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
11184
11185 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
11186
11187         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
11188         (update_equiv_regs): Likewise.
11189         (block_alloc): Likewise.
11190         * reg-stack.c (reg_to_stack): Likewise.
11191         (convert_regs_2): Likewise.
11192         * reload1.c (reload_as_needed): Likewise.
11193
11194 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
11195
11196         * Makefile.in (dbxout.o): Depend on ggc.h.
11197         (dwarf2out.o): Likewise.
11198         (xcoffout.o): Likewise.
11199         * dbxout.c: Include ggc.h.
11200         (dbxout_init): Register lastfile as a root.
11201         * dwarf2out.c: Include ggc.h.
11202         (dwarf2out_line): Register lastfile as a root.
11203         * xcoffout.c: Include ggc.h.
11204         (xcoffout_source_line): Register xcoff_lastfile as a root.
11205
11206 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
11207
11208         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
11209
11210 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
11211
11212         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
11213         defined.
11214         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
11215
11216 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11217
11218         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
11219         (EXECUTE_IF_CONFLICT): Likewise.
11220         (ALLOCNO_LIVE_P): Avoid signed division.
11221         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
11222         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
11223         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
11224
11225 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
11226
11227         * haifa-sched.c (schedule_block): Don't crash if there's no
11228         next insn for an interblock movement.
11229         (add_branch_dependences): Don't allow clobber insns to move either.
11230
11231 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
11232
11233         * i386.c (split_xf): New.
11234         * i386-protos.h: Declare it.
11235         * i386.md (movxf_1): Add general regs alternatives.
11236         (movxf_1+1): New splitter for same.
11237
11238 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
11239
11240         * function.c (purge_addressof_1): Add missing return values.
11241
11242 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
11243
11244         * function.c (is_addressof): New function.  Returns true if
11245         the given piece of RTL is an ADDRESSOF.
11246         (purge_addressof_1): Make boolean.  Return false if the
11247         ADDRESSOFs could not be purged.
11248         (purge_addressof): If ADDRESSOFs could not be purged from the
11249         notes attached to an insn, remove the offending note(s),
11250         unless they are attached to a libcall.
11251
11252 1999-11-05  Andreas Jaeger  <aj@suse.de>
11253
11254         * genoutput.c (null_operand =): Initialize all fields.
11255
11256         * errors.h: Add extern to prototypes.
11257
11258 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
11259
11260         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
11261         * configure: Rebuilt.
11262
11263 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11264
11265         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
11266         (mirror_conflicts): New function.
11267         (global_alloc): Call it.
11268         (expand_preferences): Remove redundant CONFLICTP test.
11269         (find_reg, dump_conflicts): Likewise.
11270         (prune_preferences): Process conflicts one word at a time.
11271
11272 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
11273
11274         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
11275         instead of an explicit loop.
11276
11277 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
11278
11279         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
11280         if REG_RETVAL check succeeds, then put classp in src_elt.
11281
11282 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
11283
11284         * function.c (pad_to_arg_alignment): Only update argument_pad
11285         if the argument's alignment is greater than STACK_BOUNDARY.
11286
11287 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
11288
11289         * bitmap.h (BITMAP_XFREE): New.
11290         * flow.c (life_analysis): Use it.
11291         (life_analysis_1): Free blocks.
11292
11293         * combine.c (undo_commit): New.
11294         (try_combine): Use it.  Don't zap undobuf.undos.
11295         (combine_instructions): Don't zap undobuf.undos; free the
11296         undobuf.frees list.
11297
11298         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
11299
11300         * stmt.c (cost_table_): New.
11301         (estimate_case_costs): Use it instead of xmalloc.
11302
11303         * toplev.c (compile_file): Reuse dumpname memory instead
11304         of strdup'ing it.
11305
11306 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
11307
11308         * reg-stack.c (convert_regs_1): Initialize target_stack->top
11309         after verifying an EH edge.
11310
11311         * haifa-sched.c (init_rgn_data_dependences): Correctly
11312         size bb_pending_lists_length when zeroing.
11313
11314 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
11315
11316         * function.c (diddle_return_value): New.
11317         (expand_function_end): Use it.
11318         * stmt.c (expand_null_return): Likewise.
11319         (expand_value_return): Likewise.
11320
11321         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
11322
11323         * reload1.c (reload): Don't remove return value clobbers.
11324
11325 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
11326
11327         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
11328
11329 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
11330
11331         * cse.c (cse_main): Use xmalloc, not alloca.
11332         (cse_basic_block): Likewise.
11333         * local-alloc.c (local_alloc): Likewise.
11334
11335 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
11336                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11337
11338         * rtl.c: Include toplev.h.
11339         (fatal): Remove declaration.
11340
11341 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
11342
11343         * haifa-sched.c (schedule_block): Fix thinko.
11344
11345 1999-11-03  James McKelvey <mckelvey@fafnir.com>
11346
11347         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
11348         S_IR* defined values
11349
11350 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
11351
11352         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
11353         call `malloc' instead.
11354
11355 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
11356
11357         * flags.h (flag_renumber_insns): Declare.
11358         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
11359         renumbering table.
11360         * rtl.h (renumber_insns): Change prototype.
11361         * toplev.c (flag_renumber_insns): Define.
11362         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
11363
11364 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
11365
11366         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
11367         and fpsqrtd.  Use them and create fdiv function unit to more
11368         accurately represent fpu sqrt pipeline semantics on UltraSparc.
11369         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
11370
11371 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
11372
11373         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
11374         3 on UltraSparc.
11375         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
11376         insn into ready list, do not use just a raw swap.
11377
11378 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
11379
11380         * rtl.h (renumber_insns): New function.
11381         (remove_unnecessary_notes): Likewise.
11382         * emit-rtl.c (renumber_insns): Define.
11383         (remove_unncessary_notes): Likewise.
11384         * toplev.c (rest_of_compilation): Remove dead code.
11385         Use renumber_insns and remove_unncessary_notes.
11386
11387         * gcse.c (struct null_pointer_info): New type.
11388         (get_bitmap_width): New function.
11389         (current_block): Remove.
11390         (nonnull_local): Likewise.
11391         (nonnull_killed): Likewise.
11392         (invalidate_nonnull_info): Take a null_pointer_info as input.
11393         (delete_null_pointer_checks_1): New function.
11394         (delete_null_pointer_checks): Use it.
11395
11396         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
11397         (split_edges): Likewise.
11398         (schedule_block): Likewise.
11399         (compute_block_backward_dependencies): Likewise.
11400         (schedule_region): Likewise.
11401         (schedule_insns): Likewise.
11402
11403 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
11404
11405         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
11406         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
11407         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
11408         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
11409         * jump.c (delete_unreferenced_labels): Don't delete if
11410         LABEL_ALTERNATE_NAME is set.
11411         * print-rtl.c (print_rtx): Dump alternate name.
11412         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
11413         * rtl.h (LABEL_ALTERNATE_NAME): Define.
11414         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
11415         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
11416
11417 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11418
11419         * fix-header.c (recognized_extern, recognized_function): Constify
11420         a char*.
11421
11422         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
11423         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
11424         (compute_available): Remove unused variable `last'.
11425         (compute_nearerout): Remove unused variable `temp_bitmap'.
11426         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
11427         Remove unused variable `x'.
11428
11429         * scan.h (recognized_function, recognized_extern): Constify a
11430         char*.
11431
11432         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
11433
11434 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11435
11436         * varasm.c (decode_rtx_const): Use XSTR to access the string
11437         of a SYMBOL_REF.
11438
11439 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
11440
11441         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
11442
11443 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11444
11445         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
11446
11447 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
11448
11449         * pa.c (ireg_operand): New function.
11450         * pa.h (PREDICATE_CODES): Handle ireg_operand.
11451         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
11452         Fix out of date comment.
11453
11454         * pa.md (negdi2): Turn into expander + anonymous pattern.
11455
11456         * reload.c (find_reloads): Fix typos in recent change.
11457
11458         * dwarf2out.c: Do not include ctype.h.
11459
11460 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11461
11462         * regclass.c (record_reg_classes): Always use may_move_cost when
11463         seeing how operand fits with various register classes.
11464
11465 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
11466
11467         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
11468         * toplev.c: Revert Nov 1 13:22 change.
11469
11470 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
11471
11472         * config/pa/pa.md (height reduction patterns): Add checks for
11473         overlapping operands to avoid semantic-destroying splits for
11474         height reduction patterns.
11475
11476 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11477
11478         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
11479         have been an hyphen, fixed.
11480         * configure: Rebuilt.
11481
11482 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
11483
11484         * config/arm/tpe.h: Add prototypes for exported functions.
11485         * config/arm/pe.c: Fix compile time warnings.
11486         * config/arm/semi.h: Fix compile time warnings.
11487         * config/arm/arm.c: Fix compile time warnings.
11488         * config/arm/arm.h: Fix compile time warnings.
11489         * config/arm/arm.md: Fix compile time warnings.
11490         * config/arm/thumb.c: Fix compile time warnings.
11491         * config/arm/thumb.h: Fix compile time warnings.
11492         * config/arm/thumb.md: Fix compile time warnings.
11493
11494 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
11495
11496         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
11497         detection code
11498
11499         * unroll.c (unroll_loop): Remove LOOP notes when loop is
11500         completely unrolled.
11501
11502 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11503
11504         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
11505
11506 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
11507
11508         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
11509         * rtl.h (rtx_equal_p): Move prototype.
11510         * rtl.c (rtx_equal_function_value_matters): Move from
11511         rtlanal.c
11512         (rtx_equal_p): Likewise.
11513         * rtlanal.c (rtx_equal_function_value_matters): Delete.
11514         (rtx_equal_p): Likewise.
11515
11516 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
11517
11518         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
11519         ! HAS_INIT_SECTION.
11520
11521 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
11522
11523         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
11524
11525         * pa.h (ADDR_VEC_ALIGN): Define.
11526
11527         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
11528         notes when presented with "if (foo) break; end_of_loop" and
11529         the break sequence gets moved out of the loop.
11530
11531         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
11532         Remove explicit zero initializations of entries within MAP.
11533
11534 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
11535
11536         * reg-stack.c (convert_regs_1): Handle EH edges specially.
11537
11538 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
11539
11540         * bitmap.h (BITMAP_XMALLOC): New macro.
11541         * flow.c (CLEAN_ALLOCA): Remove.
11542         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
11543         (life_analysis): Likewise.
11544         (update_life_info): Don't use CLEAN_ALLOCA.
11545         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
11546         (calculate_global_regs_live): Likewise.
11547         (print_rtl_with_bb): Likewise.
11548         (verify_flow_info): Likewise.
11549         * global.c (global_alloc): Likewise.
11550         (global_conflicts): Likewise.
11551         * integrate.c (save_for_inline_nocopy): Likewise.
11552         (expand_inline_function): Likewise.
11553         * jump.c (jump_optimize_1): Likewise.
11554         (duplicate_loop_exit_test): Likewise.
11555         (thread_jumps): Likewise.
11556         * loop.c (loop_optimize): Likewise.
11557         (combine_givs): Likewise.
11558         (recombine_givs): Likewise.
11559         * reorg.c (dbr_schedule): Likewise.
11560         * unroll.c (unroll_loop): Likewise.
11561
11562         * combine.c (combine_instructions): Use xmalloc instead of alloca.
11563
11564 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
11565
11566         * toplev.c (rest_of_compilation): Don't optimize the CFG
11567         when rebuilding, just before dbr.
11568
11569 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11570
11571         * output.h (assemble_end_function, assemble_destructor,
11572         assemble_constructor, assemble_gc_entry, assemble_global,
11573         assemble_label, output_constant_pool) Constify a char*.
11574
11575         * varasm.c (assemble_destructor, assemble_constructor,
11576         assemble_gc_entry, assemble_end_function, assemble_global,
11577         assemble_label, output_constant_pool): Likewise.
11578
11579 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
11580
11581         * config/arm/thumb.c (thumb_expand_prologue): Add comments
11582         explaining what is goin on in this function.
11583
11584 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11585
11586         * regclass.c (record_reg_classes): In matching case, recompute
11587         costs since the direction of movement is different.
11588
11589 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
11590
11591         * resource.c (mark_target_live_regs): For unconditional branches,
11592         the resources found at the branch target should be added to the
11593         resources found so far, not intersected.
11594
11595 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
11596
11597         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
11598         old cpp's.
11599         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
11600         (sys/mman.h): Include this file only if #HAVE_MMAP.
11601         (run_compiles): Initialize `esac_fmt' with one old KR string, not
11602         with automatically concatenated ANSI strings.
11603
11604 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
11605
11606         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
11607         (DIV_ROUND_UP): Robustify.
11608         (ggc_recalculate_in_use_p): New function.
11609         (release_pages): Don't inline it.
11610         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
11611         outer contexts.
11612         (ggc_pop_context): Use ggc_recalculate_in_use_p.
11613         (clear_marks): Always save in_use_p.
11614         (sweep_pages): Use ggc_recalculate_in_use_p.
11615         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
11616         Release pages before counting statistics.
11617
11618 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
11619
11620         * toplev.c (rest_of_compilation): Fix thinko in this change:
11621
11622         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
11623
11624         (rest_of_compilation): If inside an inlined external function,
11625         pretend we are just being declared.
11626
11627 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
11628
11629         * flow.c (calculate_global_regs_live): Fix thinko.
11630
11631         * integrate.c (expand_inline_function): Fix bugs in previous
11632         change from Oct 28, 1999.
11633
11634 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
11635
11636         * stmt.c (expand_value_return): Fix typo in this change:
11637
11638         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11639         (expand_value_return): Correctly convert VAL when promoting function
11640         return; support RETURN_REG being a PARALLEL.
11641
11642 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
11643
11644         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
11645
11646 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11647
11648         * hard-reg-set.h (reg_names): Constify a char*.
11649
11650         * regclass.c  (reg_names): Likewise.
11651
11652         * regs.h (reg_names): Likewise
11653
11654         * a29k/a29k.c (reg_names): Delete declaration.
11655
11656         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
11657
11658         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
11659         arc_output_function_epilogue): Likewise.
11660
11661         * elxsi/elxsi.c (reg_names): Likewise.
11662
11663         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
11664
11665         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
11666         Likewise.
11667
11668         * m88k/m88k.c (output_function_profiler): Likewise.
11669
11670         * sparc/sparc.c (sparc_flat_output_function_prologue,
11671         sparc_flat_output_function_epilogue): Likewise.
11672
11673 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
11674
11675         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
11676         warning from -Wuninitialized and put it under -W.
11677         * function.c (uninitialized_vars_warning): Warn only when the
11678         corresponding flag is set.
11679
11680 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
11681
11682         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
11683         is nonzero and the single set does not have an elt, then assign
11684         it an elt.
11685
11686         * simplify-rtx.c: New file.
11687         * Makefile.in (OBJS): Add simplify-rtx.o
11688         (simplify-rtx.o): Add dependencies.
11689         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
11690         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
11691         (cse_gen_binary, simplify_unary_operation): Delete.
11692         (simplify_binary_operation, simplify_plus_minus): Likewise.
11693         (check_fold_consts, simplify_relation_operation): Likewise.
11694         (simplify_ternary_operation): Likewise.
11695         (delete_trivially_dead_insns): Simplify the contents of the
11696         REG_EQUAL note before trying to substitute it into the source
11697         of the reg-reg copy at the end of a libcall sequence.
11698
11699         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
11700         references/callers changed.
11701
11702         * mn10200.c (mn10200_va_arg): Force the return value into a
11703         register.
11704
11705         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
11706
11707         * cccp.c (macroexpand): Avoid out of range accesses for omitted
11708         arguments.
11709
11710 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
11711
11712         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
11713
11714 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
11715
11716         * fold-const.c (fold): Fix thinko when optimizing comparisons
11717         against -0.0.
11718
11719 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
11720
11721         * gcc.texi (Passes): Update front-end files to their current
11722         location.
11723
11724 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
11725
11726         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
11727         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
11728         (PREDICATE_CODES): Add addition_operation.
11729         * alpha-protos.h (addition_operation): Declare.
11730         (secondary_reload_class): Likewise.
11731         * alpha.c (addition_operation): New.
11732         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
11733         * alpha.md (adddi3): Turn into expander.
11734         (*lda, *adddi_2): New.
11735         (movsf, movdf patterns): Don't preference integer regs.
11736         (movsi, movdi patterns): Don't preference fp regs.
11737
11738 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
11739
11740         * genrecog.c (write_switch): Check for duplicate CODE cases.
11741
11742 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
11743
11744         * ggc-common.c: Update pre-function commentary.
11745         * ggc-page.c: Likewise.
11746         (poison): Remove.
11747         (poison_pages): Use memset directly.
11748         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
11749         (ggc_collect): Poison before sweeping.
11750         * ggc-simple.c: Update pre-function commentary.
11751         (ggc_alloc_obj): Poison non-zeroed memory.
11752
11753 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
11754
11755         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
11756         match format string, even on 64-bit hosts.
11757         * gcc-page.c (ggc_page_print_statistics): Likewise.
11758
11759 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
11760
11761         * config/i386/i386.c (ix86_cpu): Revert last patch.
11762         * config/i386/i386.h (ix86_cpu): Ditto.
11763
11764 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
11765
11766         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
11767         TYPE_SIZE, convert type of result to sizetype.
11768
11769 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
11770
11771         * flow.c (count_or_remove_death_notes): Equate NULL with the
11772         universal set.
11773
11774         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
11775         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
11776         dbr_schedule.
11777
11778         * i386.c (pic_label_no): Delete.
11779         (ix86_attr_length_default): Don't use single_set to peek
11780         inside a parallel.
11781
11782         * recog.c (peephole2_optimize): Allow recog_next_insn to index
11783         the first insn after bb->end.
11784         * i386.md (push mem peeps): Scratch is live after evaluation
11785         of the memory.
11786         (cmp mem peep): Similarly.
11787
11788 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
11789
11790         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
11791         * function.c (pad_to_arg_alignment): Add missing braces.
11792
11793 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11794
11795         * alpha/alpha-protos.h (literal_section): Add prototype.
11796         (alpha_need_linkage, alpha_start_function,alpha_end_function):
11797         Constify a char*.
11798
11799         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
11800         prototype.
11801         (alpha_start_function, alpha_end_function, float_strings,
11802         alpha_need_linkage): Constify a char*
11803
11804         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
11805
11806         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
11807
11808         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11809
11810         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
11811
11812 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11813
11814         * flow.c (debug_flow_info): Add prototype.
11815
11816         * gcc.c (main): Likewise.
11817
11818         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
11819         Likewise.
11820
11821         * reload1.c (failed_reload, set_reload_reg): Likewise.
11822
11823         * mips-tfile.c (main): Likewise.
11824         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
11825         with ATTRIBUTE_NORETURN.
11826
11827 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
11828
11829         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
11830         DECL is not a memory ref.
11831
11832 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
11833
11834         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
11835         * config/i386/i386.c (ix86_cpu): Add extern attribute.
11836
11837 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
11838
11839         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
11840         * config/mips/elf64.h: ditto.
11841
11842 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
11843
11844         * expr.c (emit_push_insn): New argument alignment_pad.
11845         Update all callers.  Adjust stack pointer based on alignment pad.
11846         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
11847         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
11848         (locate_and_pad_parm): New argument alignment_pad.  Update all
11849         callers.
11850         * expr.h (emit_push_insn): Update prototype.
11851         (locate_and_pad_parm): Update prototype.
11852         * calls.c (arg_data):  Add new field alignment_pad.
11853         (initialize_argument_information): Initialize alignment_pad.
11854
11855 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
11856
11857         * except.c (free_eh_nesting_info): Free the info itself.
11858         * function.c (free_after_compilation): Don't free NULL.
11859         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
11860         (pre_edge_insert): Free inserted.
11861         * stmt.c (free_stmt_status): Don't free NULL.
11862
11863 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
11864
11865         * gcov.c (DIR_SEPARATOR): Provide default.
11866         (output_data): Add test for MS-DOS format absolute filename.
11867         (fancy_abort): Correct program name.
11868         (open_files): Open all files in binary mode.
11869         * libgcc2.c (__bb_exit_func): Likewise.
11870
11871         * profile.c (init_branch_prob): Specify binary when opening files.
11872
11873         * flags.h (flag_unwind_tables): New decl.
11874         * toplev.c (flag_unwind_table): New definition.
11875         (f_options): Add -funwind-tables.
11876         (decode_g_option): Clarify warning when unknown -g option is given.
11877         (rest_of_compilation): If inside an inlined external function,
11878         pretend we are just being declared.
11879
11880         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
11881         (dwarf2out_frame_finish): Likewise.
11882
11883 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
11884
11885         * fold-const.c (merge_ranges): If not in0, but in1, handle
11886         upper bounds equal like subset case.
11887
11888 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
11889
11890         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
11891         passed in a register but moved to the stack.
11892
11893 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
11894
11895         * gcc.c (pass_exit_codes, greatest_status): New variables.
11896         (struct option_map): Add entry for "--pass-exit-codes".
11897         (execute): Update greatest_status if error.
11898         (display_help): Add documentation for -pass-exit-codes.
11899         (process_command): Handle -pass-exit-codes.
11900         (main): Look at pass_exit_codes and greatest_status on call to exit.
11901
11902 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11903
11904         * reload.c (find_reloads): Refine test for no input reload
11905         case to not includes reloads emitted after insn.
11906
11907         * function.c (find_temp_slots_from_address): Handle sum involving
11908         a register that points to a temp slot.
11909         (update_temp_slot_address): Make recursive call if both old and
11910         new are PLUS with a common operand.
11911         * calls.c (expand_call): Mark temp slot for result as having
11912         address taken.
11913
11914         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
11915
11916         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
11917         component as well as "BINUTILS".
11918
11919         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
11920         * integrate.c (copy_rtx_and_substitute): Likewise.
11921         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
11922         All callers changed.
11923         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
11924
11925         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
11926         gdb extensions, write size of type; also be more consistent
11927         in using references when this is a subtype.
11928
11929         * pa.md (extv, extzv, insv): Use define_expand to reject constant
11930         that is out of range.
11931
11932         * loop.c (unknown_constant_address_altered): New variable.
11933         (prescan_loop): Initialize it.
11934         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
11935         (invariant_p, case MEM): Remove handling for volatile and readonly;
11936         check new variable if readonly.
11937         (check_dbra_loop): Chdeck unknown_constant_address_altered.
11938
11939         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
11940         (addr_affects_sp_p): Removed from note_mem_written and only
11941         define #ifdef AUTO_INC_DEC.
11942
11943         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
11944
11945         * regclass.c (record_reg_classes): Properly handle register move
11946         directions.
11947
11948         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
11949         Don't think valid if both operands are invalid.
11950         (struct constant_descriptor): New field RTL.
11951         (mark_const_hash_entry): Mark it.
11952         (record_constant{,_rtx}): Initialize it.
11953         (output_constant_def): Allocate RTL in permanent obstack and
11954         save in table.
11955         ({record,compare}_constant_1): Modes must match for
11956         CONSTRUCTOR of ARRAY_TYPE.
11957
11958         * c-common.h (initializer_constant_valid_p): Delete decl from here.
11959         * output.h (initializer_constant_valid_p): Move decl to here.
11960         * c-common.c (initializer_constant_valid_p): Delete function from here.
11961         * varasm.c (initializer_constant_valid_p): Move function to here.
11962
11963         * tree.h (STRIP_SIGN_NOPS): New macro.
11964         * fold-const.c (optimize_minmax_comparison): New function.
11965         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
11966         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
11967         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
11968         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
11969         widening conversions.
11970         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
11971         to look at size of mode, not precision of type; also add missing cases.
11972         (optimize_bit_field_compare, decode_field_reference): Don't try to
11973         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
11974
11975         * dwarf2out.c (ctype.h): Include.
11976         (dwarf2out_set_demangle_name_func): New function.
11977         (size_of_line_info): Deleted.
11978         (output_line_info): Compute size of line info table from difference
11979         of labels.
11980         (base_type_die, add_name_attribute): Call demangle function, if any.
11981         (field_byte_offset): Use bits per word for variable length fields.
11982         (gen_array_type_die): Add array name.
11983         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
11984         (dwarf2out_add_library_unit_info): New function.
11985
11986         * explow.c (set_stack_check_libfunc): New function.
11987         (stack_check_libfunc): New static variable.
11988         (probe_stack_range): Allow front-end to set up a libfunc to call.
11989
11990         * combine.c (simplify_comparison): When making comparison in wider
11991         mode, check for having commuted an AND and a SUBREG.
11992         (contains_muldiv): New function.
11993         (try_combine): Call it when dividing a PARALLEL.
11994         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
11995         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
11996         a PLUS.
11997         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
11998         use one of the CLOBBERs instead.
11999         (if_then_else_cond): If comparing against zero, just return thing
12000         being compared.
12001
12002         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
12003         Don't generate shifts and subtract if have conditional arithmetic.
12004
12005         * rtl.h (delete_barrier): New declaration.
12006         * jump.c (jump_optimize): Set up to handle conditional call.
12007         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
12008         (delete_barrier): New function.
12009
12010         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
12011
12012         * recog.c (nonmemory_operand): Accept ADDRESSOF.
12013
12014         * tree.c (build_type_attribute_variant): Push to obstack of
12015         ttype around type_hash_canon call.
12016
12017         * expr.c (placeholder_list): Move decl to file scope.
12018         (expand_expr): Don't force access to volatile just because its
12019         address is taken.
12020         If ignoring reference operations, just expand the operands.
12021         (expand_expr, case COMPONENT_REF): Propagate
12022         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
12023         Refine test for using bitfield operations vs pointer punning.
12024         (expand_expr, case CONVERT_EXPR): If converting to
12025         BLKmode UNION_TYPE from BLKmode, just return inner object.
12026         Use proper mode in store_field call.
12027         Properly set sizes of object to store and total size in store_field
12028         call for convert to union.
12029         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
12030         memory (like for ADDR_EXPR).  Also, don't put constant in register if
12031         we'll want it in memory.
12032         (readonly_fields_p): New function.
12033         (expand_expr, case INDIRECT_REF): Call it if LHS.
12034         (expand_assignment): Handle a RESULT_DECL where
12035         DECL_RTL is a PARALLEL.
12036         (do_jump, case WITH_RECORD_EXPR): New case.
12037         (get_inner_reference): Always go inside a CONVERT_EXPR
12038         and NOP_EXPR if both modes are the same.
12039         (store_field): Use bitfield operations if size of bitsize is not same
12040         as size of RHS's type.
12041         Check for bitpos not a multiple of alignment in BLKmode case.
12042         Do block move in largest possible alignment.
12043         (store_constructor): Set BITSIZE to -1 for variable size and properly
12044         in case of array of BLKmode.
12045         (expand_expr_unaligned): New function.
12046         (do_compare_and_jump): Call it.
12047
12048         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
12049         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
12050         does not include 'o'.
12051
12052         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
12053         both SET_DEST and SET_SRC reference a virtual register.
12054         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
12055
12056         * integrate.c (expand_inline_function): Handle case of setting
12057         virtual stack vars register (from built in setjmp); when parameter
12058         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
12059         (subst_constant): Add new parm, MEMONLY.
12060         (expand_inline_function, integrate_parm_decls): Pass new parm.
12061         (integrate_decl_tree): Likewise.
12062         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
12063         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
12064         (copy_rtx_and_substitute, case SET): Add explicit calls to
12065         copy_rtx_and_substitute for both sides.
12066
12067         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
12068         constraints.
12069         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
12070         within INDEX_TYPE, instead of before.
12071         (fixup_gotos): Use f->target_rtl, not the next insn,
12072         since latter may be from a later fixup.
12073         (expand_value_return): Correctly convert VAL when promoting function
12074         return; support RETURN_REG being a PARALLEL.
12075         (expand_return): When checking for result in regs and having
12076         cleanup, consider PARALLEL in DECL_RTL as being in regs.
12077
12078 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
12079
12080         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
12081         last_nominal_fname): Mark const.
12082         (struct include_hash: name, nshort, control_macro): Mark
12083         const.
12084         (struct macrodef: symnam): Mark const.
12085         (struct if_stack: fname): Mark const.
12086         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
12087         (IStable): New character-syntax array which encompasses all
12088         the old is_foo arrays.
12089         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
12090         is_space): New macros for interrogating IStable.
12091         (check_macro_name): Kill last argument.  All callers changed.
12092
12093         * cppinit.c (initialize_char_syntax): Delete.
12094         (is_idchar, is_idstart, is_hor_space, is_space,
12095         trigraph_table): Delete.
12096         (IStable): New.  Initialize with clever macros to avoid
12097         information duplication.
12098         (builtin_array): Table of builtins to get rid of explicit list
12099         in initialize_builtins.
12100         (initialize_builtins): Use builtins_array.
12101         (cpp_start_read): Call init_IStable, and set IStable['$'] if
12102         opts->dollars_in_ident.
12103
12104         * cppexp.c: Change all refs to is_xyz[] arrays to use new
12105         is_xyz() macros.
12106         (cpp_parse_expr): Avoid 'format string is not constant'
12107         warning. Use ISGRAPH to identify printable chars.
12108         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
12109         is_xyz() macros.
12110         (read_and_prescan): Map trigraphs to chars with open-coded
12111         if-else-if-... sequence, not a lookup table.
12112         * cpphash.c: Change all refs to is_xyz[] arrays to use new
12113         is_xyz() macros.
12114         * cpplib.c: Change all refs to is_xyz[] arrays to use new
12115         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
12116         (check_macro_name): Remove ability to report an invalid
12117         assertion name, which is never used.
12118         (do_line): Constify a couple of char *'s.
12119         * cppmain.c (main): Call cpp_cleanup before returning.
12120
12121 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
12122
12123         * ggc.h (struct ggc_statistics): New type.
12124         (ggc_get_size): New function.
12125         (ggc_print_statistics): Likewise.
12126         * ggc-common.c (ggc_stats): New variable.
12127         (ggc_mark_rtx_children): Keep statistics.
12128         (ggc_mark_tree_children): Likewise.
12129         (ggc_print_statistics): New function.
12130         * ggc-page.c (struct globals): Add bytes_mapped field.
12131         (alloc_anon): Update it.
12132         (release_pages): Likewise.
12133         (ggc_get_size): New function.
12134         (ggc_page_print_statistics): New function.
12135         * ggc-simple.c (ggc_get_size): New function.
12136
12137 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
12138
12139         * flow.c (propagate_block): When the last reference to a label
12140         before an ADDR_VEC is deleted because the reference is a dead
12141         store, delete the ADDR_VEC.
12142
12143 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
12144
12145         * resource.c (find_free_register): Don't use the frame pointer
12146         if frame_pointer_needed.
12147
12148 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
12149
12150         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
12151         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
12152
12153         * config/i960/i960.c (i960_va_start): New locals base, num.
12154         Use INDIRECT_REF instead of ARRAY_REF on valist.
12155         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
12156
12157 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
12158
12159         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
12160
12161 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
12162
12163         * tree.def (PLACEHOLDER_EXPR): Update comments.
12164
12165 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12166
12167         * c-common.c (check_format_info): Avoid non-literal format string
12168         warnings when `first_arg_num' is zero.
12169
12170 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12171
12172         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
12173
12174 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
12175
12176         * arm.md (casesi_insn): Add a clobber of the condition code
12177         register.
12178
12179 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
12180
12181         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
12182         used by both cc1 and cc1plus.
12183
12184 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
12185
12186         * config/arm/arm.c: Initialise arm_structure_size_boundary to
12187         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
12188         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
12189         to the value 32 if it has not already been defined.
12190         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
12191         Override definition in arm.h with a value of 8.
12192
12193 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
12194
12195         * c-pragma.c (push_alignment): Don't check the return value
12196         of xmalloc.
12197
12198 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
12199
12200         * sparc.h (ADJUST_COST): Fix thinko.
12201
12202 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
12203
12204         * cccp.c (rescan): Fixed obp pointer handling around call to
12205         check_expand subroutine.
12206
12207 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
12208
12209         * gcse.c (delete_null_pointer_checks): Only record non-null info
12210         for pseudos when examining stores.
12211
12212         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
12213         splitters for these patterns.  Use "#" for output templates.
12214         (addsi3_carryin_shift): New pattern.
12215
12216 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
12217
12218         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
12219         of the function return register into a plain REG until
12220         after function inlining is done.
12221
12222 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
12223
12224         * jump.c (jump_optimize_1): If we did cross-jumping, and
12225         the data will matter, rebuild the CFG.
12226         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
12227         not optimizing.  Don't run shorten_branches.
12228         * toplev.c (rest_of_compilation): Run shorten_branches after
12229         reg_to_stack.
12230
12231 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
12232
12233         * rtl.h (note_stores): Add additional paramter.
12234         * rtlanal.c (reg_set_p_1): Take additional paramter.
12235         (reg_set_last_1): Likewise.
12236         (reg_set_p): Adjust call to note_stores.
12237         (reg_set_last): Likewise.
12238         (note_stores): Pass data parameter to worker function.
12239         * alias.c (record_set): Take additional parameter.
12240         (init_alias_analysis): Pass it.
12241         * caller-save.c (mark_set_regs): Take additional parameter.
12242         (save_call_clobbered_regs): Pass NULL to note_stores.
12243         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
12244         parameter.
12245         (record_dead_and_set_regs_1): Likewise.
12246         (reg_dead_at_p_1): Likewise.
12247         (combine_instructions): Adjust calls to note_stores.
12248         (try_combine): Likewise.
12249         (record_dead_insn): Remove.
12250         (record_dead_and_set_regs): Adjust calls to note_stores.
12251         (reg_dead_at_p): Likewise.
12252         * cse.c (invalidate_skipped_set): Take additional parameter.
12253         (cse_check_loop_start): Likewise.
12254         (cse_check_loop_start_value): Remove.
12255         (cse_set_around_loop): Adjust calls to note_stores.
12256         * flow.c (notice_stack_pointer_modification): Take additional
12257         parameter.  Remove duplicate declaration.
12258         (record_volatile_insns): Adjust calls to note_stores.
12259         * gcse.c (record_set_info): Take additional parameter.
12260         (record_last_set_info): Likewise.
12261         (invalidate_nonnull_info): Likewise.
12262         (record_set_insn): Remove.
12263         (compute_sets): Adjust calls to note_stores.
12264         (last_set_insn): Remove.
12265         (compute_hash_table): Adjust calls to note_stores.
12266         (insert_insn_end_bb): Likewise.
12267         (delete_null_pointer_checks): Likewise.
12268         * global.c (mark_reg_store): Take additional parameter.
12269         (mark_reg_clobber): Likewise.
12270         (reg_becomes_live): Likewise.
12271         (global_conflicts): Adjust calls to note_stores.
12272         (build_insn_chain): Likewise.
12273         * integrate.c (note_modified_parmregs): Take additional parameter.
12274         (mark_stores): Likewise.  Make it static.
12275         (save_for_inline_nocopy): Adjust calls to note_stores.
12276         (try_constants): Likewise.
12277         * integrate.h (mark_stores): Remove declaration.
12278         * jump.c (mark_modified_reg): Take additional parameter.
12279         (thread_jumps): Adjust calls to note_stores.
12280         * local-alloc.c (validate_equiv_mem_from_store): Take additional
12281         parameter.
12282         (no_equiv): Likewise.
12283         (reg_is_set): Likewise.
12284         (validate_equiv_mem): Adjust calls to note_stores.
12285         (update_equiv_regs): Likewise.
12286         (block_alloc): Likewise.
12287         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
12288         (note_addr_stored): Take additional parameter.
12289         (note_set_pseudo_multiple_uses): Likewise.
12290         (record_initial): Likewise.
12291         (prescan_loop): Adjust calls to note_stores.
12292         (strength_reduce): Likewise.
12293         (check_dbra_loop): Likewise.
12294         * regmove.c (flags_set_1): Take additional paramter.
12295         (mark_flags_life_zones): Adjust calls to note_stores.
12296         * reload1.c (mark_not_eliminable): Take additional parameter.
12297         (forget_old_reloads_1): Likewise.
12298         (reload_cse_invalidate_rtx): Likewise.
12299         (reload_cse_check_clobber): Likewise.
12300         (reload_combine_note_store): Likewise.
12301         (move2add_note_store): Likewise.
12302         (reload): Adjust calls to note_stores.
12303         (reload_as_needed): Likewise.
12304         (emit_reload_insns): Likewise.
12305         (reload_cse_regs_1): Likewise.
12306         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
12307         (reload_combine): Adjust calls to note_stores.
12308         * resource.c (update_live_status): Take additional paramter.
12309         (mark_target_live_regs): Adjust calls to note_stores.
12310         * stupid.c (find_clobbered_regs): Take additional parameter.
12311         (stupid_life_analysis): Adjust calls to note_stores.
12312
12313 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
12314
12315         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
12316         definition.
12317
12318         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
12319         definition.
12320
12321         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
12322         of the variable arm_structure_size_boundary.
12323
12324 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
12325
12326         * alias.c (init_alias_analysis): Allocate reg_known_value and
12327         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
12328         and reg_seen.
12329         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
12330         * cse.c (cse_main): Call end_alias_analysis.
12331         * haifa-sched.c (schedule_insns): Likewise.
12332         * local-alloc. (update_equiv_regs): Likewise.
12333         * reload1.c (reload_cse_regs): Likewise.
12334
12335 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12336
12337         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
12338         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
12339         mapping from MASK_FPU.
12340
12341 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
12342
12343         * sparc.md (call): Don't bound structure return size to 0xfff.
12344
12345 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
12346
12347         * resource.c (mark_target_live_regs): Check that the target
12348         insn wasn't created after compute_bb_for_insn.
12349
12350 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
12351
12352         * ggc-page.c (poison_pages): Don't be overzealous.
12353
12354 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
12355
12356         * alias.c: Update comments for ADDRESS.
12357         (nonlocal_reference_p): Look inside the ADDRESS to determine if
12358         it is a local memory reference.
12359
12360         * c-typeck.c (build_function_call): Check that the built-in
12361         function is of class BUILT_IN_NORMAL before trying to recongize
12362         it as BUILT_IN_ABS.
12363         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
12364         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
12365
12366 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
12367
12368         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
12369         of alloca.
12370         (pre_gcse): Likewise.
12371         (hoist_expr_reaches_here_p): Likewise.
12372         (hoist_code): Likewise.
12373         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
12374         code to ...
12375         (pre_expr_reaches_here_p_work): ... here.
12376         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
12377         code to ...
12378         (expr_reaches_here_p_work): ... here.
12379
12380 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
12381
12382         * resource.c (find_basic_block): Delete.
12383         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
12384         (init_resource_info): Call compute_bb_for_insn.
12385
12386 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
12387
12388         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
12389         with already adjacent blocks, but no fallthru.
12390         (merge_blocks_move_successor_nojumps): Simplify.
12391         (debug_flow_info): New.
12392
12393         * toplev.c (rest_of_compilation): Open jump1 dump file before
12394         jump and close after, as opposed to just using dump_rtl.
12395
12396 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12397
12398         * reload.h (earlyclobber_operand_p): Declare.
12399         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
12400         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
12401         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
12402         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
12403
12404 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
12405                           Richard Henderson  <rth@cygnus.com>
12406
12407         * emit-rtl.c (emit_block_insn_before): New.
12408         (emit_block_insn_after): New.
12409         * basic-block.h: Declare them.
12410
12411         * bitmap.h: Protect from multiple inclusion.
12412
12413         * recog.c (scratch_operand): Handle VOIDmode correctly.
12414
12415         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
12416
12417         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
12418         * function.c (assign_parms): Likewise.
12419         * global.c (global_conflicts): Clarify STACK_REGS commentary.
12420
12421         * reg-stack.c (max_uid): Remove.
12422         (blocks, block_begin, block_end, block_drops_in): Remove.
12423         (block_stack_in, block_out_reg_set, block_number): Remove.
12424         (struct block_info_def, BLOCK_INFO): New.
12425         (enum emit_where): New.
12426         (current_block): New.
12427         (BLOCK_NUM): Remove.
12428         (mark_regs_pat, record_label_references): Remove.
12429         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
12430         (nan): New.
12431         (goto_block_pat, print_blocks, dump_stack_info): Remove.
12432         (reg_to_stack): Simplified test for existance of fp code.  Use
12433         flow.c code.  Call shorten_branches after cross-jump opt.
12434         (check_asm_stack_operands): Renamed from record_asm_reg_life.
12435         Return false if the asm doesn't use stack regs.  Don't do life
12436         analysis on the asm.
12437         (emit_pop_insn): Replace function pointer arg `when' with
12438         enum `where'.  Update all callers.
12439         (change_stack): Likewise.  Update basic block end.
12440         (emit_swap_insn): Use current_block->head to limit reverse search
12441         for start of block.  Use emit_block_insn_after.
12442         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
12443         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
12444         structure assignment instead of bcopy.
12445         (print_stack): New.
12446         (convert_regs_entry, convert_regs_exit): New.
12447         (convert_regs_1, convert_regs_2): Split out from convert_regs.
12448         Work on basic blocks and the CFG.
12449         (convert_regs): Use them.
12450
12451         * i386.c (output_fix_trunc): Remove code for DImode input operand
12452         not at top-of-stack.
12453         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
12454         appropriate mode.
12455         (fix_truncdi_1): Allow any mode scratch.
12456
12457 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
12458
12459         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
12460         * linux.h, netbsd.h, vms.h: Not here.
12461
12462 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
12463
12464         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
12465         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
12466         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
12467         CONDITIONAL_REGISTER_USEAGE): Use them.
12468         * config/mips/mips.c (mips_move_1word,mips_move_2words,
12469         gen_conditional_branch,override_options) : Use them.
12470         * config/mips/mips.md : Use them.
12471
12472 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
12473
12474         * i386.md (zero_extendqihi2): Use SImode register name with andl.
12475
12476 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
12477
12478         * integrate.c (function_cannot_inline_p): Don't allow inlining
12479         if setjmp is used.
12480
12481 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12482
12483         * c-parse.in (cast_expr): Constify.
12484
12485         * cccp.c (special_symbol): Likewise.
12486
12487         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
12488
12489         * dwarf2out.c (base_type_die): Likewise.
12490
12491         * global.c (allocno_compare): Likewise.
12492
12493         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
12494
12495         * regclass.c (fix_register): Likewise.
12496
12497         * rtl.h (fix_register): Likewise.
12498
12499         * stupid.c (stupid_reg_compare): Likewise.
12500
12501         * toplev.c (decode_f_option): Likewise.
12502
12503         * tree.c (build_complex_type): Likewise.
12504
12505 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
12506
12507         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
12508
12509 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12510
12511         * reload.c (find_reloads): Compute mode and nregs fields of all
12512         reloads.
12513         * reload1.c (calculate_needs_all_insns): Simplify a bit.
12514         (calculate_needs): Use precomputed mode/nregs values.
12515         (allocate_reload_reg): Likewise.
12516         Break out two...
12517         (failed_reload, set_reload_reg): ... new functions.
12518         (choose_reload_regs_init): New function, mostly broken out from...
12519         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
12520         Also lose one #if 0 block.
12521
12522 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
12523
12524         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
12525         substitution.
12526
12527 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
12528
12529         * tree.h (BLOCK_TYPE_TAGS): Remove.
12530         (BLOCK_END_NOTE): Likewise.
12531         (BLOCK_LIVE_RANGE_FLAG): Likewise.
12532         (BLOCK_LIVE_RANGE_START): Likewise.
12533         (BLOCK_LIVE_RANGE_END): Likewise.
12534         (tree_block): Remove live_range_flag, live_range_var_flag, and
12535         type_tags.  Remove end_note, live_range_start, and live_range_end.
12536         (remember_end_note): Remove prototype.
12537         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
12538         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
12539         remember_end_note.
12540         * ggc-common.c (ggc_mark_tree_children): Don't mark
12541         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
12542         * integrate.c (adjust_copied_decl_tree): Remove.
12543         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
12544         * stmt.c (last_block_end_note): Remove.
12545         (init_stmt): Don't add a GC root for it.
12546         (expand_fixup): Don't set it.
12547         (remember_end_note): Remove.
12548         (expand_end_bindings): Don't set last_block_end_note.
12549
12550 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12551
12552         * reload1.c (reload_reg_free_for_value_p): Show
12553         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
12554         reloads.
12555
12556 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
12557
12558         * expmed.c (extract_bit_field): Allow for the case of non-integer
12559         objects that are smaller than a word (like SFmode on a 64-bit
12560         machine).
12561
12562         * loop.c (basic_induction_var): A non-integer variable which is
12563         being set by a paradoxical subreg is probably not a biv.
12564
12565 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12566
12567         * prefix.c (translate_name) Check for empty prefix string.
12568
12569 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
12570
12571         * Makefile.in (CPP_CROSS_NAME): New variable.
12572         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
12573         xcpp.
12574         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
12575         names of the files to be uninstalled.
12576
12577 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
12578
12579         * collect2.c (IS_DIR_SEPARATOR): Define.
12580         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
12581
12582         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
12583         functions too.
12584
12585         * haifa-sched.c (add_dependence): Update the true dependency
12586         cache the first time we add a true dependence to the LOG_LINKS chain.
12587
12588 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
12589
12590         * fold-const.c (fold): Fix comment.
12591
12592 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12593
12594         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
12595         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
12596         dbxout_start_new_source_file, dbxout_source_file,
12597         dbxout_source_line, dbxout_finish, dbxout_type_fields,
12598         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
12599         Constify a char*.
12600         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
12601         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
12602         (dbxout_block): Initialize variable `blocknum'.
12603
12604         * dbxout.h (dbxout_init, dbxout_finish,
12605         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
12606         dbxout_args, dbxout_source_line): Constify a char*.
12607
12608         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
12609         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
12610         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
12611         low_pc_attribute, high_pc_attribute, body_begin_attribute,
12612         body_end_attribute, comp_dir_attribute, sf_names_attribute,
12613         src_info_attribute, mac_info_attribute, producer_attribute,
12614         lookup_filename, generate_macinfo_entry, fundamental_type_code,
12615         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
12616         dwarfout_undef): Constify a char*.
12617         (add_incomplete_type, retry_incomplete_types): Add prototypes.
12618
12619         * dwarfout.h (dwarfout_define, dwarfout_undef,
12620         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
12621
12622 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
12623
12624         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
12625         (MULTILIB_ISA_DEFAULT): New.
12626         (MULTILIB_DEFAULTS): Use it.
12627         * config/mips/mips.c (): Remove the now unnecessary definition
12628         of MIPS_ISA_DEFAULT.
12629         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
12630         unnecessary definition.
12631
12632 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
12633
12634         * arm.md (pic_load_addr): Add constraints to operand 1.
12635
12636 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
12637
12638         * fixinc/genfixes:  Provide a means for specifying -D options to
12639         AutoGen
12640
12641 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
12642
12643         * arm.c (arm_override_options): Correct initialization of
12644         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
12645         arm_is_strong, and arm_is_6_or_7.
12646
12647         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
12648         (note_set_pseudo_multiple_uses): New function.
12649         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
12650         if a pseudo set in the loop exit is used elsewhere.
12651
12652 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
12653
12654         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
12655
12656 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
12657
12658         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
12659         a single load-address pattern.
12660
12661 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
12662
12663         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
12664         depending on whether or not line-number notes are present.
12665
12666 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12667
12668         * cccp.c (progname, file_buf, default_include, include_file,
12669         macrodef, definition, hashval, wchar_type, user_label_prefix,
12670         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
12671         expand_to_temp_buffer, is_system_include, base_name,
12672         absolute_filename, read_name_map, open_include_file,
12673         record_control_macro, check_precompiled, check_preconditions,
12674         pcfinclude, pass_thru_directive, create_definition,
12675         check_macro_name, comp_def_part, collect_expansion,
12676         check_assertion, read_token_list, assertion_install,
12677         assertion_lookup, eval_if_expression, conditional_skip,
12678         validate_else, skip_quoted_string, quote_string, macarg1,
12679         error_from_errno, install, lookup, hashf, dump_defn_1,
12680         perror_with_name, pfatal_with_name, main, trigraph_pcp,
12681         check_white_space, rescan, handle_directive, monthnames,
12682         special_symbol, do_include, remap_include_file, write_output,
12683         arglist, do_assert, do_unassert, do_line, do_error, do_once,
12684         do_ident, do_sccs, do_xifdef, skip_if_group,
12685         output_line_directive, macroexpand, macarg, change_newlines,
12686         initialize_builtins, make_definition): Constify a char*.
12687
12688         * pcp.h (stringdef): Likewise.
12689
12690 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
12691
12692         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
12693         not of pattern.
12694
12695 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
12696                           Richard Henderson  <rth@cygnus.com>
12697
12698         * alias.c: Include ggc.h.
12699         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
12700         (record_set): Verify enough room in reg_base_value.
12701         (init_alias_analysis): Allocate reg_base_value with xcalloc.
12702         Register it as a GC root.
12703         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
12704         * Makefile.in (alias.o): Depend on ggc.h.
12705
12706         * unroll.c (unroll_loop): Verify the insn before a barrier
12707         is a JUMP_INSN before checking JUMP_LABEL.
12708
12709 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12710
12711         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
12712         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
12713         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
12714         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
12715         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
12716         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
12717
12718 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12719
12720         * output.h (ctors_section, dtors_section, bss_section): Prototype.
12721
12722         * alpha/alpha-interix.h (text_section): Delete prototype.
12723         * alpha/elf.h (text_section): Likewise.
12724         * arm/linux-elf.h (text_section): Likewise.
12725         * arm/linux-telf.h (text_section): Likewise.
12726         * c4x/c4x.h (text_section): Likewise.
12727         * dsp16xx/dsp16xx.h (bss_section): Likewise.
12728         * elfos.h (text_section): Likewise.
12729         * i386/aix386ng.h (text_section): Likewise.
12730         * i386/i386-interix.h (text_section): Likewise.
12731         * i386/sco5.h (text_section): Likewise.
12732         * i386/svr3gas.h (text_section): Likewise.
12733         * nextstep.h (text_section): Likewise.
12734         * psos.h (text_section): Likewise.
12735         * ptx4.h (text_section): Likewise.
12736         * svr3.h (text_section): Likewise.
12737         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
12738
12739 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12740
12741         * final.c (peephole): Delete prototype.
12742
12743         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
12744         (pre_insert_copies): Remove unused variable `bb'.
12745
12746         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
12747         prototypes.
12748
12749         * output.h (peephole): Add prototype.
12750
12751 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
12752
12753         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
12754         -O0.
12755
12756 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
12757
12758         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
12759         for inlined declarations.
12760
12761 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
12762
12763         * arm.c (logical_binary_operator): New fucntion.
12764         * arm.h (logical_binary_operator): Declare it.
12765         (PREDICATE_CODES): Handle logical_binary_operator.
12766         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
12767         output constraints.  Add appropriate splitters.
12768         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
12769         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
12770         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
12771
12772 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12773
12774         * genoutput.c (struct operand_data): New elt eliminable.
12775         (output_operand_data): Write it.
12776         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
12777         (compare_operands): Take it into account.
12778         * recog.h (struct insn_operand_data): New elt eliminable.
12779         * reload1.c (check_eliminable_occurrences, elimination_effects): New
12780         functions.
12781         (old_asm_operands_vec, new_asm_operands_vec): Delete.
12782         (eliminate_regs): Move code that detects changes to elimination
12783         target regs into new function elimination_effects.
12784         Delete one #if 0 block.
12785         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
12786         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
12787         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
12788         Only call eliminate_regs for real operands of the insn, not for parts
12789         of its structure or parts matched by things like match_operator.
12790         Use elimination_effects and check_eliminable_occurrences.  Use
12791         copy_insn to duplicate the pattern when not in the final pass.
12792
12793 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
12794
12795         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
12796         and fld.
12797
12798 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
12799
12800         * fixinc/README: document the "mach" machine matching test
12801         * fixinc/fixfixes.c: Implement the #else/#endif label fix
12802         * fixinc/fixtests.c: Implement the #else/#endif label test
12803         * fixinc/inclhack.def: utilize these tests and fixes
12804         * fixinc/inclhack.sh:  regen
12805         * fixinc/fixincl.x:  regen
12806         * fixinc/fixincl.sh:  regen
12807
12808 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
12809
12810         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
12811         depend on ggc.h.
12812
12813 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
12814
12815         * gcc.1: Document exit codes.
12816
12817 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12818
12819         * calls.c: Include tm_p.h later, so everything we need is defined.
12820         * expr.c: Likewise.
12821         * function.c: Likewise.
12822
12823         * except.c: Include tm_p.h.
12824
12825         * sparc.c: Likewise.
12826         (dwarf2out_cfi_label): Don't prototype.
12827         (check_return_regs, epilogue_renumber,
12828         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
12829         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
12830         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
12831         ultra_schedule_insn): Add static prototype.
12832         (data_segment_operand, text_segment_operand): Call itself with the
12833         proper number of arguments.
12834         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
12835
12836         * sparc.h: Move all declarations to sparc-protos.h.
12837         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
12838         symbolic_operand.
12839
12840         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
12841
12842         * config/svr4.h (text_section, ctors_section, dtors_section): Add
12843         Prototypes.
12844         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
12845         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
12846         ASM_OUTPUT_ASCII): Constify a char*.
12847
12848         * sparc-protos.h: New file for sparc prototypes.
12849
12850 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12851
12852         * function.c (record_insns, contains): Always declare and define.
12853         (record_insns): Mark with ATTRIBUTE_UNUSED.
12854
12855 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
12856
12857         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
12858         to .section when outputting a .bss section to deal with multiple
12859         .bss input sections (as happens with -fdata-sections)
12860         Also output %progbits, not @progbits so the assembler doesn't treat as
12861         a comment.
12862         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
12863
12864         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
12865         thumb parts even when building with non-thumb CPUs, by forcing
12866         thumb mode.
12867
12868 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
12869
12870         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
12871         (movdf_const_intreg_sp64): Similarly.
12872
12873         * local-alloc.c (update_equiv_regs): Check the correct insn
12874         for pre-existing REG_EQUIV notes.
12875
12876 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
12877
12878         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
12879         block reached by a branch if we're not going to actually process
12880         this block.
12881
12882 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
12883
12884         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
12885         a local extern function declaration.
12886
12887 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
12888
12889         * i386.c (ix86_expand_prologue): Properly wrap USE around
12890         reg for CALL_INSN_FUNCTION_USAGE.
12891
12892 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
12893
12894         * config/mips/mips.md (movdf_internal1a): Allow floating-point
12895         move between GP_REGs.
12896
12897 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
12898
12899         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
12900         the mode size when finding out if an offset is legal.
12901
12902 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
12903
12904         * basic-block.h (PROP_*): Move constants from ...
12905         * flow.c: ... here.
12906         (compute_bb_for_insn): Free the array before reallocating.
12907         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
12908         (allocate_reg_life_data): Reset all reg variables collected by
12909         propagate_block.
12910         (get_block_head_tail): Don't convert from bb to block.
12911         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
12912         (find_insn_reg_weight): Take block not bb.
12913         (schedule_block): Don't set block num for moved insns.
12914         (schedule_region): Don't update_life_info or find_insn_reg_weight.
12915         (schedule_insns): Do it here instead.
12916         * combine.c (combine_instructions): Invoke compute_bb_for_insn
12917         before update_life_info.
12918         * recog.c (split_all_insns, peephole2_optimize): Update for
12919         new arg to update_life_info.
12920         * rtlanal.c (remove_note): Cope with NULL note.
12921         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
12922         if we did sched1.
12923
12924 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
12925
12926         * jump.c (jump_optimize_1): More accurately detect casesi insns.
12927
12928         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
12929         block records so that merge_blocks_nomove will clean up correctly.
12930         (split_edge): Handle casesi insns.
12931
12932         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
12933
12934 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
12935
12936         * pa.md (call, call_value): Do not emit a blockage after restoring
12937         the PIC register.
12938
12939 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
12940
12941         * c-typeck.c (c_expand_asm_operands): Fix typo.
12942
12943 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12944
12945         * arm.c (fpu_rhs_operand): Verify modes.
12946         (fpu_add_operand): Likewise.
12947         (di_operand): Likewise.
12948         (soft_df_operand): Likewise.
12949
12950 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
12951
12952         * arm.c (arm_return_in_memory): APCS rules state that the elements
12953         of a structure returned in a register must be 'integer-like'.
12954
12955 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
12956
12957         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
12958         in the source tree when the generated targets are out of date
12959         * fixinc/genfixes: Alter it to run individual fixes for make.
12960         * fixinc/README: rewrite
12961         * fixinc/inclhack.def: moved initial comments to README
12962
12963 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
12964
12965         * toplev.c (main): Do not generate an error message if an
12966         unrecognised command line switch is recognisable by another
12967         language.  If extra_warnings are enabled, then generate a
12968         warning message instead.
12969
12970 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12971
12972         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
12973         (insert_pack_attributes): Delete prototype.
12974
12975         * c-pragma.c (default_alignment): New static variable.
12976         (push_alignment): Initialize to current effective alignment.
12977         (pop_alignment): Use to set new alignment.
12978         (insert_pack_attributes): Delete function.
12979         (handle_pragma_token): Set default_alignment as well each time
12980         a #pragma pack(<n>) is encountered.
12981
12982 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
12983
12984         * reg-stack.c (stack_result): Aggregates are not returned in
12985         stack registers.
12986
12987 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
12988
12989         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
12990
12991 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
12992
12993         * basic-block.h (set_block_num): Declare.
12994         * flow.c (update_life_info): Don't call compute_bb_for_insn
12995         or free_basic_block_vars.
12996         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
12997         (insn_orig_block): Remove.
12998         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
12999         (schedule_block): Keep BLOCK_NUM up-to-date.
13000         (schedule_insns): Use compute_bb_for_insn.
13001         * recog.c (split_all_insns): Likewise.
13002         (peephole2_optimize): Likewise.
13003
13004 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
13005
13006         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
13007         if the pic register is used.
13008
13009 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13010
13011         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
13012         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
13013         if that tests TREE_PERMANENT.
13014
13015 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
13016
13017         * cse.c (invalidate_for_call): Do not remove memory references from
13018         the table here.  It's handled elsewhere.
13019
13020         * haifa-sched.c (add_dependence): Protect references to the
13021         true dependency cache with #ifdef INSN_SCHEDULING.
13022         (remove_dependence): Similarly.
13023
13024         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
13025         to the cfg code that this is a return instruction.
13026         * mn10300.md (return_internal): Similarly.
13027
13028         * combine.c (get_last_value): If the last set of a register
13029         is after subst_low_cuid, then we can not use it to determine
13030         the register's last value.
13031
13032 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
13033
13034         * Makefile.in: Back out previous change.
13035
13036 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
13037
13038         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
13039
13040         * haifa-sched.c (add_dependence): Only check/update the cache
13041         if it exists.
13042         (remove_dependence): Likewise.
13043         (schedule_insns): Only create the true_dependency_cache if the
13044         average number of instructions in a basic block is very large.
13045
13046 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
13047
13048         * Makefile.in (ggc-common.o): Depend on genrtl.h.
13049         (ggc-simple.o): Likewise.
13050         (ggc-page.o): Likewise.
13051
13052 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
13053
13054         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
13055         Prototype for exported functions.
13056         (pre_lcm, pre_rev_lcm): Remove prototypes.
13057         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
13058         (compute_available): Move to lcm.c, and change parameter order.
13059         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
13060         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
13061         (gcse_main): No longer call compute_preds_succs.  Rebuild the
13062         set table after reach pre pass.
13063         (pre_insert_map, pre_delete_map, edge_list): New.
13064         (alloc_pre_mem): Allocate edge vectors.
13065         (free_pre_mem): Delete edge vectors.
13066         (compute_pre_data): Call new edge based lcm routines.
13067         (process_insert_insn): New function.
13068         (insert_insn_end_bb): Use it.
13069         (pre_edge_insert): New function.
13070         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
13071         needed.
13072         (pre_insert_copies): Revamp using new edge based lcm outputs.
13073         (pre_delete): Likewise.
13074         (one_pre_gcse_pass): Insert & remove fake edges to the exit
13075         block.
13076         (compute_code_hoist_vbeinout): New new edge based routines.
13077         * lcm.c: Remove all the old LCM functions.  Replace with new ones
13078         that work with the new cfg datastructures and work with edges
13079         instead of blocks.
13080
13081 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13082
13083         * reload.h (struct reload): Add new fields "mode" and "nregs".
13084         * reload1.c: Change all occurrences of reload_mode and reload_nregs
13085         to reference the "mode" and "nregs" field within struct reload.
13086
13087 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
13088
13089         * haifa-sched.c (true_dependency_cache): New.
13090         (add_dependence): Use the true dependency cache to avoid expensive
13091         walks down the LOG_LINKS dependency list.  Add entries to the
13092         cache as necessary.
13093         (remove_dependence): Remove entries from the true dependency cache
13094         as needed.
13095         (schedule_insns): Allocate and initialize and free the true
13096         dependency cache.
13097
13098         * haifa-sched.c (schedule_insns): Do not remove inter-block
13099         dependencies anymore.
13100
13101 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
13102
13103         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
13104         * i386/t-winnt: Likewise.
13105
13106 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
13107
13108         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
13109
13110 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
13111
13112         * Makefile.in (LANGUAGES): Omit "proto".
13113         (clean): Remove stale comment about removing unprotoize.c.
13114
13115 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13116
13117         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
13118         using arithmetic on void pointers.
13119
13120 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
13121
13122         * haifa-sched.c (compute_block_forward_dependencies): Only check
13123         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
13124
13125 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
13126
13127         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
13128         (expr_equiv_p): Reject memories with different alias sets.
13129
13130 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
13131
13132         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
13133         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
13134         (f_options): Add "bounded-pointers" and "bounds-check" entries.
13135         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
13136         (lang_init): Set default for flag_bounds_check if still "unspecified".
13137
13138 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13139
13140         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
13141
13142 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13143
13144         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
13145         instructions.
13146
13147 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13148
13149         * config/c4x/c4x.md (*db_noclobber,
13150         *decrement_and_branch_until_zero_noclobber): New patterns and
13151         associated splitters.
13152
13153 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13154
13155         * config/c4x/c4x.md (parallel instruction patterns): Rework
13156         constraints to keep reload happy.
13157
13158 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13159
13160         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
13161         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
13162         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
13163         Add new patterns and associated post-reload splitters.
13164
13165 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13166
13167         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
13168
13169 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13170
13171         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
13172         if appropriate.
13173         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
13174
13175 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13176
13177         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
13178         memory mode.
13179
13180 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
13181
13182         * pa.c (move_operand): Rely on memory_address_p to determine the
13183         validity of non-indexed memory addresses.
13184         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
13185         operand in DFmode and SFmode when generating PA2.0 code.
13186
13187 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
13188
13189         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
13190
13191 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
13192
13193         * mips.c (function_prologue): Fix argument types.
13194         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
13195         (casesi_internal): Write to the scratch register.
13196
13197 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
13198
13199         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
13200         to U_CHAR **.
13201         (parse_charconst): Delete unnecessary cast when calling
13202         cpp_parse_escape.
13203         (cpplib.h): Kill prototype of cpp_parse_escape.
13204
13205 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
13206
13207         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
13208         * unroll.c (unroll_loop): Cast return value of alloca.
13209         * i370/i370.c: Include function.h and toplev.h.
13210         (i370_label_scan): Remove c++ commented abort.
13211         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
13212         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
13213         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
13214         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
13215
13216 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
13217
13218         * config/t-freebsd: Do not override USER_H.
13219         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
13220
13221 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
13222                           Mumit Khan  <khan@xraylith.wisc.edu>
13223
13224         * c-parse.in (component_decl): Support anonymous struct/union.
13225         (%expect): Update.
13226         * c-parse.y: Regenerate.
13227         * c-parse.c: Likewise.
13228         * objc/objc-parse.y: Likewise.
13229         * objc/objc-parse.c: Likewise.
13230         * c-decl.c (finish_struct): Don't sort the fields.
13231         (field_decl_cmp): Delete unused function.
13232
13233 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
13234
13235         * sparc.md (movsf_const_intreg): Revert last constraint change.
13236         (movdf_const_intreg_sp32): Likewise.
13237
13238 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
13239
13240         * cse.c: Include hashtab.h instead of splay-tree.h
13241         (struct cse_reg_info): No longer use variant union.  Add new
13242         field "regno".  All references changed to avoid union.
13243         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
13244         (free_cse_reg_info): Remove.
13245         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
13246         (get_cse_reg_info): Revamp to use expandable hash tables instead
13247         of splay trees.  Initialize new fields in cse_reg_info structure.
13248         (new_basic_block): Similarly.
13249
13250 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
13251
13252         * genrecog.c (message_with_line): Prototype.
13253         (validate_pattern): Pass along the set for the dest, not a flag.
13254         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
13255         Check for PC/CC0 as sources.
13256         (nodes_identical): Check for children position match before
13257         allowing the combination.
13258
13259         * rtl.c (read_rtx): Track line number across \\\n.
13260
13261 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
13262
13263         * mips.h (SPECIAL_MODE_PREDICATES): New.
13264         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
13265         (movdi+1, movsi+1): Add output reload constraint.
13266         (casesi_internal): Likewise.  Fix commentary.
13267         (return_internal): Use pmode_register_operand.
13268
13269 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
13270
13271         * 1750a.md (movstrqi): Add missing output reload constraint.
13272         (call_value): Likewise.
13273         * a29k.md (cpxxx patterns): Add missing match_operator mode.
13274         (jmpfdec): Add missing inout reload constraint.
13275         * elxsi.md (addsi patterns): Add missing output reload constraint.
13276         (move from sp): Use @ alternates.
13277         (call_value): No constraint on output.
13278         * fr30.md (movsi_pop): Add missing output reload constraint.
13279         (movsf_constant_store): Likewise.
13280         (splits): Remove constraints.
13281         (subsi3): Add missing mode.
13282         * i370.md (cmpstrsi+1): Add missing output reload constraint.
13283         (call_value): Likewise.
13284         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
13285         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
13286         * m32r.md (movsicc_internal): Add output reload constraint.
13287         (movstrsi_internal): Add inout reload constraints.
13288         * m88k.h (reg_names): Don't declare.
13289         (SPECIAL_MODE_PREDICATES): New.
13290         * m88k.md (*): Use register_operand not reg_or_0_operand
13291         on destinations.
13292         * mn10200.h (PREDICATE_CODES): New.
13293         * ns32k.md (ffs pattern): Add output reload constraint.
13294         * pdp11.md (sob pattern): Add inout reload constraint.
13295         * sh.md (splits): Remove constraints.
13296         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
13297         * v850.md (pattern_is_ok_for_epilogue): Likewise.
13298         * vax.md (jgequ pattern): Add inout reload constraint.
13299
13300 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
13301
13302         * configure.in (djgpp): Revert previous patch.
13303         * configure: Rebuit.
13304         * config/i386/djgpp.h: Revert previous patch.
13305
13306 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
13307
13308         * fixinc/inclhack.def: Restore patch lost during last merge of
13309         "no_bogosity" branch.
13310         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
13311
13312 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
13313
13314         * fixincludes: Add a HPUX 11 fix for inttypes.h.
13315         * fixinc/inclhack.def: Same.
13316         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
13317
13318 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
13319
13320         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
13321         as the base of a PLUS.
13322
13323 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13324
13325         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
13326         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
13327
13328 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
13329
13330         * pa.md (post_stw+1): Use pmode_register_operand.
13331         (dcacheflush, icacheflush): Likewise.
13332
13333         * i386.md (movstricthi_1): Allow r/r.
13334
13335 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
13336
13337         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
13338         to (not (and (arg0) (arg1))). Similary for and.
13339
13340         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
13341         fallthrough to associate code.
13342         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
13343         bits in common.
13344
13345         * combine.c (simplify_logical): Convert XOR to IOR if operands have
13346         no bits in common; remove XOR to ROTATE conversion.
13347
13348 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13349
13350         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
13351
13352 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13353
13354         * config/c4x/c4x.c (dst_operand): New.
13355         (PREDICATE_CODES): Update.
13356         * config/c4x/c4x.h (dst_operand): Declare it.
13357         * config/c4x/c4x.md:  Define mode for each unspec usage.
13358         (move patterns):  Use dst_operand predicate instead of src_operand.
13359         (movqi_update, movqf_update): Delete.
13360
13361 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
13362
13363         * recog.c (pmode_register_operand): New.
13364         * recog.h: Declare it.
13365         * genrecog.c (pred_codes): Likewise.
13366         (special_mode_pred_table): Likewise.
13367         (validate_pattern): Don't warn no mode for address_operand.
13368
13369         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
13370         if the operand is not insn-like.
13371
13372 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
13373                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
13374
13375         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
13376
13377 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
13378
13379         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
13380         instead of general_operand in a SET_DEST.  Use const_double_operand
13381         instead of an explicit test against CONST_DOUBLE.
13382         (movsf_const_lo): Add missing register mode.
13383         (goto_handler_and_restore): Add auxiliary test for Pmode.
13384         (flush): Adjust to use address_operand.
13385         (return_sf_no_fpu): Add missing output constraint.
13386
13387 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
13388
13389         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
13390         for call return value.
13391         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
13392
13393 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
13394
13395         * toplev.c (main): Only warn about options for other languages.
13396         * collect2.c (main): Pass -w to sub-gcc.
13397
13398 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
13399
13400         * flow.c (propagate_block): Add call-clobbered registers to
13401         significant too.
13402
13403         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
13404         zapping mem_set_list.
13405         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
13406         (mark_set_1, mark_used_regs): Likewise.
13407
13408 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
13409
13410         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
13411
13412 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13413
13414         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
13415         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
13416         options. Also add a new item "C-only Warning Options" to the
13417         option summary.
13418
13419 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
13420
13421         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
13422         from multiple calls.
13423
13424 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
13425
13426         * i386.md (call value patterns): Move to the end of the file.
13427         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
13428
13429 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
13430
13431         * configure.in (djgpp configuration): Define extra_objects..
13432         * configure: Rebuilt.
13433         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
13434         (DTORS_SECTION_ASM_OP): Define.
13435         (INIT_SECTION_ASM_OP): Define.
13436         (FINI_SECTION_ASM_OP): Define.
13437         (DATA_SECTION_ASM_OP): Define.
13438         (TEXT_SECTION_ASM_OP): Define.
13439         (EH_FRAME_SECTION_ASM_OP): Define.
13440         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
13441         (STARTFILE_SPEC): Add crtbegin.o.
13442         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
13443         to here from LINK_COMMAND_SPEC.
13444         (DO_GLOBAL_CTORS_BODY): Define.
13445         (CRTSTUFF_USE_FINI_SECTION): Define
13446         (HAS_INIT_SECTION): Delete.
13447
13448 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
13449
13450         * Makefile.in (all.cross): Depend on xcpp$(exeext).
13451
13452 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
13453
13454         * pa.h (PREDICATE_CODES): New.
13455
13456         * genrecog.c (validate_pattern): Condense the destination
13457         non-lvalue message.
13458
13459 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
13460
13461         * alpha.md (call-1): Supply missing mode for operator.
13462         (*): Add missing output reload constraints.  Remove constraints
13463         from define_splits.
13464
13465         * i386.h (SPECIAL_MODE_PREDICATES): New.
13466         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
13467         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
13468         (addsi_lea_3): Add missing mode for op 3.
13469         (prologue_set_got, prologue_get_pc): Add missing modes.
13470         (*) Add missing output reload constraints.
13471
13472 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
13473
13474         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
13475         check for member bit-size overflow and use var_size if it occurs.
13476         (layout_record): Use bitsize_int() to define the type size in bits.
13477         Likewise for computation and assignment to DECL_FIELD_BITPOS.
13478         (layout_decl): Likewise when assigning to DECL_SIZE.
13479
13480 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
13481
13482         * genrecog.c (validate_pattern): Typo last change.  Verify
13483         that output operands have output reloads.
13484
13485 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
13486
13487         * genrecog.c (special_mode_pred_table): New.
13488         (NUM_SPECIAL_MODE_PREDS): New.
13489         (find_operand): New.
13490         (validate_pattern): New argument `insn'.  Warn for assignment to
13491         any predicate accepting non-lvalues.  Conditionaly warn for
13492         match_operand without a mode.  Try much harder to match source
13493         and destination modes on a set.
13494         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
13495
13496 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
13497
13498         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
13499
13500 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
13501
13502         * combine.c (simplify_logical): Recognize xor pattern that encodes
13503         rotation.
13504
13505 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13506
13507         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
13508         alignment.
13509
13510 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
13511
13512         * ggc-page.c (MAP_FAILED): Provide default.
13513
13514 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
13515
13516         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
13517         * sparc.h (PREDICATE_CODES): Update.
13518
13519 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
13520
13521         * alpha.c (some_ni_operand): New.
13522         * alpha-protos.h: Declare it.
13523         * alpha.h (PREDICATE_CODES): Update.
13524         * alpha.md (sXaddq reload insns): Use some_ni_operand
13525         for SET_DEST instead of some_operand.
13526
13527 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
13528                           Jim Wilson  <wilson@cygnus.com>
13529
13530         * genrecog.c (maybe_both_true_2): Don't compare modes of
13531         two DT_pred tests.
13532         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
13533         after find_afterward.
13534         (debug_decision_1): Dump next and afterward codes.
13535
13536 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
13537
13538         * rtl.c (dump_and_abort): Remove.
13539         (fatal_with_file_and_line): New.
13540         (fatal_expected_char): New.
13541         (read_rtx_lineno, read_rtx_filename): New.
13542         (read_skip_spaces): Track line number.
13543         (read_name): Use fatal_with_file_and_line.
13544         (read_rtx): Use fatal_expected_char.  Track line number.
13545         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
13546
13547         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
13548         if it isn't a CODE_LABEL.
13549
13550         * genattr.c (main): Set read_rtx_filename.
13551         * genattrtab.c (main): Likewise.
13552         * gencodes.c (main): Likewise.
13553         * genconfig.c (main): Likewise.
13554         * genemit.c (main): Likewise.
13555         * genextract.c (main): Likewise.
13556         * genflags.c (main): Likewise.
13557         * genopinit.c (main): Likewise.
13558         * genoutput.c (main): Likewise.
13559         * genpeep.c (main): Likewise.
13560
13561         * genrecog.c (decision_test.u.insn): Add `lineno'.
13562         (pattern_lineno, error_count): New variables.
13563         (message_with_line): New.
13564         (add_to_sequence): Break out checking code to ...
13565         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
13566         (merge_insn): Use message_with_line.
13567         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
13568         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
13569
13570 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13571
13572         * expr.c (store_constructor): Clear union if constructor is empty.
13573
13574 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
13575
13576         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
13577         Add !endian checks.  Change %{...} to %(...).
13578
13579 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
13580
13581         * i386.md (*addsi3_cc): Renamed from addcsi3.
13582         (*addsi3_carry): Renamed from addxsi3.
13583         (*subsi3_cc): Renamed from subcsi3.
13584         (*subsi3_carry): Renamed from subxsi3.
13585         (*xorqi_cc_1): Renamed from xorcqi_1.
13586         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
13587         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
13588
13589 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
13590
13591         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
13592         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
13593
13594 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
13595
13596         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
13597         climb up the chain of insns.
13598
13599 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
13600
13601         * genrecog.c (write_subroutine): Careful for null trees.
13602         (process_tree): Don't elide empty functions.
13603
13604 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
13605
13606         * Makefile.in (genrtl.o): Depend on ggc.h.
13607         * configure.in (valloc): Probe for it.
13608         (with-gc): Use ggc-page if valloc present.
13609         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
13610         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
13611         (ggc_alloc_string): Moved from ggc-page.c.
13612         * ggc-none.c (ggc_alloc_obj): New.
13613         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
13614         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
13615         (struct globals): Likewise for dev_zero_fd.
13616         (init_ggc): Likewise for it's initialization.
13617         (ggc_allocated_p): Move careful dereference from ...
13618         (ggc_lookup_page_table): ... here.  Delete.
13619         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
13620         (alloc_anon): Use valloc if no mmap.
13621         (release_pages): Use free if using valloc.
13622         (ggc_alloc_obj): Renamed from alloc_obj.
13623         (ggc_set_mark): Renamed from mark_obj.
13624         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
13625         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
13626         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
13627         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
13628         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
13629         (ggc_collect): Use fp printing instead of our own rounding.
13630         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
13631         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
13632         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
13633         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
13634         (struct ggc_string, struct ggc_any): Delete.
13635         (offsetof): Provide default definition.
13636         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
13637         (PTR_KEY): New.
13638         (struct ggc_mem): New, from corpse of ggc_any.
13639         (struct ggc_status): Delete.
13640         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
13641         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
13642         (n_strings_collected, n_anys_collected): Delete.
13643         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
13644         (ggc_alloc_string, ggc_alloc): Delete.
13645         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
13646         (ggc_free_string, ggc_free_any): Delete.
13647         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
13648         (ggc_compare_addresses, ggc_mark_string): Delete.
13649         (ggc_mark_string_if_gcable, ggc_mark): Delete.
13650         (search_data): Delete.
13651         (struct globals): New.
13652         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
13653         (tree_insert, tree_lookup): New.
13654         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
13655         (clear_marks, sweep_objs): New.
13656         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
13657         (init_ggc): Set allocated_last_gc.
13658         (ggc_push_context): Gut.  Use G.context.
13659         (ggc_pop_context): Likewise.
13660         (ggc_pop_context_1): New.
13661         (debug_ggc_tree): New.
13662         (debug_ggc_balance, tally_leaves): New.
13663         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
13664         (ggc_mark_string_if_gcable): Remove decl.
13665         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
13666         (ggc_mark_rtvec_children): New.
13667         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
13668         (ggc_mark_if_gcable): New decl.
13669         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
13670         (ggc_alloc_tree, ggc_alloc): Likewise.
13671         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
13672         (ggc_alloc_obj): New decl.
13673         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
13674         (ggc_alloc_tree, ggc_alloc): Likewise.
13675         (ggc_set_mark): New decl.
13676         * rtl.h (struct rtx_def): Remove gc_mark.
13677         (struct rtvec_def): Likewise.
13678         * tree.h (struct tree_common): Likewise.
13679
13680 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
13681
13682         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
13683         float_format and thread_file definitions.
13684         * configure: Rebuilt.
13685
13686 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
13687
13688         * extend.texi (Function Names): Document types of function names.
13689
13690 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13691
13692         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
13693         an earlyclobbered output conflict with RELOAD_INPUT reloads.
13694
13695 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13696
13697         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
13698
13699 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13700
13701         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
13702
13703 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
13704
13705         * collect2.c (main): Do prelimnary link on AIX if rflag.
13706
13707 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13708
13709         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
13710         __CTOR_LIST__ in opposite order, which is the correct order for sorted
13711         constructors.
13712         (__do_global_dtors): similarly for __DTOR_LIST__.
13713
13714 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13715                                 Diego Novillo <dnovillo@cygnus.com>
13716
13717         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
13718         FPUL_REGS.
13719
13720 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
13721
13722         * fixincl/*: Merged "no_bogosity" branch
13723         * fixincl/fixlib.h: protect against doubly defining t_bool
13724         * fixincl/server.h: protect against doubly defining t_bool
13725
13726 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
13727
13728         * genoutput.c: Include toplev.h.
13729
13730 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
13731
13732         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
13733         Undef.
13734         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
13735         * configure: Regenerate.
13736
13737 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
13738
13739         * gcse.c (delete_null_pointer_checks): Returns void.
13740
13741 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13742
13743         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
13744         * emit-rtl.c (copy_insn_1): Likewise.
13745
13746 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
13747
13748         * config/mips/mips.c (mips_build_va_list): Correct
13749         TREE_CHAIN setting when hard-float.
13750         (mips_va_start): Use corrected setting.
13751         (mips_va_arg): Likewise.  Also pass a tree to build of
13752         POSTINCREMENT_EXPR rather than a naked 'int'.
13753
13754 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
13755
13756         * ggc.h (ggc_push_context): Fix comment.
13757         (ggc_pop_context): Likewise.
13758         (mark_string_if_gcable): Likewise.
13759         * ggc-common.c (ggc_mark_rtx_children): Use
13760         ggc_mark_string_if_gcable.
13761         * ggc-page.c (ggc_lookup_page_table): New function.
13762         (ggc_allocated_p): Likewise.
13763         (mark_obj): Fix formatting.
13764         (ggc_mark_string_if_gcable): New function.
13765         * ggc-simple.c (ggc_allocated_strings): New variable.
13766         (ggc_strings_used): Likewise.
13767         (ggc_compare_addresses): New function.
13768         (ggc_pop_context): Pop the `any' memory too.
13769         (ggc_mark_string_if_gcable): New function.
13770         (ggc_collect): Initialize and tear down ggc_allocated_strings.
13771
13772 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
13773
13774         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
13775         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
13776         * rs6000.c (expand_block_move): Match movstrsi_?reg register
13777         changes.
13778
13779 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
13780
13781         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
13782         (sched_reg_live_length, sched_reg_basic_block): Delete.
13783         (current_block_num, bb_live_regs, old_live_regs): Delete.
13784         (dead_notes, struct sometimes): Delete.
13785         (sched_note_set, birthing_insn_p): Delete.
13786         (adjust_priority): Gut useless reg lifetime code.
13787         (create_reg_dead_note, attach_deaths): Delete.
13788         (attach_deaths_insn, new_sometimes_live): Delete.
13789         (finish_sometimes_live): Delete.
13790         (find_pre_sched_live, find_post_sched_live): Delete.
13791         (update_reg_usage): Delete.
13792         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
13793         (schedule_insns): Delete reg lifetime code.
13794         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
13795         (unlink_other_notes): Adjust REG_NOTE commentary.
13796         (reemit_notes): Use REG_SAVE_NOTE.
13797         (schedule_block): Likewise.
13798         (schedule_region): Allocate bitmap of blocks in region.  Use
13799         count_or_remove_death_notes.  Use update_life_info.
13800
13801         * rtl.h (REG_SAVE_NOTE): New.
13802         * rtl.c (reg_note_name): Update.
13803
13804 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
13805
13806         * combine.c (refresh_blocks, need_refresh): New.
13807         (combine_instructions): Allocate refresh_blocks.  Invoke
13808         update_life_info if needed.
13809         (distribute_notes): Mark refresh_blocks instead of installing
13810         USE insns.
13811         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
13812         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
13813
13814         * Makefile.in (recog.o): Depend on basic-block.h.
13815
13816 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
13817
13818         * genrecog.c (add_to_sequence): Thinko last change: delete
13819         shadowing allow_const_int variable.
13820
13821 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13822
13823         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
13824         __GNUC__ and __GNUC_MINOR__.
13825
13826         * gansidecl.h: Likewise.
13827
13828         * rtl.c: Likewise.
13829
13830         * rtl.h: Likewise.
13831
13832         * toplev.h: Likewise.
13833
13834         * tree.c: Likewise.
13835
13836         * tree.h: Likewise.
13837
13838         * varray.c: Likewise.
13839
13840         * varray.h: Likewise.
13841
13842 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13843
13844         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
13845         use one before a jump table.
13846
13847         * rtl.def (ADDRESS): Change documentation to match reality.
13848         * md.texi: Don't document it.
13849         * gmicro.md (load address pattern): Use 'p' constraint, delete use
13850         of ADDRESS rtx.
13851
13852         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
13853
13854 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
13855
13856         * genrecog.c (add_to_sequence): Move allow_const_int test outside
13857         known predicate block; default allow_const_int true.
13858         (debug_decision_list): New.
13859
13860 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
13861
13862         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
13863
13864 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
13865
13866         * gcse.c (gcse_main): Avoid global optimizations if we have a
13867         large number of basic blocks and the ratio of edges to blocks
13868         is high.
13869         (delete_null_pointer_checks): Likewise.
13870
13871 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
13872
13873         * c-common.c (check_format_info): Warn if format string isn't a
13874         string literal.
13875
13876 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13877
13878         * configure.in (arm*-*-*): Don't let autoconf remove brackets
13879         * configure: regenerate
13880
13881 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
13882
13883         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
13884         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
13885         (peepholes): Re-enable.
13886
13887 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
13888
13889         * Makefile.in (flow.o): Depend on TREE_H.
13890         * basic-block.h (REG_SET_EQUAL_P): New.
13891         (XOR_REG_SET): New.
13892         (n_edges): Declare.
13893         (free_regset_vector): Remove declaration.
13894         (flow_delete_insn_chain): Declare.
13895         (enum update_life_extent): New.
13896         (update_life_info, count_or_remove_death_notes): Declare.
13897         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
13898         Verify register live at bb->global_live_at_start before adding USE.
13899         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
13900         (CLEAN_ALLOCA): New.
13901         (n_edges): New.
13902         (PROP_*): New flags.
13903         (find_basic_blocks_1): Use alloc_EXPR_LIST.
13904         (clear_edges): Zero n_edges.
13905         (make_edge): Increment n_edges.
13906         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
13907         (flow_delete_insn_chain): Export.
13908         (delete_block): Decrement n_edges.
13909         (merge_blocks_nomove): Likewise.
13910         (life_analysis): Give life_analysis_1 PROP flags.
13911         (verify_wide_reg_1, verify_wide_reg): New.
13912         (verify_local_live_at_start): New.
13913         (update_life_info): Rewrite to call into propogate_block.
13914         (mark_reg): New.
13915         (mark_regs_live_at_end): After reload, if epilogue as rtl,
13916         always mark stack pointer.  Conditionally mark PIC register.
13917         After reload, mark call-saved registers, return regsiters.
13918         (life_analysis_1): Accept PROP flags not remove_dead_code.
13919         Call mark_regs_live_at_end before zeroing regs_ever_live.
13920         Use calculate_global_regs_live.  Copy global_live_at_end before
13921         calling final propagate_block.  Zero reg_next_use on exit.
13922         (calculate_global_regs_live): New.
13923         (allocate_bb_life_data): Don't allocate bb->local_set.
13924         (init_regset_vector, free_regset_vector): Remove.
13925         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
13926         Test flags before every operation.  Warn if prologue/epilogue insn
13927         would have been deleted.
13928         (mark_set_regs, mark_set_1): Accept and use FLAGS.
13929         Use alloc_EXPR_LIST.
13930         (mark_used_regs): Accept and use FLAGS, not FINAL.
13931         Remove special handling for RETURN.
13932         (try_pre_increment): Use alloc_EXPR_LIST.
13933         (dump_flow_info): Dump n_edges.
13934         (unlink_insn_chain, split_hard_reg_notes): Remove.
13935         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
13936         (find_insn_with_note, new_insn_dead_notes): Remove.
13937         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
13938         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
13939         (replace_insns): Remove.
13940         (count_or_remove_death_notes): New.
13941         (verify_flow_info): Abort on error after all checks.
13942         (remove_edge): Decrement n_edges.
13943         (remove_fake_edges): Tweek format.
13944         * haifa-sched.c (schedule_insns): Use split_all_insns.
13945         * output.h (update_life_info): Remove declaration.
13946         * recog.c (split_all_insns): From the corpse of split_block_insns,
13947         do the whole function block by block.  Use update_life_info.
13948         (recog_last_allowed_insn): New.
13949         (recog_next_insn): Mind it.
13950         (peephole2_optimize): Set it.  Walk backwards through blocks.
13951         Use update_life_info.
13952         * rtl.h (update_flow_info, replace_insns): Remove declarations.
13953         (split_all_insns): Declare.
13954         * toplev.c (rest_of_compilation): Thread prologue before flow2.
13955         Use split_all_insns.
13956
13957         * i386.md (or -1 peep2s): Disable.
13958
13959 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
13960
13961         * config/mips/mips.md (movstrsi+[123]) : Combine these into
13962         a single pattern.  Scrap the 'd' versions as unnecessary.
13963
13964         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
13965         tablejump_mips162,tablejump_internal4): The operands to a
13966         label_ref must be VOIDmode.
13967
13968 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13969
13970         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
13971
13972 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
13973
13974         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
13975
13976 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
13977
13978         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
13979         cache every function if ggc_p.
13980
13981 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13982
13983         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
13984         instead of copy_rtx.  Accept sequences that contain asm statements.
13985         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
13986         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
13987         orig_asm_operands_vector, copy_asm_operands_vector,
13988         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
13989         variables.
13990         * rtl.h (copy_insn, copy_insn_1): Declare.
13991
13992 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13993
13994         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
13995
13996         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
13997         arguments to `current_file_function_operand'.
13998
13999         * genrecog.c: Include hard-reg-set.h and resource.h in the
14000         generated output file.
14001
14002         * real.c: Include tm_p.h.
14003
14004 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14005
14006         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
14007         output operand.
14008
14009 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
14010
14011         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
14012         before the fctiwz insn.
14013
14014 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14015                           Mark Mitchell  <mark@codesourcery.com>
14016
14017         * tree.c (make_lang_type_fn): New funtion pointer.
14018         (make_lang_type): Call it.
14019         * tree.h (make_lang_type): Declare.
14020         (make_lang_type_fn): Likewise.
14021         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
14022
14023 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
14024
14025         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
14026         make sure that HIGH instructions are copied into BASE_REGS.
14027
14028 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
14029
14030         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
14031
14032 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
14033
14034         * c-decl.c (finish_struct): Use simpler method of
14035         removing elements of a singly-linked list.
14036
14037 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
14038
14039         * alpha.md (peephole2's): Comment out peephole2's that generate
14040         buggy code.
14041
14042 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
14043
14044         * genrecog.c (add_to_sequence): Disable mode check for
14045         wildcard matches.
14046
14047 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14048
14049         * ggc-simple.c (init_ggc): Set empty_string.
14050
14051 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
14052
14053         * configure.in: Detect mmap.  Add --with-gc=foo to select
14054         garbage collector; default to page if mmap available.
14055         * Makefile.in (GGC): Substitute.
14056
14057 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
14058
14059         * c-decl.c (ggc_p): Enable.
14060
14061 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14062
14063         * flow.c (verify_flow_info): Make it extern & unconditionally define.
14064
14065 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
14066
14067         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
14068         string for little-endian-data.
14069
14070 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
14071
14072         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
14073         case somebody tries to compile --enable-checking code with gcc
14074         1.34 or such.
14075
14076 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
14077
14078         * genrecog.c (add_to_sequence): Verify operand to label_ref is
14079         VOIDmode.
14080
14081 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
14082
14083         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
14084         * jump.c (jump_optimize_1): Document why.
14085
14086 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14087
14088         * collect2.c (scan_prog_file, scan_libraries): Prototype function
14089         pointers and casts for `int_handler' and `quit_handler'.
14090
14091         * flow.c (verify_flow_info, split_hard_reg_notes,
14092         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
14093         remove_edge, remove_fake_successors): Add static prototypes.
14094         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
14095         (mark_set_1): Initialize variable `regno'.
14096         (unlink_insn_chain): Likewise for variable `curr'.
14097         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
14098
14099         * loop.c (strength_reduce): Initialize variable
14100         `unrolled_insn_copies'.
14101         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
14102         prototypes.  Change these functions to take const PTR parameters
14103         to avoid prototype conflict when used as the comparson argument
14104         for qsort.
14105         (check_dbra_loop): Initialize variable `comparison_val'.
14106
14107         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
14108         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
14109         (find_valid_class): Initialize variable `best_class'.
14110         (find_reloads): Call memcpy, not bcopy.
14111
14112         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
14113         (hard_reg_use_compare): Don't needlessly cast away const.
14114         (reload_reg_class_lower): Likewise.
14115         (choose_reload_regs): Initialize variable `regno'.
14116
14117 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
14118
14119         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
14120
14121 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
14122
14123         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
14124         ({,d}discard): Add forward declarations.  Declare parameter as
14125         unused.
14126         (main_without_main): Explicitly declare return type to be int.
14127         (memcpy): Properly declare.
14128
14129         * libgcc2.c (toplevel): If inhibit_libc is defined and not
14130         building the trampoline support, declare malloc, free, and
14131         atexit.
14132         (__clear_cache): Mark arguments as potentially unused.
14133
14134         * frame.c (toplevel): If inhibit_libc is defined, declare
14135         malloc and free.
14136
14137 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
14138
14139         * flow.c (make_edge): Accept an optional 2D bitmap in which
14140         to cache edge existence.  Update all callers.
14141         (make_label_edge, make_eh_edge): Pass through the edge cache.
14142         (make_edges): Provide the cache.
14143
14144 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14145
14146         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
14147         a char*.
14148         (local_mbtowc): Change the type of variable `i' from int to size_t.
14149
14150         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
14151         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
14152
14153 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
14154
14155         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
14156         after other includes that define the appropriate types.  Include
14157         tm_p.h for getting user prototypes.
14158         * ggc-callbacks.c (toplevel): Ditto.
14159         * ggc-none.c (toplevel): Ditto.
14160         * gcc-page.c (toplevel): Ditto.
14161         * ggc-simple.c (toplevel): Ditto.
14162
14163 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
14164                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
14165
14166         * config/mips/mips.c (mips_move_2words): Split doubles if
14167         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
14168
14169 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
14170
14171         * genrecog.c (struct decision_test): New.
14172         (struct decision): Remove test-related members, sort the rest by size.
14173         (IS_SPLIT): Simplify.
14174         (new_decision, new_decision_test): New.
14175         (add_to_sequence): Use them.  No special handling for args of
14176         non-MATCH codes.
14177         (maybe_both_true): Renamed from not_both_true; return sense changed.
14178         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
14179         of maybe_both_true and adjusted for decision_test.
14180         (position_merit): Remove.
14181         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
14182         (merge_accept_insn): New, broken out of merge_trees.
14183         (merge_trees): Use them.  No special case for c_test; no node
14184         splitting; use test type instead of position_merit.
14185         (factor_tests): New.
14186         (simplify_tests): New.
14187         (break_out_subroutines): Don't write code now.
14188         (find_afterward): New.
14189         (write_afterward, write_switch, write_cond): New.
14190         (write_action, is_unconditional): New.
14191         (write_node): New.  Use them.
14192         (write_tree_1): Rewrite.  Use the new functions above.
14193         (write_tree): Remove afterward processing.
14194         (write_subroutine): Simplify function variant emission.
14195         (write_subroutines): New.
14196         (same_codes, clear_codes): Remove.
14197         (same_modes, clear_modes): Remove.
14198         (write_header): New, broken out of main.
14199         (make_insn_sequence): Use new_decision and new_decision_test.
14200         (process_tree): New, broken out of main.
14201         (main): Adjust for merge_trees interface change.
14202         Don't #define operands in the output file.
14203         (record_insn_name): New, broken out of make_insn_sequence.
14204         (debug_decision_2, debug_decision_1, debug_decision_0): New.
14205         (debug_decision): New.
14206
14207 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
14208
14209         * resource.c (find_free_register): Mark class_str argument const.
14210         * resource.h: Update prototype to match.
14211
14212         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
14213         * i386.md: Give all anonymous insns names.
14214
14215 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
14216
14217         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
14218         blocks.
14219
14220 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
14221
14222         * toplev.c (dbr_sched_time): Unconditional.
14223         (peephole2_time): New.
14224         (compile_file): Add pass numbers to all of the dump file suffixes.
14225         Dump peephole2_time.  Don't dump times for non-applicable passes.
14226         (rest_of_compilation): Add pass numbers to dump file suffixes.
14227         Conditionalize calls to the scheduler.
14228         * invoke.texi: Update.
14229
14230 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
14231
14232         * flow.c (make_edges): Fix insn iteration.
14233         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
14234         (find_basic_blocks_1): Fix spelling mistake.
14235
14236 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
14237
14238         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
14239         always have side-effects.  Use memset not bzero.
14240         (make_node): Likewise.
14241
14242 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
14243
14244         * stmt.c (expand_anon_union_decl): When any of the elements of the
14245         union is addressable, so is the entire union.
14246
14247 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
14248
14249         * sbitmap.c (sbitmap_ones): Don't set too many bits.
14250
14251         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
14252         * bitmap.c (bitmap_operation): Return true iff TO changed.
14253         (bitmap_equal_p): New.
14254         (bitmap_bit_p): Tidy arithmetic.
14255         (debug_bitmap_file): Likewise.
14256
14257 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
14258
14259         * toplev.c (rest_of_compilation): Turn on cse_not_expected
14260         before cse2 instead of after.
14261
14262 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
14263
14264         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
14265         register offsets.
14266
14267 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14268
14269         * cppinit.c (is_idchar initializer): Loosen tests to accept
14270         gcc 2.>6 and >2.
14271
14272 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
14273
14274         * mips.md: Define conditional move patterns for floating point
14275         operands and DI mode conditions.
14276
14277 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
14278
14279         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
14280         always have side-effects.
14281
14282 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
14283
14284         * mn10200.c (asm_file_start): Fix typo.
14285
14286         * cppinit.c (is_idchar initializer): Tighten tests for when
14287         to put the table into initialized memory.
14288
14289         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
14290         not an array of rtunion.
14291         * gcc-page.c (ggc_alloc_rtvec): Similarly.
14292         * gcc-simple (ggc_free_rtvec): Similarly.
14293
14294         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
14295         of rtunions.
14296
14297         * mbchar.h: Add missing #endif.
14298
14299         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
14300         (FPBIT, DPBIT): Define.
14301
14302 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14303
14304         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
14305
14306         * profile.c (instrument_arcs, output_gcov_string,
14307         tablejump_entry_p): Add static prototypes.
14308         (output_gcov_string): Constify a char*.
14309
14310         * regmove.c (replacement_quality, fixup_match_2): Add static
14311         prototypes.
14312
14313         * resource.h (reg_dead_p): Add extern prototype.
14314
14315         * rtl.c (trim_filename): Add static prototype.
14316
14317         * scan-decls.c (skip_to_closing_brace): Likewise.
14318
14319         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
14320         (expand_end_case): Initialize variable `range'.
14321         (emit_case_nodes): Remove unused prototype `rtx_fn'.
14322
14323         * varasm.c (asm_emit_uninitialised): Add static prototype.
14324         (asm_emit_uninitialised, assemble_variable): Mark parameter with
14325         ATTRIBUTE_UNUSED.
14326
14327 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14328
14329         * cpplib.c (if_directive_nameo): Add static prototype.
14330
14331         * cse.c (cse_insn): Remove unused variable `p'.
14332
14333         * except.c (create_rethrow_ref, push_entry,
14334         receive_exception_label, new_eh_region_entry, find_func_region,
14335         clear_function_eh_region, process_nestinfo): Add static prototypes.
14336         (get_reg_for_handler): Hide definition.
14337         (process_nestinfo): Initialize variable `extra_handlers'.
14338
14339         * expr.h (expand_builtin_longjmp): Add extern prototype.
14340
14341         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
14342
14343         * function.c (prepare_function_start): Likewise.
14344         (pop_function_context_from): Mark parameter `context' with
14345         ATTRIBUTE_UNUSED.
14346         (push_temp_slots_for_block, flush_addressof): Hide definition.
14347
14348         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
14349         solve_program_flow_graph, calculate_branch_probs,
14350         function_summary, main, fancy_abort): Add prototypes.
14351
14352         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
14353         (add_hash): Constify a char*.
14354
14355         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
14356         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
14357         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
14358
14359         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
14360
14361         * lists.c (free_list, zap_lists): Likewise.
14362
14363 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14364
14365         * alias.c (nonlocal_reference_p): Add static prototype.
14366
14367         * bitmap.c (bitmap_element_allocate): Prototype args in function
14368         pointer cast.
14369
14370         * builtins.c (stabilize_va_list): Add static prototype.
14371         (expand_builtin_va_arg): Constify a char*.
14372
14373         * c-lex.c (getch, put_back, extend_token_buffer_to,
14374         read_line_number, token_getch, token_put_back): Add static
14375         prototypes.
14376
14377         * c-parse.gperf (hash, is_reserved_word): Likewise.
14378
14379         * cccp.c (is_dir_separator): Likewise.
14380
14381 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14382
14383         * graph.h: New file to prototype functions exported by graph.c.
14384
14385         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
14386
14387         * graph.c: Include graph.h.
14388
14389         * toplev.c: Likewise.  Remove redundant prototypes.
14390
14391 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
14392
14393         * invoke.texi: Removed duplicated description for -Q.
14394
14395 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
14396
14397         * extend.texi: Grammar fix in __extension__ text.
14398
14399 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
14400
14401         * md.texi (define_peephole2): New section.
14402
14403 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
14404
14405         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
14406         (mov $-1 to or peepholer): Enable for pentium when optimizing for
14407         speed.
14408
14409 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
14410
14411         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
14412
14413 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
14414
14415         * i386.md (ffs expander): Emit Pentium friendly code for
14416         TARGET_PENTIUM.
14417
14418 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
14419
14420         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
14421         for non-trees.
14422         (build1): Likewise.
14423
14424 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14425
14426         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
14427
14428 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
14429
14430         * config/m68k/m68k.c (use_return_insn): Return false if the pic
14431         register is in use.
14432
14433 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14434
14435         * md.texi (No Constraints): Delete section.
14436         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
14437         * final.c (final_scan_insn): We always have register constraints.
14438         * genattrtab.c: Don't include "insn-config.h".
14439         (write_attr_case): We always have register constraints.
14440         * genconfig.c (register_constraint_flag): Delete.
14441         (walk_insn_part): Don't check whether we have register constraints.
14442         (main): Don't write out "#define REGISTER_CONSTRAINTS".
14443         * genoutput.c (have_constraints): Delete.
14444         (main): Don't set it.
14445         (output_operand_data): We always have constraints.
14446         (scan_operands): Likewise.
14447         (compare_operands): Likewise.
14448         * local-alloc.c (block_alloc): We always have constraints.
14449         (requires_inout): Always compile this function.
14450         * recog.c (extract_insn): We always have constraints.
14451         (constrain_operands, reg_fits_class_p): Always compile these
14452         functions.
14453         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
14454         fields.
14455         (struct insn_operand_data): Likewise.
14456         * regclass.c (regclass): We always have constraints.
14457         (record_reg_classes, copy_cost, record_address_regs,
14458         auto_inc_dec_reg_p): Always compile these functions.
14459         * regmove.c (regmove_optimize): We always have constraints.
14460         * reload.c (find_reloads): Likewise.
14461         * reload1.c (reload): Likewise.
14462         (reload_cse_simplify_operands): Likewise.
14463         * i860.c (output_delay_insn): Likewise.
14464
14465 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
14466
14467         * iris6.h (BUILD_VA_LIST_TYPE): Define.
14468
14469 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14470
14471         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
14472         for the va_list record.
14473
14474 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
14475
14476         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
14477         prologues.
14478
14479 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
14480
14481         * alias.c: Include insn-flags.h.
14482         * Makefile.in (alias.o): Update.
14483
14484 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
14485
14486         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
14487         to LTU and GEU.  Handle more cases using sbb.
14488
14489 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
14490
14491         * i386.md (truncatexfdf splitters): Do not use subreg.
14492         (fop XFmode patterns): Fix mode in operand testing.
14493
14494 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
14495
14496         * jump.c (jump_optimize_1): Amend last change to test only the
14497         form of the operand, not the insn.
14498
14499         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
14500         not register_operand to determine when B may need preloading.
14501
14502 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
14503
14504         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
14505         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
14506         (call-value patterns): Move to end of file.
14507         (*): Remove mode from label_ref in (pc) context.
14508         (movstrqi): Use memory not general_operand for BLKmode operands.
14509         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
14510         to register_operand operands.
14511         (peep2 patterns): Convert from commented-out peephole patterns.
14512
14513 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14514
14515         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
14516         to BUILT_IN_INIT_DWARF_REG_SIZES.
14517         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
14518         Renamed from BUILT_IN_DWARF_REG_SIZE; call
14519         expand_builtin_init_dwarf_reg_sizes.
14520         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
14521         with __builtin_init_dwarf_reg_size_table.
14522         * dwarf2out.c (struct reg_size_range): Delete.
14523         (expand_builtin_init_dwarf_reg_sizes): New function.
14524         (expand_builtin_dwarf_reg_size): Delete.
14525         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
14526         (expand_builtin_dwarf_reg_size): Don't declare.
14527         * libgcc2.c (dwarf_reg_size_table_initialized): New.
14528         (dwarf_reg_size_table): New.
14529         (init_reg_size_table): New function.
14530         (copy_reg): Use dwarf_reg_size_table.
14531         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
14532         before use.
14533
14534 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
14535
14536         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
14537         Correctly build argument list to constructor and destructor functions.
14538
14539 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
14540
14541         * c-tree.h (warn_float_equal): Declare.
14542         * c-decl.c (warn_float_equal): Define.
14543         (c_decode_option): Recognize -W[no-]float-equal.
14544         * c-typeck.c (build_binary_op): Conditionally warn
14545         about equality tests of floating point types.
14546         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
14547         * invoke.texi: Add docs for -Wfloat-equal warning.
14548
14549 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
14550
14551         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
14552         generating RTL directly.
14553         * mips.h (INIT_TARGET_OPTABS): Likewise.
14554         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
14555
14556         * expr.h (init_mov_optab): Delete declaration
14557
14558         * h8300.c (WORD_REG_USED): Update to avoid useless register
14559         saves in interrupt functions and functions which never return.
14560
14561         * cse.c (struct set): Delete inner_dest_loc field.
14562         (cse_insn): Remove assignments to inner_dest_loc field.
14563
14564 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
14565
14566         * ggc-page.c: Don't include <unistd.h> etc taken care of
14567         by "system.h".  Include <sys/mman.h> afterward.
14568
14569 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
14570
14571         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
14572         ggc_alloc_string.
14573
14574 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
14575
14576         * xcoffout.c (xcoffout_declare_function): Add documentation.
14577         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
14578         TARGET_64BIT.  Compare constant to -1, not bit pattern.
14579         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
14580         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
14581         gen_movsi typos.
14582
14583 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
14584
14585         * dwarf2out.c (add_abstract_origin_attribute): Abort if
14586         origin_die is NULL.
14587         (gen_inlined_enumeration_type_die): Do not abort if the type has
14588         not been writeen out.
14589         (gen_inlined_structure_type_die): Do not abort if the type has
14590         not been writeen out.
14591         (gen_inlined_union_type_die): Do not abort if the type has
14592         not been writeen out.
14593         (gen_tagged_type_instantiation_die): Do not abort if the type
14594         has not been written out.
14595
14596 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14597
14598         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
14599         call it.
14600         * reg-stack.c (straighten_stack): Copy hard reg set with
14601         COPY_HARD_REG_SET.
14602
14603 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
14604
14605         * builtins.c (stabilize_va_list): Stabilize array type va_list
14606         to a pointer type, not the base record type.
14607         (expand_builtin_va_copy): Dereference the pointers explicitly;
14608         use the correct size for the copy.
14609
14610         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
14611         (rs6000_va_arg): Likewise.
14612
14613 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
14614
14615         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
14616
14617 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
14618
14619         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
14620         field.
14621         (DECL_BUILT_IN_CLASS): Adjust accordingly.
14622
14623 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
14624
14625         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
14626         (init_ggc): Use it instead of a constant.
14627         (ggc_collect): Bound allocated_last_gc by it.
14628
14629 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
14630
14631         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
14632         with va_list.
14633
14634 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
14635
14636         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
14637         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
14638         * configure:  Regen.
14639         * config/mips/openbsd.h:  New, OpenBSD little endian target.
14640         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
14641         * config/mips/xm-openbsd.h:  New, OpenBSD host.
14642
14643 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
14644
14645         * config/m68k/m68k.c (output_function_prologue,
14646         output_function_epilogue): Use
14647         current_function_uses_pic_offset_table instead of regs_ever_live
14648         to decide whether to save/restore pic register.
14649         (legitimize_pic_address): Don't modify regs_ever_live any more.
14650
14651 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
14652
14653         * function.h (struct function): Add x_dont_save_pending_sizes_p.
14654         * stor-layout.c (variable_size): Don't add sizes to the pending
14655         sizes list if x_dont_save_pending_sizes_p is set.
14656
14657 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
14658
14659         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
14660         for symbolic_operand().
14661         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
14662
14663 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14664
14665         * combine.c (gen_rtx_combine): Add missing call to va_end().
14666
14667         * final.c (asm_fprintf): Likewise.
14668
14669         * genattrtab.c (attr_rtx): Likewise.
14670
14671 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
14672
14673         * cse.c: Update comments.
14674         (cse_insn): When converting a conditional/computed jump into
14675         an unconditional jump, always make sure a BARRIER immediately
14676         follows the converted jump.  Do not delete unreachable code.
14677         (cse_basic_block): Do not delete unreachable code.
14678         * toplev.c (rest_of_compilation): Move call to
14679         delete_trivially_dead_insns after the conditional call to
14680         jump_optimize.
14681
14682 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14683
14684         * collect2.c (make_temp_file): Don't prototype.
14685
14686         * gcc.c (make_temp_file): Likewise.
14687
14688         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
14689
14690 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
14691
14692         * varasm.c (asm_emit_uninitialised): New function: Generate
14693         the assembler statements necessary to declare an uninitialised
14694         variable.
14695         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
14696         variable.
14697         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
14698         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
14699         section.
14700         (assemble_variable): Use asm_emit_uninitialised to emit an
14701         uninitialised variable.
14702
14703 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
14704
14705         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
14706         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
14707         <geoffk@cygnus.com>.
14708
14709 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14710
14711         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
14712         * c-common.h (builtin_function): Don't declare.
14713
14714         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
14715         DECL_BUILT_IN.
14716         (pushdecl): Likewise.
14717         (finish_decl): Likewise.
14718         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
14719         int.  All callers changed.
14720         Set the builtin's DECL_BUILT_IN_CLASS.
14721         * tree.h (enum built_in_class): New.
14722         (enum built_in_function): Delete NOT_BUILT_IN.
14723         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
14724         in a union.
14725         (DECL_SET_FUNCTION_CODE): Likewise.
14726         (DECL_BUILT_IN_CLASS): New macro.
14727         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
14728         (struct tree_decl): Split builtin function code field into a
14729         struct.
14730         (builtin_function): Declare.
14731
14732 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
14733
14734         * optabs.c (init_traps): Fix typo in last change.
14735
14736 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
14737
14738         * toplev.c (rest_of_decl_compilation): Update comment.
14739
14740 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
14741
14742         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
14743         in .sbss if appropriate.
14744         (EXTRA_SECTION_FUNCTIONS): Add sbss.
14745         (SBSS_SECTION_ASM_OP): New macro.
14746         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
14747         (EXTRA_SECTIONS): Add in_sbss.
14748         * config/mips/mips.h: Prototype sbss_section.
14749
14750 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
14751
14752         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
14753         to disappear.
14754
14755 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
14756
14757         * optabs.c (init_traps): Register trap_rtx as a GC root.
14758
14759 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14760
14761         * config/mips/mips.c (function_arg_pass_by_reference): Define
14762         unconditionally, since it's called unconditionally.
14763
14764 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
14765
14766         * toplev.c (documented_lang_options): Add -fshort-wchar.
14767         * c-decl.c (c_decode_option): Likewise.
14768         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
14769         for wchar_t.
14770         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
14771         * gcc.c (default_compilers): If -fshort-wchar,
14772         override __WCHAR_TYPE__.
14773         * tm.texi (C Dialect Options): Add -fshort-wchar.
14774
14775         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
14776         symbol for a variable.
14777
14778         * cpplib.h (CPP_PREPROCESSED): New macro.
14779         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
14780         we're seeing this input for a second time.
14781
14782 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
14783
14784         * emit-rtl.c (init_emit_once): Initialize modes first.
14785
14786 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
14787
14788         * config/i386/i386.c (pic_label_name): Change to char pointer.
14789         (global_offset_table): New variable.
14790         (load_pic_register): Fill global_offset_table if it hasn't
14791         already been done.  Allocate pic_label_name dynamically.
14792         * ggc.h (empty_string): New variable.
14793         * ggc-simple.c (empty_string): Likewise.
14794         (init_ggc): Allocate empty_string and add as root.
14795         * stmt.c (digit_strings): New variable.
14796         (init_stmt): Add last_block_end_note as root.  Allocate and
14797         initialize digit_strings.
14798         (expand_asm_operands): Use empty_string instead of string
14799         constant.  Use digit_strings instead of string constants.
14800         * profile.c (init_arc_profiler): Allocate string with
14801         ggc_alloc_string instead of xmalloc.
14802         (output_func_start_profiler): Likewise.
14803         * c-typeck.c (digest_init): Check if init is error_mark_node.
14804
14805 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
14806                           Richard Henderson  <rth@cygnus.com>
14807
14808         * ggc-page.c: New file.
14809         * Makefile.in (ggc-page.o): New.
14810
14811 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
14812
14813         * invoke.texi: Document -fdelete-null-pointer-checks
14814         * toplev.c (flag_delete_null_pointer_checks): New.
14815         (f_options): Add entry for -fdelete-null-pointer-checks.
14816         (rest_of_compilation): Conditionalize null pointer check
14817         elimination on flag_delete_null_pointer_checks.
14818         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
14819
14820 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
14821
14822         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
14823         copyright notice and special exception to GPL.
14824
14825 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14826
14827         * abi64.h (mips_function_value): Add prototype arguments.
14828
14829         * mips-protos.h: New file with mips prototypes.
14830
14831         * mips.c: Include "tm_p.h".
14832         (mktemp, lookup_name): Add prototype arguments.
14833         (extern_list, string_constant, mips_fill_delay_slot,
14834         mips_output_external, mips_output_external_libcall,
14835         mips_output_filename, mips_declare_object, function_prologue,
14836         mips_expand_prologue, function_epilogue, mips16_constant,
14837         build_mips16_function_stub, mips_output_conditional_branch):
14838         Constify a char*.
14839         (mips_va_start): Remove unused variable `u'.
14840         (mips_va_arg): Cast value to unsigned when comparing against one.
14841         (trace): Delete.
14842         (save_restore_insns, mips_expand_prologue): Add missing arg in
14843         call to `large_int'.
14844
14845         * mips.h: Move prototypes to mips-protos.h.
14846         (data_section, memory_address_p, rdata_section,
14847         readonly_data_section, simple_epilogue_p, text_section): Delete
14848         prototypes delcared elsewhere.
14849         (mips_epilogue_delay_slots, print_options): Delete unused decls.
14850         (trace): Delete.
14851         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
14852
14853         * mips.md: Delete extra args in call to `mips_move_2words'.
14854
14855         * xm-iris6.h (alloca): Add prototype argument.
14856
14857         * genpeep.c: Include "tm_p.h" in generated output file.
14858
14859 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
14860
14861         * basic-block.h (find_edge_index): Change parameters.
14862         * flow.c (verify_edge_list): Pass basic_block parameters to
14863         find_edge_index instead of integers.
14864
14865 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
14866
14867         * combine.c (simplify_comparison): Use an unsigned shift to adjust
14868         the constant.
14869
14870 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
14871
14872         * gcc.1: Fix a formatting error.
14873
14874 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
14875
14876         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
14877         i786, mn10200, mn10300, pdp11, v850.
14878
14879 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
14880
14881         * libgcc2.c (num_digits): Add prototype with
14882         __attribute__((const)).
14883         (__terminate): Add prototype.
14884
14885 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
14886
14887         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
14888
14889         * alpha/alpha.c (print_operand): Fix type of `code'.
14890         (alpha_output_filename): Constify.
14891         * alpha/alpha.h: Move all function declarations ...
14892         * alpha/alpha-protos.h: ... here.  New file.
14893         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
14894         (SECTION_FUNCTION_TEMPLATE): Likewise.
14895
14896 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14897
14898         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
14899         * expr.c (expand_expr): Likewise.
14900         (do_jump): Likewise.
14901         (do_store_flag): Pass ccp_store_flag to can_compare_p.
14902         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
14903         accessor macros.
14904         (enum can_compare_purpose): New.
14905         (can_compare_p): Adjust prototype.
14906         (prepare_cmp_insn, prepare_operand): Declare.
14907         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
14908         * optabs.c (cmp_available_p): Deleted.
14909         (expand_abs): Pass ccp_jump to can_compare_p.
14910         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
14911         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
14912         Call can_compare_p rather than cmp_available_p.
14913         (prepare_operand): No longer static.
14914         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
14915         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
14916         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
14917         sequence to use emit_cmp_and_jump_insns.
14918         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
14919
14920 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
14921
14922         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
14923         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
14924         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
14925         (plus (reg) (const_int 0))
14926         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
14927
14928 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
14929
14930         * rs6000.c (expand_block_move): DImode loads and stores require
14931         word-aligned displacements.  Increment address registers with
14932         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
14933
14934 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
14935
14936         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
14937         is no name for the base type, rather than segfault.  If we are
14938         writing out a complex integer type, use DW_ATE_lo_user.
14939
14940         * expr.c (emit_move_insn_1): If we are copying a complex that fits
14941         in one word or less (complex char, complex short, or on 64 bit
14942         systems complex float) to/from a hard register, copy it through
14943         memory instead of dying in gen_{real,imag}part.  If we have a
14944         short complex type, prevent inlining since it allocates stack
14945         memory.
14946
14947         * tree.c (build_complex_type): If we are writing dwarf2 output,
14948         generate a name for complex integer types.
14949
14950 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
14951
14952         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
14953         * flow.c (remove_edge): Remove extra whitespace.
14954         (remove_fake_edges): Fix comment.
14955         (add_noreturn_fake_exit_edges): Use the correct name.
14956
14957 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
14958
14959         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
14960         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
14961         (clean): Depend on INTL_CLEAN.
14962         (maintainer-clean): Adjust.
14963
14964 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14965
14966         * configure.in (AC_PREREQ): Bump to 2.13.
14967         (AC_C_STRINGIZE): Call this instead of using a custom macro.
14968
14969         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
14970
14971         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
14972
14973         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
14974
14975         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
14976         (HAVE_STRINGIZE): Define.
14977
14978 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
14979
14980         * c-parse.in: save and restore warn_pointer_arith on __extension__
14981         along with pedantic.
14982         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
14983         Set the type of extension to itype rather than $<itype>1 kludge.
14984         * extend.texi (Alternate Keywords): Adjust documentation.
14985         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
14986
14987 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
14988
14989         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
14990         most assembler templates.
14991
14992         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
14993         FP loads and stores.
14994         (following_call): Always return zero for the PA8000.
14995         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
14996         FP loads and stores.
14997         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
14998
14999         * pa.h (BRANCH_COST): Define.
15000
15001         * pa.md (return, return_internal): Use bve for PA2.0.
15002
15003         * pa.md (fused multiply): Add variants which reduce height for the
15004         fused multiply, but which still generate 2 insns.
15005         (fnegabs): Similarly.
15006
15007         * pa.md (subsi3): Turn into an expander.  Create two anonymous
15008         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
15009         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
15010
15011         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
15012         for TARGET_PA_20.
15013         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
15014         code generation.
15015         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
15016         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
15017
15018         * regclass.c (init_regs): Add "top_of_stack" as a garbage
15019         collection root.
15020
15021         * flow.c (record_active_eh_regions): Terminate loop after finding
15022         the last insn in the last basic block.
15023
15024 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15025
15026         * config/c4x/c4x.md: Delete parallel instruction peepholes.
15027
15028 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15029
15030         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
15031
15032 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15033
15034         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
15035         splitting to not use output template.
15036
15037 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15038
15039         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
15040         * config/c4x/c4x.c (c4x_va_start): New function.
15041
15042 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
15043
15044         * genrecog.c (not_both_true): Handle correctly cases when called for
15045         tests with different positions in the insn.
15046
15047 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15048
15049         * machmode.h (HOST_PTR_PRINTF): Move from here ...
15050
15051         * system.h (HOST_PTR_PRINTF): ... to here.
15052
15053         * mips-tfile.c: Don't include machmode.h.
15054
15055         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
15056         (mips-tfile.o): Don't depend on machmode.h.
15057
15058 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15059
15060         * haifa-sched.c (sched_analyze): Rename local variable `region' to
15061         avoid conflicts with typedef struct `region' at the top level scope.
15062
15063 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
15064
15065         * basic-block.h (basic_block): Add eh_beg, eh_end.
15066         * flow.c (entry_exit_blocks): Update.
15067         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
15068         Call new functions.
15069         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
15070         lists.c functions to allocate insn lists.
15071         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
15072         edge creation ...
15073         (make_eh_edge): ... here.  New.
15074         (move_stray_eh_region_notes): New.
15075         (record_active_eh_regions): New.
15076         (delete_unreachable_blocks): Split out block merging ...
15077         (try_merge_blocks): ... here.  New.
15078         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
15079         Dump debugging data.
15080         (merge_blocks_move_successor_nojumps): Likewise.
15081         (merge_blocks): Use eh_beg+eh_end to validate block movement.
15082
15083 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
15084
15085         * extend.texi (Bound member functions): Document unbound pmf
15086         conversion.
15087
15088 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
15089
15090         * flow.c (split_edge): Handle insertion on a fallthrough edge which
15091         has the EXIT_BLOCK as a dest.
15092
15093 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
15094
15095         * flow.c (remove_edge): New function to remove an edge from the
15096         flow graph.
15097         (remove_fake_successors): New function to remove fake successor edges.
15098         (remove_fake_edges): New function to remove all fake edges from the
15099         flow graph.
15100         (add_fake_exit_edges): New function to add fake edges from all blocks
15101         with no successors to the exit block.
15102         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
15103         prototypes for new functions.
15104
15105 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
15106
15107         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
15108         Use Pmode to determine whether to output .dword or .word.
15109
15110 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
15111
15112         * tree.c (built_in_filename): New variable.
15113         (BUILT_IN_FILENAME): New macro.
15114         (init_tree_codes): Allocate built_in_filename.
15115         (make_node): Use built_in_filename instead of string constant.
15116
15117 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
15118
15119         * configure.in: Add fr30 target.
15120         * configure: Regenerate.
15121         * config/fr30: New directory.
15122         * config/fr30/crti.asm: New file.
15123         * config/fr30/fr30.c: New file.
15124         * config/fr30/crtn.asm: New file.
15125         * config/fr30/fr30.h: New file.
15126         * config/fr30/fr30.md: New file.
15127         * config/fr30/lib1funcs.asm: New file.
15128         * config/fr30/t-fr30: New file.
15129         * config/fr30/xm-fr30.h: New file.
15130
15131 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
15132
15133         * flow.c (merge_blocks_move_successor_nojumps): Delete the
15134         BARRIER at the end of the successor, not the BARRIER before
15135         the successor.
15136
15137         * pa.c (pa_add_gc_roots): Fix thinko in last change.
15138
15139 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
15140
15141         * stmt.c (any_pending_cleanups): Don't crash when
15142         current_function->stmt is unset.
15143
15144 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15145
15146         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
15147         other initializations that may use it for relative offsets.
15148
15149 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15150
15151         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
15152         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
15153         * config/i386/sol2dbg.h: Removed.
15154         * config/i386/sol2gas.h: New file, to enable gas work-around.
15155         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
15156         Don't use sol2dbg.h.
15157         * configure: Rebuilt.
15158
15159 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
15160
15161         * invoke.texi (-fthis-is-variable): Remove documentation.
15162
15163 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
15164
15165         * basic-block.h (compute_bb_for_insn): Declare.
15166         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
15167         to use; set size of basic_block_for_insn directly.
15168         (find_basic_blocks): Update.
15169
15170 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15171
15172         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
15173
15174 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15175
15176         * crtstuff.c (ON_EXIT): Delete empty macro definition.
15177         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
15178
15179 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
15180
15181         * c-decl.c (c_decode_option): Extend comment.
15182
15183 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
15184
15185         * toplev.c (progname): Make 'const char *'
15186         (flag_print_mem): Move out of main.
15187         (version_flag): Move out of main.
15188         (filename): Move out of main.
15189         (debug_args): Remove g prefix from options.
15190         (documented_lang_options): Remove cpplib specific options.
15191         (display_help): Add g prefix to debug options.
15192         (check_lang_option): Delete this function.
15193         (decode_d_option): New function: Decode -d... option.
15194         (decode_f_option): New function: Decode -f... option.
15195         (decode_W_option): New function: Decode -W... option.
15196         (decode_g_option): New function: Decode -g... option.
15197         (independent_decode_option): New function: Decode a language
15198         independent command line option.
15199         (main): Invoke lang_decode_option and then
15200         independent_decode_option on each command line option in
15201         turn.
15202
15203 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
15204
15205         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
15206          * fold-const.c (fold_range_test): Do not try to fold the range
15207          test if the rhs or lhs has side effects.
15208
15209         * basic-block.h (compute_flow_dominators): Declare.
15210
15211         * gcse.c (alloc_code_hoist_mem): New function.
15212         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
15213         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
15214         (hoist_code, one_code_hoisting_pass): Likewise.
15215         (gcse_main): If optimizing for size, then hoist expressions
15216         computed in multiple dominated basic blocks.
15217
15218         * gcse.c (invalid_nonnull_info): New function.
15219         (delete_null_pointer_checks): Likewise.
15220         * rtl.h (delete_null_pointer_checks): Declare.
15221         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
15222
15223         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
15224         (merge-blocks_move_successor_nojumps): Likewise.
15225         (merge_blocks): Allow merging of some blocks, even if it requires
15226         physical movement of the blocks, but not if it requires new jumps.
15227
15228         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
15229         Callers and prototype changed.
15230         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
15231
15232 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15233
15234         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
15235         -YP when both -p and -pg are present.  From i386/sol2.h.
15236
15237 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15238
15239         * Makefile.in (distclean): Delete tm_p.h.
15240         * configure.in: Create a new file, "tm_p.h", from a list in
15241         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
15242         "i386/i386-protos.h".
15243
15244         * alias.c: Include "tm_p.h".
15245         * c-typeck.c: Likewise.
15246         * calls.c: Likewise.
15247         * cse.c: Likewise.
15248         * emit-rtl.c: Likewise.
15249         * explow.c: Likewise.
15250         * expmed.c: Likewise.
15251         * expr.c: Likewise.
15252         * final.c: Likewise.
15253         * flow.c: Likewise.
15254         * fold-const.c: Likewise.
15255         * function.c: Likewise.
15256         * gcse.c: Likewise.
15257         * global.c: Likewise.
15258         * haifa-sched.c: Likewise.
15259         * integrate.c: Likewise.
15260         * jump.c: Likewise.
15261         * local-alloc.c: Likewise.
15262         * loop.c: Likewise.
15263         * optabs.c: Likewise.
15264         * recog.c: Likewise.
15265         * reg-stack.c: Likewise.
15266         * regclass.c: Likewise.
15267         * regmove.c: Likewise.
15268         * reload.c: Likewise.
15269         * reload1.c: Likewise.
15270         * reorg.c: Likewise.
15271         * resource.c: Likewise.
15272         * stmt.c: Likewise.
15273         * stor-layout.c: Likewise.
15274         * toplev.c: Likewise.
15275         * tree.c: Likewise.
15276         * unroll.c: Likewise.
15277         * genattrtab.c (main): Make generated file include "tm_p.h".
15278         * genemit.c (main): Likewise.
15279         * genoutput.c (main): Likewise.
15280         * genrecog.c (main): Likewise.
15281
15282         * i386.h: Delete all prototypes.
15283         * i386.c: Include "tm_p.h".
15284         (ix86_attr_length_default): Call constant_call_address_operand
15285         with correct number of arguments.
15286         * i386-protos.h: New file.
15287         * i386.md (unnamed patterns): Call constant_call_address_operand
15288         with correct number of arguments.
15289         (exception_receiver): Call load_pic_register with correct number
15290         of arguments.
15291
15292 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
15293
15294         * c-pragma.c (mark_align_stack): Dereference the void* properly.
15295
15296 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
15297
15298         * rtl.h (insns_safe_to_move_p): New function.
15299         * loop.c (find_and_verify_loops): Use it.
15300         * rtlanal.c (insns_safe_to_move_p): Define it.
15301
15302 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
15303
15304         * c-pragma.c: Include ggc.h.
15305         * Makefile.in (c-pragma.o): Update.
15306
15307 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15308
15309         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
15310         (LIB_SPEC): Likewise.
15311         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
15312         Reindent -YP/-p/-pg.
15313         Copied from config/sparc/sol2.h.
15314
15315 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
15316
15317         * c-pragma.c (mark_align_stack): New.
15318         (init_pragma): New.
15319         * c-pragma.h (init_pragma): Declare it.
15320         * c-lex.c (init_parse): Call it.
15321
15322 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15323
15324         * configure.in: Pick up thread library on Solaris/x86 just
15325         like on Solaris/sparc.
15326         * configure: Rebuilt.
15327
15328 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
15329
15330         * rtl.h (global_rtx_index): New enum.
15331         (global_rtl): Change to array of rtx.
15332         (pc_rtx, cc0_rtx): Redefine accordingly.
15333         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
15334         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
15335         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
15336         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
15337         (const_int_rtx): Change to array of rtx.
15338         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
15339         accordingly.
15340         * emit-rtl.c (global_rtl): Change to array of rtx.
15341         (const_int_rtx): Change to aray of rtx.
15342         (gen_rtx_CONST_INT): Redefine accordingly.
15343         (init_emit_once): Allocate and initialize global_rtl.  Likewise
15344         for const_int_rtx.  Add both as GC roots.
15345         * genattrtab.c (global_rtl): Update declaration.
15346
15347 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
15348
15349         * Makefile (USER_H): Add iso646.h back.
15350
15351 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
15352
15353         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
15354         zapping the LOG_LINKS of sched_before_next_call.
15355
15356         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
15357         * pa.c (insn_refs_are_delayed): Renamed from
15358         insn_sets_and_refs_are_delayed.
15359
15360 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
15361
15362         * functiion.h (struct function): Add x_whole_function_mode_p.
15363         (retrofit_block): Declare.
15364         * function.c (retrofit_block): New function.
15365         (identify_blocks): Add assertions.  Allow an incomplete set of
15366         block notes if we're still generating code for the function.
15367         * integrate.c: Include loop.h.
15368         (expand_inline_function): Call find_loop_tree_blocks to map block
15369         notes to blocks when in whole-function mode.  Use retrofit_block
15370         to insert new BLOCKs for the inlined function, rather than
15371         insert_block.
15372         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
15373         * Makefile.in (integrate.o): Depend on loop.h.
15374
15375 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
15376
15377         * tree.h (warn_about_unused_variables): Declare.
15378         * stmt.c (warn_about_unused_variables): New function, split out
15379         from ...
15380         (expand_end_bindings): Here.
15381
15382 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
15383
15384         * stmt.c (preserve_subexpressions_p): Don't crash when
15385         current_function->stmt is unset.
15386
15387 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
15388
15389         * stmt.c (expand_start_bindings): Allow callers to pass a flag
15390         indicating that no NOTE_INSN_BLOCK_BEG note is required.
15391         (expand_start_target_temps): Use it.
15392         * except.c (expand_eh_region_start_for_decl): Likewise.
15393         * expr.c (expand_expr): Likewise.
15394
15395 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
15396
15397         * fold-const.c (operand_equal_p): Pay attention to side effects.
15398
15399 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
15400
15401         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
15402         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
15403
15404         * tlink.c (scan_linker_output): Look for keywords before accepting
15405         a mangled name in quotes.
15406
15407 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
15408
15409         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
15410         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
15411
15412 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
15413
15414         * alpha.md: Revert Thu Nov 26 change that came in through the
15415         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
15416         Avoid earlyclobber when possible.
15417
15418 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15419
15420         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
15421
15422         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
15423         Define HAVE_ON_EXIT.
15424
15425 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15426
15427         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
15428         CTYPE_CONV in all ctype macros.
15429
15430         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
15431         from system.h.
15432
15433         * cexp.y (initialize_random_junk): Likewise.
15434
15435         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
15436
15437         * i370.c (handle_pragma): Likewise.
15438
15439         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
15440
15441         * v850.c (override_options): Likewise.
15442
15443         * doprint.c (_doprnt): Likewise.
15444
15445         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
15446         Likewise.
15447
15448         * fixinc/server.c (load_data): Likewise.
15449
15450         * fold-const.c (real_hex_to_f): Likewise.
15451
15452         * genattr.c (write_upcase, gen_attr): Likewise.
15453
15454         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
15455         write_upcase): Likewise.
15456
15457         * genemit.c (print_code): Likewise.
15458
15459         * genopinit.c (gen_insn): Likewise.
15460
15461         * genpeep.c (print_code): Likewise.
15462
15463         * genrecog.c (print_code): Likewise.
15464
15465         * optabs.c (init_libfuncs): Likewise.
15466
15467 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
15468
15469         * haifa-sched.c (sched_analyze): Keep the list of notes organized
15470         in pairs.
15471         (reemit_notes): Likewise.
15472
15473 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
15474
15475         * ggc.h (ggc_root): Move to ggc-common.c.
15476         (roots): Remove.
15477         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
15478         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
15479         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
15480         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
15481         * ggc-common.c (ggc_root): Move from ggc.h.
15482         (roots): Declare, static.
15483         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
15484         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
15485         null or check/set mark bit.
15486         (ggc_mark_roots): New.
15487         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
15488
15489 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
15490
15491         * m32r.c: Include toplev.h.
15492         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
15493         (gen_compare): Rename swap_p to must_swap to match uses.
15494         Add default abort case.
15495         (m32r_output_function_epilogue): Remove unused variables.
15496         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
15497         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
15498         define to empty parameter list.  Update all uses.
15499         (predicate decls): Use enum machine_mode not int.
15500         * m32r.md (movsi): Call abort, not fatal_insn.
15501         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
15502
15503 1999-09-14  Andrew Haley  <aph@cygnus.com>
15504
15505         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
15506         use $0 instead of 0.
15507
15508 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15509
15510         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
15511         computation out of loop over hard regs.
15512
15513 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
15514
15515         * function.c (identify_blocks): Don't shadow a variable in an
15516         outer scope.
15517         * integrate.c (integrate_decl_tree): Don't use pushlevel,
15518         pushdecl, or poplevel to build up the new BLOCK tree.
15519         (expand_inline_function): Likewise.
15520         (integrate_parm_decls): Likewise.
15521
15522 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
15523
15524         * c-typeck.c (qualify_type): Merge qualifiers from both types.
15525
15526 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
15527
15528         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
15529         * invoke.texi: Document this change.
15530
15531 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
15532
15533         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
15534         Free the struct.
15535         (mark_emit_status): Renamed from mark_emit_state.
15536         * except.c (mark_eh_status): Renamed from mark_eh_state.
15537         Check not null before marking.
15538         (free_eh_status): New.
15539         * expr.c (mark_expr_status, free_expr_status): New.
15540         * function.c (free_machine_status): New.
15541         (free_after_parsing): New.
15542         (free_after_compilation): Move bits to free_after_parsing; call
15543         free_eh_status, free_expr_status; zero the marked members of the
15544         function state.
15545         (prepare_function_start): No can_garbage_collect.
15546         Call init_eh_for_function.
15547         (expand_dummy_function_end): Free up current_function state.
15548         (mark_function_status): Renamed from mark_function_state.
15549         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
15550         * function.h (struct function): No can_garbage_collect.
15551         (free_machine_status, free_after_parsing): Declare.
15552         (free_eh_status, free_expr_status): Declare.
15553         * ggc.h (mark_expr_status): Declare.
15554         * stmt.c (free_stmt_status): Free the struct.
15555         (mark_stmt_status): Renamed from mark_stmt_state.
15556         (init_stmt): Don't call init_eh.
15557         (init_stmt_for_function): Don't call init_eh_for_function.
15558         * toplev.c (compile_file): Call init_eh.
15559         (rest_of_compilation): Free basic block info before ggc_collect.
15560         Call free_after_parsing; conditionally call free_after_compilation.
15561         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
15562         Check not null before marking.
15563         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
15564
15565 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
15566
15567         * c-lex.c (yylex): Initialize warn.
15568
15569 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
15570
15571         * pa.c (emit_move_sequence): Properly set the mode of the scratch
15572         register when performing secondary reloads for the SAR register.
15573
15574 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
15575
15576         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
15577         (NOTE_BLOCK): New macro.
15578         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
15579         * function.h (identify_blocks): Change prototype.
15580         * function.c (identify_blocks): Simplify.
15581         (reorder_blocks): Likewise.
15582         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
15583         NOTE_INSN_BLOCK_{BEG,END}.
15584         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
15585         the list of saved notes if the note isn't a
15586         NOTE_INSN_BLOCK_{BEG,END}.
15587         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
15588         NOTE_BLOCK_NUMBER.
15589         (reemit_notes): Adjust recreation of notes to reflect new saved
15590         note structure.
15591         * print-rtl.c (print_rtx): Print the address of the BLOCK when
15592         printing a block note.
15593         * stmt.c (block_vector): Remove.
15594         (find_loop_tree_blocks): Simplify.
15595         (unroll_block_trees): Likewise.
15596         * tree.h (reorder_block): Change prototype.
15597
15598 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
15599
15600         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
15601         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
15602         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
15603         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
15604         (atexit, exit): Simplify.
15605         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
15606         * config/lots: Remove defns of HAVE_ATEXIT.
15607
15608 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
15609
15610         * calls.c (precompute_arguments): Fix typo in comment.
15611         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
15612         TARGET_EXPR.
15613
15614 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
15615
15616         * dsp16xx.c (override_options): Fix typos in GC root registration.
15617
15618 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
15619
15620         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
15621         from config/svr4.h.
15622         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
15623         (FUNCTION_PROFILER): Redefine appropriately for Linux.
15624         (CC1_SPEC): Likewise.
15625
15626 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15627
15628         * genattr.c (main): Add extern prototype.  Call return, not exit.
15629         * genattrtab.c (main): Likewise.
15630         * gencheck.c (main): Likewise.
15631         * gencodes.c (main): Likewise.
15632         * genconfig.c (main): Likewise.
15633         * genemit.c (main): Likewise.
15634         * genextract.c (main): Likewise.
15635         * genflags.c (main): Likewise.
15636         * gengenrtl.c (main): Likewise.
15637         * genopinit.c (main): Likewise.
15638         * genoutput.c (main): Likewise.
15639         * genpeep.c (main): Likewise.
15640         * genrecog.c (main): Likewise.
15641
15642         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
15643         * genattrtab.c (get_insn_name): Likewise.
15644         * gencodes.c (get_insn_name): Likewise.
15645         * genconfig.c (get_insn_name): Likewise.
15646         * genemit.c (get_insn_name): Likewise.
15647         * genextract.c (get_insn_name): Likewise.
15648         * genflags.c (get_insn_name): Likewise.
15649         * genopinit.c (get_insn_name): Likewise.
15650         * genpeep.c (get_insn_name): Likewise.
15651
15652         * gencheck.c (usage): Add static prototype.
15653         * genextract.c (print_path): Constify a char*.
15654         * genopinit.c (optabs): Likewise.
15655         * genoutput.c (operand_data, data, output_predicate_decls,
15656         compare_operands): Likewise.
15657         * genrecog.c (write_tree): Add default case in switch.
15658
15659 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15660
15661         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
15662
15663         * print-rtl.c (get_insn_name): Remove prototype.
15664
15665         * toplev.h (progname): Declare const.
15666
15667         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
15668         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
15669         dump_sched_info, dump_local_alloc, regset_release_memory,
15670         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
15671         error_with_file_and_line, error_with_decl, error_for_asm, error,
15672         fatal, warning_with_file_and_line, warning_with_decl, warning,
15673         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
15674         Remove redundant prototypes.
15675
15676         (notice, check_lang_option, report_file_and_line, vnotice,
15677         mark_file_stack): Add static prototype.
15678         (set_fatal_function): Add prototype.
15679         (vnotice, report_file_and_line, set_fatal_function,
15680         check_lang_option): Constify a char*.
15681         (main): Prototype.  Call return, not exit.
15682
15683 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15684
15685         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
15686
15687         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
15688
15689         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
15690
15691         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
15692
15693 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15694
15695         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
15696         behave as if it's zero in all cases.
15697         (expand_function_start): Adjust call to assign_parms.
15698         * tree.h (assign_parms): Adjust prototype.
15699         * objc/objc-act.c (hack_method_prototype): Adjust call to
15700         assign_parms.
15701
15702 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
15703
15704         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
15705         arg_pointer_rtx fixed if the argument pointer register is
15706         not fixed.
15707         (NONZERO_BASE_PLUS_P): Likewise.
15708
15709 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
15710
15711         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
15712         match_insn2 to match_insn.
15713         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
15714
15715 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
15716
15717         * Makefile.in (USER_H): Remove va-foo.h.
15718
15719         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
15720         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
15721         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
15722         va-spur.h,va-v850.h}: Remove.
15723
15724 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
15725
15726         * sparc/sparc.md (eligible_for_return_delay): New attribute.
15727         (in_return_delay): Use it instead of match_insn.
15728
15729 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15730
15731         * config/alpha/va_list.h (va-alpha.h): Do not include.
15732         (__gnuc_va_list): Typedef as in varargs.h.
15733
15734 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
15735
15736         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
15737         DECL_LIVE_RANGE_RTL.
15738
15739 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
15740
15741         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
15742         not NOTE_BLOCK_NUMBER.
15743         (expand_eh_region_end): Likewise.
15744         (find_exception_handler_labels): Likewise.
15745         (scan_region): Likewise.
15746         (exception_optimize): Likewise.
15747         (update_rethrow_references): Likewise.
15748         (set_insn_eh_region): Likewise.
15749         * final.c (final_scan_insn): Likewise.
15750         * flow.c (make_edges): Likewise.
15751         * integrate.c (expand_inline_function): Likewise.
15752         * print-rtl.c (print_rtx): Likewise.
15753
15754 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
15755
15756         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
15757         terms of builtin functions and types.
15758
15759         * mips.c (mips_build_va_list): New.
15760         (mips_va_start, mips_va_arg): New.
15761         * mips.h (BUILD_VA_LIST_TYPE): New.
15762         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
15763
15764         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
15765         (sh_build_va_list, sh_va_start, sh_va_arg): New.
15766         * sh.h (BUILD_VA_LIST_TYPE): New.
15767         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
15768
15769 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
15770
15771         * recog.h (struct recog_data): Make dup_num, operand_address_p,
15772         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
15773         (struct insn_data): Likewise with n_operands, n_dups,
15774         n_alternatives, output_format.
15775         * regclass.c (scan_one_insn): Cast n_operands to int before
15776         arithmetic inside comparison.
15777
15778 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
15779
15780         * toplev.c (compile_function): Unconditionally emit nop.
15781
15782 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15783
15784         * haifa-sched.c (actual_hazard): Move declaration of variable
15785         `this_cost' into the scope where it is used.
15786
15787 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15788
15789         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
15790         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
15791         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
15792
15793         * genrecog.c (make_insn_sequence): Call memset, not bzero.
15794
15795         * jump.c (find_insert_position): Don't declare or define unless
15796         !HAVE_conditional_arithmetic.
15797         (returnjump_p_1, delete_prior_computation): Add static prototypes.
15798
15799         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
15800
15801         * recog.c (offsettable_address_p): Prototype function pointer.
15802         (preprocess_constraints): Call memset, not bzero.
15803
15804         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
15805         (gcc_obstack_init): Don't declare.
15806         (fix_sizetype): Add static prototype.
15807         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
15808         (tree_cons): Call memset, not bzero.
15809
15810         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
15811         definition in macro ASM_WEAKEN_LABEL.
15812         (mark_const_hash_entry): Add static prototype.
15813
15814 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15815
15816         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
15817
15818         * unroll.c (find_common_reg_term, subtract_reg_term,
15819         loop_find_equiv_value): Add static prototypes.
15820         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
15821         (copy_loop_body): Remove unreachable break statement.
15822
15823         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
15824
15825         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
15826
15827 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15828
15829         Undo some changes from the gcc2 merge:
15830         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
15831         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
15832         pointers.
15833
15834         Undo this change:
15835         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
15836         * emit-rtl.c (gen_lowpart_common): Disable optimization of
15837         initialized float-int union if the value is a NaN.
15838
15839 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
15840
15841         * gthr-win32.h: New file.
15842
15843         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
15844         shared as a valid attribute.
15845         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
15846         * extend.texi: Document `shared' variable attribute.
15847
15848 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
15849
15850         * configure.in: Handle --enable-threads on FreeBSD.
15851         * configure: Rebuit.
15852
15853 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
15854
15855         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
15856         thread support.
15857         * configure: Rebuilt.
15858
15859 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
15860                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
15861                           Rosimildo DaSilva <rdasilva@connecttel.com>
15862
15863         * configure.in (m68k-*-rtemscoff*): Added.
15864         * configure.in (mips64orion-*-rtems*): Converted to ELF.
15865         * configure.in (sparc-*-rtemsaout*): Added as alias for old
15866         sparc-rtems configuration.
15867         * configure.in (sparc-*-rtemself*): Added.
15868         * configure.in (sparc-*-rtems*): Now ELF not a.out.
15869         * config/i386/rtems.h: Added comment.
15870         * config/sparc/rtemself.h: New file.
15871
15872         * configure.in (m68k-rtemself): Added.
15873         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
15874         and DWARF_DEBUGGING_INFO.
15875         * config/m68k/crti.s: New file.
15876         * config/m68k/crtn.s: New file.
15877         * config/m68k/t-crtstuff: New file.
15878         * config/m68k/rtemself.h: New file.
15879
15880         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
15881         global ctor/dtor and C++ exception handling.
15882         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
15883         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
15884         ENDFILE_SPEC.
15885         * config/i386/t-rtems-i386: New File.
15886
15887 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
15888
15889         * stmt.c (expand_end_case): Return right away if the case stack is
15890         empty.
15891
15892 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
15893
15894         * Makefile.in (version.c): Remove rule incorrectly brought in from
15895         the gcc2 merge.
15896
15897 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
15898
15899         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
15900         * msdos/top.sed:  Take into account a prepended $(SHELL) to
15901         move-if-change.
15902         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
15903
15904         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
15905
15906 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15907
15908         * regmove.c (fixup_match_1): Don't change an unchanging register.
15909         (stable_but_for_p): Renamed to:
15910         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
15911         Changed all callers.
15912
15913 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
15914
15915         * loop.c (strength_reduce): Don't call reg_used_between_p if the
15916         insn from BL2 is after the insn from BL.
15917
15918 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
15919
15920         * recog.h (INSN_OUTPUT_FORMAT_*): New.
15921         (struct insn_data): Merge `template' and `outfun' into `output'.
15922         Add `output_format'.
15923         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
15924         (struct data): Remove `outfun'; add `output_format'.
15925         (name_for_index): Remove declaration.
15926         (output_insn_data): Handle output formats.
15927         (process_template): Emit the bare array for @.
15928         (gen_expand, gen_split): Set output_format to NONE.
15929         * output.h (get_insn_template): Declare.
15930         * final.c (get_insn_template): New.
15931         (final_scan_insn): Use it.
15932         * toplev.c (compile_file): Likewise.
15933
15934         * c4x/c4x.c (c4x_process_after_reload): Likewise.
15935         * i860/i860.c (output_delayed_branch): Likewise.
15936         (output_delay_insn): Likewise.
15937
15938 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15939
15940         * rtl.c (obstack_alloc_rtx): Removed.
15941
15942 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
15943
15944         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
15945
15946 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
15947
15948         * i386.c (call_insn_operand): Reject const_int.
15949         (expander_call_insn_operand): Use call_insn_operand.
15950
15951 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15952
15953         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
15954
15955 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
15956
15957         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
15958         Use DImode operation.
15959
15960 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
15961
15962         * gcc.c: Include sys/resource.h.
15963         (report_times): New flag.
15964         (execute):  If report_times is set, calculate and report the
15965         CPU time consumed by each subprocess.
15966
15967         (rus, prus): New globals.
15968         (option_map): Add --time.
15969         (display_help): Document -time.
15970         (process_command): Set report_times if -time is given.
15971         Turn off -pipe if -time is given.
15972
15973         * invoke.texi: Document new option -time.
15974
15975         * configure.in: Check for getrusage.  Check if we have to
15976         prototype getrusage.
15977         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
15978         * configure: Regenerate.
15979         * config.in: Regenerate.
15980
15981 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
15982
15983         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
15984         fields.
15985
15986 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
15987
15988         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
15989         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
15990         (nan): Return _thenan_sf or _thenan_df as appropriate.
15991         (L_thenan_sf): Define _thenan_sf.
15992         (L_thenan_df): Define _thenan_df.
15993
15994         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
15995         (DPBIT_FUNCS): Add _thenan_df.
15996
15997 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
15998
15999         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
16000         TYPE_SIZE_UNIT.
16001
16002 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16003
16004         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
16005
16006         * gcc.h: New file.
16007         (lang_specific_driver): Don't take a function pointer parameter.
16008         All callers changed.
16009
16010         * gcc.c: Include gcc.h.
16011         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
16012         lang_specific_extra_outfiles, fatal): Don't declare.
16013         (multilib_defaults_raw): Constify.
16014         (read_specs): Call memset, rather than bzero.
16015         (main): Call return, not exit.
16016         (lookup_compiler): Call memcpy, not bcopy.
16017         (fatal): Make extern.
16018
16019         * cppspec.c: Include gcc.h.
16020         (lang_specific_driver): Initialize variable `quote'.  Constify a
16021         char*.  All calls to the function pointer parameter now
16022         explicitly call `fatal'.
16023
16024         * gccspec.c (lang_specific_driver): Include gcc.h.
16025
16026 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
16027
16028         * arm.c (note_invalid_constants): Use recog_data.operand_type
16029         for recog_op_type.
16030
16031 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16032
16033         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
16034         Declare.
16035
16036         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
16037         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
16038         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
16039         reload_secondary_in_reload, reload_secondary_out_reload,
16040         reload_secondary_in_icode, reload_secondary_out_icode,
16041         reload_reg_rtx, reload_when_needed): Delete declarations.
16042         (struct reload): New structure.
16043         (rld): Declare new array.
16044         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
16045         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
16046         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
16047         reload_secondary_in_reload, reload_secondary_out_reload,
16048         reload_secondary_in_icode, reload_secondary_out_icode,
16049         reload_reg_rtx, reload_when_needed): Delete definitions.
16050         (rld): New array.
16051         (whole file): Replace uses of the deleted arrays with uses of rld.
16052         * reload1.c (whole file): Replace uses of the deleted arrays with
16053         uses of rld.
16054         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
16055         explicit loops, not with bcopy.
16056
16057 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
16058
16059         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
16060         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
16061         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
16062         insn_name): Delete and consolidate into new structures.
16063         (insn_operand_predicate_fn): New.
16064         (insn_output_fn): New.
16065         (insn_gen_fn): New.
16066         (struct insn_operand_data): New.
16067         (struct insn_data): New.
16068         (insn_data): New.
16069         (OUT_FCN): Update for insn_data change.
16070         * builtins.c (expand_builtin_strlen): Likewise.
16071         (expand_builtin_memcmp): Likewise.
16072         * combine.c (make_extraction, simplify_comparison): Likewise.
16073         * cse.c (canon_reg, cse_insn): Likewise.
16074         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
16075         * expmed.c (store_bit_field, extract_bit_field): Likewise.
16076         (emit_store_flag): Likewise.
16077         * expr.c (convert_move, emit_block_move): Likewise.
16078         (clear_storage, emit_push_insn, expand_increment): Likewise.
16079         (do_store_flag): Likewise.
16080         * expr.h (GEN_FCN): Likewise.
16081         (insn_gen_function): Die.
16082         * final.c (final_scan_insn): Update for insn_data change.
16083         (output_asm_name): Likewise.
16084         * function.c (fixup_var_refs_1): Likewise.
16085         * loop.c (check_dbra_loop): Likewise.
16086         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
16087         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
16088         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
16089         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
16090         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
16091         * regmove.c (gen_add3_insn): Likewise.
16092         * reload.c (push_secondary_reload, combine_reloads): Likewise.
16093         (find_reloads, find_reloads_address_1): Likewise.
16094         (debug_reload_to_stream): Likewise.
16095         * reload1.c (emit_reload_insns, gen_reload): Likewise.
16096         * stmt.c (expand_end_case): Likewise.
16097         * toplev.c (compile_file): Likewise.
16098
16099         * c4x/c4x.c (c4x_process_after_reload): Likewise.
16100         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
16101
16102         * print-rtl.c (insn_name_ptr): Remove declaration.
16103         (get_insn_name): Declare.
16104         (print_rtx): Use it.
16105         * genoutput.c (insn_name_ptr): Remove.
16106         (next_operand_number): New.
16107         (struct operand_data): New.
16108         (null_operand, odata, odata_end): New.
16109         (struct data): Use struct operand_data.
16110         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
16111         (get_insn_name): Renamed from name_for_index.
16112         (output_prologue): Define NO_MD_PROTOTYPES.
16113         (output_predicate_decls): Break out from output_epilogue.
16114         Iterate over the operands list.
16115         (output_operand_data): Break out from output_epilogue.  Emit
16116         just the operands list.
16117         (output_insn_data): Break out from output_epilogue.  Emit just
16118         the insn data.
16119         (output_epilogue): Remove.
16120         (output_get_insn_name): New.
16121         (constraints, op_n_alternatives, predicates, address_p): Die.
16122         (modes, strict_low, seen): Die.
16123         (scan_operands): Take new param `d' instead of writing to
16124         seven global variables.
16125         (compare_operands): New.
16126         (place_operands): New.
16127         (validate_insn_alternatives): Update for struct data change.
16128         (gen_insn): Don't zero or copy 7 global arrays.  Update for
16129         scan_operands; call place_operands.
16130         (gen_peephole, gen_expand, gen_split): Likewise.
16131         (main): Update for new output routines.
16132
16133         * genattr.c (insn_name_ptr): Remove.
16134         (get_insn_name): New function.
16135         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
16136         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
16137         * genrecog.c: Likewise.
16138
16139         * alpha.md (adddi3): Make `pattern' array static.
16140
16141 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16142
16143         * config/c4x/c4x.h (c4x_rpts_cycles_string,
16144         c4x_cpu_version_string): Constify char *.
16145         * config/c4x/c4x.c (c4x_rpts_cycles_string,
16146         c4x_cpu_version_string): Likewise.
16147
16148 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
16149
16150         * tree.c (save_tree_status): Revert 10 Sep change.
16151         (restore_tree_status): Likewise.  Call obstack_free with NULL
16152         before freeing the obstack proper.
16153
16154 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
16155
16156         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
16157
16158         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
16159         surrounding context.
16160
16161 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
16162
16163         * tree.c (type_hash_canon): Put all types in the hash-table, when
16164         GC'ing.
16165
16166 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
16167
16168         * recog.h (struct recog_data, recog_data): New.
16169         (recog_foo variables): Kill.
16170         * recog.c (recog_operand, recog_operand_loc): Kill.
16171         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
16172         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
16173         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
16174         (recog_data): Define.
16175         (extract_insn): Update all recog_foo references to use recog_data.
16176         (preprocess_constraints, constrain_operands): Likewise.
16177         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
16178         * genattrtab.c (main): Likewise.
16179         * genextract.c (main): Likewise.
16180         * genoutput.c: Likewise.
16181         * genrecog.c (write_subroutine, main): Likewise.
16182         * local-alloc.c (block_alloc): Likewise.
16183         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
16184         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
16185         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
16186         * reload.c (find_reloads, find_reloads_toplev): Likewise.
16187         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
16188         (reload_cse_simplify_operands): Likewise.
16189
16190         * arc/arc.c (arc_final_prescan_insn): Likewise.
16191         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
16192         * h8300/h8300.c (notice_update_cc): Likewise.
16193         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
16194         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
16195         * mn10200/mn10200.c (notice_update_cc): Likewise.
16196         * mn10300/mn10300.c (notice_update_cc): Likewise.
16197         * romp/romp.c (update_cc): Likewise.
16198         * sparc/sparc.c (check_pic): Likewise.
16199         * v850/v850.c (notice_update_cc): Likewise.
16200
16201         * genemit.c (main): Don't declare recog_operand.
16202
16203 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
16204
16205         * ggc.h (rtvec_def): Forward declare.
16206         (tree_node): Likewise.
16207         (ggc_root): Define.
16208         (roots): Declare.
16209         (ggc_set_mark_rtx): Add prototype.
16210         (ggc_set_mark_rtvec): Likewise.
16211         (ggc_set_mark_tree): Likewise.
16212         * ggc-simple.c (ggc_root): Don't define.
16213         (roots): Don't declare.
16214         (ggc_mark_rtx): Remove.
16215         (ggc_mark_rtvec): Likewise.
16216         (ggc_mark_tree): Likewise.
16217         (ggc_mark_varray): Likewise.
16218         (ggc_mark_tree_hash_table_entry): Likewise.
16219         (ggc_mark_tree_hash_table): Likewise.
16220         (ggc_set_mart_rtx): New function.
16221         (ggc_set_mark_rtvec): Likewise.
16222         (ggc_set_mark_tree): Likewise.
16223         (ggc_add_root): Remove.
16224         (ggc_add_rtx_root): Likewise.
16225         (ggc_remove_tree_root): Likewise.
16226         (ggc_add_string_root): Likewise.
16227         (ggc_add_tree_varray_root): Likewise.
16228         (ggc_add_tree_hash_table_root): Likewise.
16229         (ggc_del_root): Likewise.
16230         (ggc_mark_rtx_ptr): Likewise.
16231         (ggc_mark_tree_ptr): Likewise.
16232         (ggc_mark_string_ptr): Likewise.
16233         (ggc_mark_tree_varray_ptr): Likewise.
16234         (ggc_mark_tree_hash_table_ptr): Likewise.
16235         * ggc-common.c: New file.
16236         * Makefile.in (OBJS): Add ggc-common.o.
16237         (ggc-common.o): List dependencies.
16238
16239 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
16240
16241         * cppalloc.c (xstrdup): Use memcpy.
16242         * cpperror.c (cpp_print_containing_files): Don't use
16243         cpp_notice.
16244         * cpplib.c (conditional_skip): Set temp->lineno.
16245         (do_endif): Make error message less obscure.
16246         (if_directive_name): New function.
16247         (cpp_get_token [case EOF]): Unwind the if stack and generate
16248         error messages for each unterminated conditional in this file.
16249         (parse_string):  Do not behave differently if -traditional.
16250
16251 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
16252
16253         * builtins.c (expand_builtin_va_arg): Cope with an array-type
16254         va_list decomposing to pointer-type.
16255         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
16256         (rs6000_va_arg): Likewise.
16257
16258 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
16259
16260         * except.c (start_dynamic_handler): Compute size using
16261         STACK_SAVEAREA_MODE.
16262
16263 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16264
16265         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
16266         include directory headers.  Don't define strrchr.  Don't provide
16267         my_* replacement functions.  Prefer PTR over `pointer_type'.
16268         Don't prototype system functions.  Don't redefine getopt.
16269
16270         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
16271         safe_read, safe_write, save_pointers, restore_pointers,
16272         is_id_char, in_system_include_dir, directory_specified_p,
16273         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
16274         find_corresponding_lparen, referenced_file_is_newer,
16275         save_def_or_dec, munge_compile_params, gen_aux_info_file,
16276         process_aux_info_file, identify_lineno, check_source,
16277         seek_to_line, forward_to_next_token_char, output_bytes,
16278         output_string, output_up_to, other_variable_style_function,
16279         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
16280         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
16281         find_static_definition, connect_defs_and_decs, add_local_decl,
16282         add_global_decls, needs_to_be_converted, visit_each_hash_node,
16283         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
16284         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
16285         scan_for_missed_items, edit_file, string_list_cons): Add static
16286         prototypes.
16287         (standard_exec_prefix, target_machine, target_version,
16288         default_syscalls_dir, string_list, string_list_cons, find_file,
16289         do_cleaning): Constify a char*.
16290         (safe_read, safe_write): Use PTR, not a char*.
16291         (is_id_char): Take an int, not a char.
16292         (main): Add prototype.  Call return, not exit.
16293
16294 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
16295
16296         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
16297         when comparing types.
16298
16299 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
16300
16301         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
16302         (strength_reduce): Release the varrays from the no-bivs early exit.
16303
16304         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
16305         the loop over the registers.
16306
16307         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
16308         for a new obstack.
16309         (restore_tree_status): Check that instead when freeing the obstack.
16310
16311 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
16312
16313         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
16314         as pointers.
16315
16316 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16317
16318         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
16319         operand size modifiers.
16320
16321 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16322
16323         * c-common.c (c_common_nodes_and_builtins): Don't build
16324         va_list_type_node.
16325         * c-common.h (enum c_tree_index and related accesor macros): Remove
16326         everything now declared in tree.h.
16327         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
16328         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
16329         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
16330         (error_mark_node, void_type_node, char_type_node, integer_type_node,
16331         unsigned_type_node, ptr_type_node, va_list_type_node,
16332         integer_zero_node, null_pointer_node, integer_one_node): Delete.
16333         (init_decl_processing): Call build_common_tree_nodes and
16334         build_common_tree_nodes_2 instead of building their nodes here.
16335         Don't add roots for these nodes.
16336         * stor-layout.c (size_zero_node, size_one_node): Delete.
16337         (set_sizetype): Make a new node for bitsizetype each time.
16338         * tree.c (global_trees): New variable.
16339         (init_obstacks): Add a gc root for it.
16340         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
16341         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
16342         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
16343         (build_common_tree_nodes): New function.
16344         (fix_sizetype): New function.
16345         (build_common_tree_nodes_2): New function.
16346         * tree.h (enum tree_index): New.
16347         (global_trees): Declare.
16348         Add accessor macros for all nodes now moved to global_trees.
16349         Delete their declarations.
16350
16351 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
16352
16353         * c-decl.c (finish_function): When processing a nested function,
16354         push and pop GC context around rest_of_compilation.
16355
16356 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
16357
16358         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
16359         Default ix86_arch to PROCESSOR_I386.
16360         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
16361         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
16362         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
16363         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
16364         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
16365         (EXTRA_SPECS): Remove deleted specs.
16366
16367 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
16368
16369         * function.c (assign_stack_local_1): Allocate from
16370         function->x_frame_offset, not frame_offset.
16371
16372 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
16373
16374         * ggc.h (lang_cleanup_tree): Remove.
16375         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
16376         * ggc-callbacks.c (lang_cleanup_tree): Remove.
16377
16378         * c-decl.c (finish_struct): Use ggc_alloc to allocate
16379         TYPE_LANG_SPECIFIC when garbage collecting.
16380         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
16381         (lang_cleanup_tree): Remove.
16382
16383 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
16384
16385         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
16386         * crtstuff.c: Not here.
16387         * dwarf2out.c: Or here.
16388         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
16389         info.
16390
16391 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
16392
16393         * function.h (free_after_compilation): Remove decl parameter.
16394         (free_varasm_status0: Likewise.
16395         (free_emit_status): Likewise.
16396         (free_stmt_status): Likewise.
16397         (free_after_compilation): Likewise.
16398         (init_lang_status): New variable.
16399         (free_lang_status): Likewise.
16400         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
16401         * function.c (init_lang_status): New variable.
16402         (free_lang_status): Likewise.
16403         (push_function_context_to): Don't set function::decl here.
16404         (free_after_copmilation): Make decl parameter implicit.  Call
16405         free_lang_status if defined.
16406         (prepare_function_start): Call init_lang_status if defined.
16407         (init_function_start): Set function::decl here.
16408         * profile.c (output_func_start_profiler): Don't call pushdecl
16409         until we've actually started the function.
16410         * stmt.c (free_stmt_status): Make decl parameter implicit.
16411         * toplev.c (rest_of_compilation): Don't pass decl to
16412         free_after_compilation.
16413         * varasm.c (free_varasm_status): Likewise.
16414
16415 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16416
16417         * except.c (call_get_eh_context): Add root when allocating static
16418         tree variable.
16419
16420 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
16421
16422         * arm.c: Include "ggc.h".
16423         (arm_add_gc_roots): New function.
16424         (arm_override_options): Call it.
16425         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
16426
16427         * arm.md (define_asm_attributes): Add a pool_range attribute.
16428
16429 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
16430
16431         * extend.texi (Volatiles): New node.
16432
16433 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
16434
16435         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
16436         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
16437         (struct ggc_any): Replace `mark' with `magic_mark'.
16438         (ggc_alloc_string): Use memcpy, not bcopy.
16439         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
16440         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
16441         (ggc_free_any): New.
16442         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
16443         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
16444         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
16445         Use IS_MARKED. Use ggc_free_any.
16446
16447 1999-09-09  Scott Bambrough <scottb@netwinder.org>
16448
16449         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
16450
16451 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
16452
16453         * toplev.c (main): Always init_ggc.
16454
16455 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
16456
16457         * except.c (find_all_handler_type_matches): Free the list if
16458         we found no matches.
16459
16460         * combine.c (SUBST): Break out to a real function do_SUBST.
16461         (SUBST_INT): Likewise.
16462         * gcse.c (free_pre_mem): Free `temp_bitmap'.
16463         (pre_insert): Free `inserted'.
16464         * loop.c (basic_induction_var): Always set `location'.
16465
16466         * function.c (expand_function_end): Add initial_trampoline as a root.
16467         * rtl.h (init_varasm_once): Declare.
16468         * toplev.c (compile_file): Call it.
16469         * ggc-simple.c (ggc_mark_string_ptr): New.
16470         (ggc_add_string_root): New.
16471         (ggc_collect): Disable collection avoidance temporarily.
16472         * ggc.h (ggc_add_string_root): Declare.
16473         * except.c (create_rethrow_ref): Use ggc_alloc_string.
16474         * optabs.c (init_libfuncs): Likewise.
16475         * varasm.c (named_section): Use ggc_alloc_string.
16476         (make_function_rtl): Likewise.
16477         (make_decl_rtl): Likewise.
16478         (assemble_static_space): Likewise.
16479         (assemble_trampoline_template): Likewise.
16480         (output_constant_def): Likewise.
16481         (force_const_mem): Likewise.
16482         (mark_const_hash_entry): New.
16483         (mark_pool_sym_hash_table): New.
16484         (mark_varasm_state): Use it.
16485         (init_varasm_once): New.
16486
16487         * expr.h (init_one_libfunc): Declare.
16488         * optabs.c (init_one_libfunc): New.
16489         (init_optabs): Use it.
16490         * config/gofast.h: Likewise.
16491         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
16492         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
16493
16494 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
16495
16496         * Makefile.in (cppexp.o): Depend on cpphash.h.
16497         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
16498         Include cpphash.h.
16499         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
16500         * cpplib.c (do_define): Generalise to handle poisoned definitions,
16501         redefining poisoned identifiers, etc.
16502         (do_undef): Don't allow poisoned identifiers to be undefined.
16503         (do_pragma): Add #pragma poison.
16504         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
16505
16506         * cccp.c: Add T_POISON node type.
16507         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
16508         poisoned xxx.
16509         (do_define): Generalise to handle poisoned definitions,
16510         redefining poisoned identifiers, etc.
16511         (do_undef): Don't allow poisoned identifiers to be undefined.
16512         (do_pragma): Add #pragma poison.
16513         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
16514
16515         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
16516         * c-pragma.h: Add ps_poison state.  We now always have generic
16517         pragmas.
16518
16519 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
16520
16521         * ggc.h (ggc_alloc): New function.
16522         (ggc_mark): Likewise.
16523         * ggc-simple.c (ggc_any): New structure.
16524         (ggc_status): Add anys.
16525         (n_anys_collected): New variable.
16526         (ggc_alloc): Define.
16527         (ggc_mark): Likewise.
16528         (ggc_collect): Collect the anys.
16529
16530 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16531
16532         * c-decl.c (mark_binding_level): Make static to match prototype.
16533
16534 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
16535
16536         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
16537
16538 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
16539
16540         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
16541         will use into account.  Expand the max width to 5.
16542         * rtl.c: Likewise.
16543
16544 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
16545
16546         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
16547         for the rtx length.
16548
16549 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
16550
16551         * alpha.md (call value patterns): Remove the result predicates.
16552
16553 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
16554
16555         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
16556         last change.
16557
16558 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16559
16560         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
16561         changed from extern char *, to extern PTR.  Also fix typo in
16562         NEED_DECLARATION_REALLOC test.
16563
16564         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
16565
16566 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16567
16568         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
16569         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
16570         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
16571         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
16572
16573         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
16574
16575         * cccp.c (pcfinclude): Likewise.
16576
16577         * global.c (allocno_compare): Likewise.
16578
16579         * haifa-sched.c (rank_for_schedule): Likewise.
16580
16581         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
16582
16583         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
16584
16585         * stupid.c (stupid_reg_compare): Likewise.
16586
16587         * tree.c (_obstack_allocated_p): Likewise.
16588
16589         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
16590
16591 1999-09-08  Bruce Korb  autogen@linuxbox.com
16592
16593         * Makefile.in: Give the hapless gperf user a hint about
16594         why "gperf -F" fails.
16595
16596 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
16597
16598         * lists.c: Include ggc.h.
16599         (zap_lists): New.
16600         (init_EXPR_INSN_LIST_cache): Install it.
16601
16602         * ggc-simple.c (init_ggc): Absorb the old init.
16603         (ggc_push_context): Use xcalloc.
16604         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
16605         (ggc_collect): Add [rvts] tags to the collection stats.
16606
16607 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
16608
16609         * cccp.c (main): Fix handling of -include and -imacros options.
16610
16611 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
16612
16613         * cpplib.c (cpp_push_buffer): Fix order of arguments.
16614
16615 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
16616
16617         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
16618         genrtl.c.
16619
16620 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
16621
16622         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
16623         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
16624         and SET_DEST. Update comment.
16625
16626 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16627
16628         * config/c4x/c4x.c: Include ggc.h.
16629         (c4x_add_gc_roots): New function.
16630         (c4x_override_options): Call c4x_add_gc_roots.
16631
16632 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
16633
16634         * defaults.h (TARGET_ESC): Move ...
16635         * system.h: ... here, where Linas had it in the first place.  Silly me.
16636
16637 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
16638
16639         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
16640         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
16641         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
16642         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
16643         * defaults.h (TARGET_ESC): Add default.
16644
16645 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
16646
16647         * configure.in: add i370-*-openedition, i370-*-mvs and
16648         i370-*-linux targets
16649
16650 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
16651
16652         * dsp16xxx.c: Include ggc.h
16653         (override_options): Mark GC roots.
16654         * mn10200.c: Include ggc.h.
16655         (asm_file_start): Mark GC roots.
16656         * tahoe.c: Include ggc.h.
16657         (extensible_operand): Mark GC roots.
16658
16659 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
16660
16661         * README: Add section discussing status of ELF ABI.
16662         * i370.c: Fix misc spelling mistakes.
16663         (i370_label_scan): Updated notes, exception handling.
16664         (i370_function_prolog): Simplify ELF stack handling.
16665         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
16666         (STACK_GROWS_DOWNWARD): ELF stack grows down.
16667         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
16668         * i370.md: (movdi): Add notes.
16669         (floatsidf2): Use stack not rtca for scratch float area.
16670         (iorsi3): Correct operand constraints.
16671         * x-oe: Restore TAROUTOPTS which are used by pax.
16672
16673 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
16674
16675         * rs6000.c: Include ggc.h.
16676         (rs6000_add_gc_roots): New function.
16677         (override_options): Call it.
16678
16679 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
16680
16681         * alpha.h (alpha_compare): New.
16682         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
16683         * alpha.c: Likewise for the definitions.
16684         (alpha_emit_conditional_branch): Update for alpha_compare.
16685         (alpha_emit_conditional_move): Likewise.
16686         * alpha.md (cmpdf, cmpdi): Likewise.
16687         (setcc patterns): Likewise.  Zero alpha_compare after use.
16688         (sne): Optimize (x != 0) into (0U < x).
16689
16690 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
16691
16692         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
16693         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
16694         (INIT_EXPANDERS): Remove.
16695         * alpha.c: Include ggc.h.
16696         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
16697         (alpha_init_machine_status, alpha_mark_machine_status): New.
16698         (override_options): Install them.
16699         (struct machine_function): Moved to alpha.h.
16700         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
16701         (alpha_init_expanders): Remove.
16702         (alpha_return_addr): Adjust to use current_function->machine.
16703         (alpha_ra_ever_killed): Likewise.
16704         (alpha_expand_epilogue): Likewise.
16705         * alpha.md (eh_epilogue): Likewise.
16706
16707 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
16708                           Melissa O'Neill  <oneill@cs.sfu.ca>
16709                           Geoffrey Keating  <geoffk@cygnus.com>
16710
16711         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
16712         call-used registers (call-saved registers must still be contiguous
16713         and end with r31, of course).
16714
16715 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
16716
16717         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
16718         (self_promoting_type_p): Delete.
16719         (self_promoting_args_p): Move ...
16720         * c-common.c: ... here.
16721         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
16722         (simple_type_promotes_to): New.
16723         * builtins.c (lang_type_promotes_to): New.
16724         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
16725         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
16726         * c-common.h: ... here.
16727         (self_promoting_args_p, simple_type_promotes_to): Declare.
16728         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
16729         (grokdeclarator): Likewise.
16730         * tree.h (lang_type_promotes_to): Declare.
16731
16732 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
16733
16734         Add some machine-dependent GC roots.
16735         * sparc.c: Include ggc.h.
16736         (sparc_add_gc_roots): New function.
16737         (mark_ultrasparc_pipeline_state): Likewise.
16738         (override_options): Call sparc_add_gc_roots.
16739         * pa.c: Include ggc.h.
16740         (pa_add_gc_roots): New function.
16741         (mark_deferred_plabels): Likewise.
16742         (override_options): Call pa_add_gc_roots.
16743         * mips.c: Include ggc.h.
16744         (mips_add_gc_roots): New function.
16745         (override_options): Use it.
16746
16747 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16748
16749         * cpperror.c (cpp_file_line_for_message): Constify a char*.
16750
16751         * cppexp.c (parse_number, parse_charconst, cpp_lex,
16752         cpp_parse_expr): Add static prototypes.
16753         (parse_charconst): Don't cast away const-ness.
16754         (token): Constify a char*.
16755
16756         * cppfiles.c (file_name_list, include_hash, find_include_file,
16757         finclude, initialize_input_buffer): Constify a char*.
16758         (file_cleanup, find_position): Add static prototypes.
16759
16760         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
16761         collect_expansion): Add static prototypes.
16762         (cpp_install, create_definition, monthnames): Constify a char*.
16763
16764         * cpphash.h (cpp_install): Likewise.
16765
16766         * cppinit.c (known_suffixes, default_include,
16767         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
16768         (base_name, dump_special_to_buffer, initialize_dependency_output):
16769         Add static prototypes.
16770
16771         * cpplib.c (my_strerror): Constify a char*.
16772         (null_underflow, null_cleanup, skip_comment, copy_comment,
16773         copy_rest_of_line, handle_directive, pass_thru_directive,
16774         get_directive_token, read_line_number, cpp_print_file_and_line,
16775         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
16776         v_cpp_warning_with_line, detect_if_not_defined,
16777         consider_directive_while_skipping): Add static prototypes.
16778         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
16779         cpp_pedwarn_with_file_and_line): Constify a char*.
16780
16781         * cpplib.h (cpp_options, include_hash, progname, definition,
16782         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
16783         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
16784         find_include_file, deps_output, include_hash): Constify a char*.
16785
16786         * cppmain.c (progname): Constify.
16787         (main): Add prototype.  Use return, not exit.
16788
16789         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
16790         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
16791         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
16792         check_protection): Add static prototype.
16793         (xfree): Remove.
16794         (progname, recognized_macrom, recognized_extern): Constify a char*.
16795         (main): Add prototype.
16796
16797         * gen-protos.c (progname): Constify a char*.
16798
16799 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
16800
16801         * emit-rtl.c (free_emit_status): Take decl as a parameter.
16802         (init_emit_once): Add more GC roots.
16803         * except.c (mark_func_eh_entry): New function.
16804         (mark_eh_node): Mark false_label and rethrow_label.
16805         (init_eh): Add more GC roots.
16806         * function.c (free_after_compilation): Take decl as a paramter.
16807         Call free_stmt_status.
16808         (mark_function_state): Don't assume x_parm_reg_stack_loc is
16809         non-NULL.
16810         * function.h (free_after_compilation): Change prototype.
16811         (free_varasm_status): Likewise.
16812         (free_emit_status): Likewise.
16813         (free_stmt_status): New function.
16814         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
16815         Remove, replacing with ...
16816         (ggc_status): New structure.
16817         (ggc_chain): New variable.
16818         (init_gcc): Define.
16819         (ggc_push_context): New function.
16820         (ggc_pop_context): Likewise.
16821         (ggc_alloc_rtx): Adjust for use of ggc_chain.
16822         (ggc_alloc_rtvec): Likewise.
16823         (ggc_alloc_tree): Likewise.
16824         (ggc_alloc_string): Likewise.
16825         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
16826         (ggc_mark_tree): Give language-dependent code a chance to mark
16827         `x' nodes.
16828         (ggc_mark_tree_varray): Handle empty arrays.
16829         (ggc_collect): Adjust for use of ggc_chain.  Clear
16830         bytes_alloced_since_last_gc.
16831         * ggc.h (ggc_pop_context): New function.
16832         (ggc_push_context): Likewise.
16833         * print-tree.c (print_node): Don't print obstacks when GC'ing.
16834         * stmt.c (free_stmt_status): New function.
16835         (init_stmt_for_function): Clear last_expr_value.
16836         * toplev.c (rest_of_compilation): Always call free_after_compilation.
16837         Conditionalize call to ggc_collect.
16838         (main): Call init_ggc.
16839         * tree.c (push_obstacks): Do the push, even when GC'ing.
16840         (push_obstacks_nochange): Likewise.
16841         (pop_obstacks): Liekwise.
16842         * varasm.c (free_varasm_status): Take decl as a parameter.
16843
16844 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16845
16846         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
16847         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
16848         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
16849         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
16850
16851 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
16852
16853         * pa/x-pa-mpeix: New file for the MPE port.
16854
16855         * pa/quadlib.asm: New file for long double support.
16856
16857         * configure.in: Add hppa1.0-*-mpeix for MPE port.
16858         * configure: Rebuilt.
16859
16860 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
16861
16862         * final.c (shorten_branches): Fix last change.
16863
16864 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
16865
16866         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
16867
16868 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
16869
16870         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
16871         details.
16872
16873 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16874
16875         * c-aux-info.c (concat): Don't define.
16876
16877         * cccp.c (my_strerror): Likewise.  All callers changed to use
16878         xstrerror instead.
16879         (do_include): Call xstrdup, not xmalloc/strcpy.
16880         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
16881         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
16882
16883         * collect2.c (my_strsignal): Likewise.  All callers changed to use
16884         strsignal instead.
16885         (locatelib): Call xstrdup, not xmalloc/strcpy.
16886
16887         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
16888
16889         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
16890
16891         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
16892
16893         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
16894
16895         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
16896
16897         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
16898
16899         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
16900         malloc/realloc.
16901         (find_all_handler_type_matches): Likewise.  Don't check return
16902         value.
16903         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
16904         xmalloc, not malloc.
16905         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
16906
16907         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
16908         (init_spec): Call xcalloc, not xmalloc/bzero.
16909         (set_spec): Call xstrdup, not save_string.
16910         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
16911         (find_a_file): Call xstrdup, not xmalloc/strcpy.
16912         (process_command): Call xstrdup, not save_string.
16913         (main): Call xcalloc, not xmalloc/bzero.
16914
16915         * gcov.c (xmalloc): Don't define.
16916         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
16917         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
16918         (output_data): Call xcalloc, not xmalloc/bzero.
16919
16920         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
16921
16922         * mips-tdump.c (xmalloc): Don't define.
16923         (print_symbol): Call xmalloc, not malloc.
16924         (read_tfile): Call xcalloc, not calloc.
16925
16926         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
16927         Don't define.  All callers of xfree/my_strsignal changed to use
16928         free/strsignal instead.
16929         (allocate_cluster): Call xcalloc, not calloc.
16930
16931         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
16932         Fix memory leak, free allocated memory.
16933
16934         * prefix.c (translate_name): Call xstrdup, not save_string.
16935         (update_path): Likewise.
16936
16937         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
16938
16939         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
16940         Don't define.  Callers of xfree/savestring2 changed to use
16941         free/concat instead.
16942
16943         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
16944         (init_elim_table): Likewise.
16945
16946         * resource.c (init_resource_info): Likewise.
16947
16948         * stupid.c (stupid_life_analysis): Likewise.
16949
16950         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
16951         (open_dump_file): Call concat, not xmalloc/strcpy/...
16952         (clean_dump_file): Likewise.
16953         (compile_file): Call xstrdup, not xmalloc/strcpy.
16954
16955 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
16956
16957         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
16958         * v850.c (v850_va_arg): New.
16959
16960 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16961
16962         * haifa-sched.c: Tidy comments.
16963
16964 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16965
16966         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
16967         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
16968         $(out_object_file)): Depend on ggc.h.
16969         * c-common.c: Include "ggc.h".
16970         (combine_strings): If doing GC, use ggc_alloc_string.
16971         * c-decl.c: Include "ggc.h".
16972         (ggc_p): Define with value 0.
16973         (mark_binding_level): New function.
16974         (init_decl_processing): Add GC roots.
16975         (mark_c_function_context): New function.
16976         (lang_mark_false_label_stack): New function.
16977         (lang_mark_tree): New function.
16978         (lang_cleanup_tree): New function.
16979         * c-lang.c: Include "ggc.h".
16980         (lang_init): Call c_parse_init.
16981         * c-lex.c: Include "ggc.h".
16982         (check_linenum): If doing GC, don't copy filenames to permanent
16983         obstack.
16984         * c-parse.in: Include "ggc.h".
16985         (c_parse_init): New function.
16986         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
16987         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
16988
16989         * except.c (mark_eh_state): Mark more state.
16990         * function.c (mark_function_state): Likewise.
16991         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
16992         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
16993         * toplev.c (mark_file_stack): New function.
16994         (compile_file): If doing GC, use ggc_alloc_string on input filename.
16995         (main): Add root for input_file_stack.
16996
16997         * i386.c: Include "ggc.h".
16998         (ix86_mark_machine_status): New function.
16999         (override_options): Set mark_machine_status.
17000
17001 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17002
17003         * tree.c (copy_node): Copy node contents also if doing GC.
17004
17005 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
17006
17007         * collect2.c (scan_libraries): Fix double-thinko :-).
17008
17009 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
17010
17011         * collect2.c (scan_libraries): Fix thinko.
17012
17013         * cse.c (delete_trivially_dead_insns): Do not skip the last
17014         insn if it is a real insn.
17015
17016 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
17017
17018         * Makefile.in (ggc-simple.o): Depend on hash.h.
17019         * ggc.h (ggc_add_tree_hash_table_root): Declare.
17020         (ggc_mark_tree_varray): Likewise.
17021         (ggc_mark_tree_hash_table): Likewise.
17022         * ggc-simple.c: Include hash.h.
17023         (ggc_mark_tree_hash_table_ptr): New function.
17024         (ggc_mark_tree_hash_table_entry): Likewise.
17025         (ggc_mark_tree_hash_table): Likewise.
17026         (ggc_add_tree_hash_table_root): Likewise.
17027         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
17028         rtx, when defining fields.
17029
17030 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
17031
17032         * profile.c (output_func_start_profiler): Remove apparently
17033         nonsensical call to start_sequence.
17034
17035 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
17036
17037         * clipper/clipper.c (clipper_va_start): Fix typos.
17038
17039         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
17040         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
17041         (spur_va_arg): New stub.
17042
17043         * configure.in: Comment out pyramid.
17044
17045 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
17046
17047         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
17048         don't conflict with the bits that win32, cygwin, and dgux
17049         defines.
17050
17051 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
17052                           Bernd Schmidt <bernds@cygnus.co.uk>
17053
17054         * integrate.c (function_cannot_inline_p): Do not inline
17055         functions with forced labels.
17056
17057 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
17058                           Bernd Schmidt <bernds@cygnus.co.uk>
17059                           Mark Mitchell  <mark@codesourcery.com>
17060
17061         * Makefile.in (ggc-simple.o): Depend on varray.h.
17062         (rtl.o): Depend on ggc.h.
17063         (genattrtab.o): Depend on ggc.h.
17064         (print-tree.o): Likewise.
17065         (fold-const.o): Likewise.
17066         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
17067         (make_insn_raw): Don't cache insns when GC'ing.
17068         (emit_insn_before): Likewise.
17069         (emit_insn_after): Likewise.
17070         (emit_insn): Likewise.
17071         (start_sequence): Use xmalloc to allocate the sequence_stack.
17072         (end_sequence): Add free to free it.
17073         (gen_sequence): Don't cache insns when GC'ing.
17074         (clear_emit_caches): Don't use sequence_element_free_list.
17075         (init_emit): Use xcalloc, not xmalloc+bzero.
17076         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
17077         * function.c (pop_function_context_from): Use free to free the
17078         fixup_var_refs_queue.
17079         (put_reg_into_stack): Allocate it with xmalloc.
17080         * genattrtab.c: Include ggc.h.
17081         (operate_exp): Don't use obstack_free when GC'ing.
17082         (simplify_cond): Likewise.
17083         (simplify_text_exp): Likewise.
17084         (optimize_attrs): Likewise.
17085         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
17086         GC'ing.
17087         (gencode): Generate a #include for ggc.h.
17088         * ggc-callbacks.c (ggc_p): Define it to zero.
17089         * ggc-none.c (ggc_p): Likewise.
17090         * ggc-simple.c: Include varray.h.
17091         (ggc_mark_tree_varray): New function.
17092         (ggc_add_tree_varray_root): Likewise.
17093         (ggc_mark_tree_varray_ptr): Likewise.
17094         * ggc.h (ggc_p): Declare.
17095         (varray_head_tag): Likewise.
17096         (ggc_add_tree_varray_root): Declare.
17097         * print-tree.c (print_node): Don't check for TREE_PERMANENT
17098         inconsistencies when GC'ing.
17099         * rtl.c: Include ggc.h.
17100         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
17101         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
17102         (rtx_free): Don't call obstack_free when GC'ing.
17103         * toplev.c (rest_of_compilation): Call ggc_collect after every
17104         pass, if GC'ing.
17105         * tree.c (push_obstacks): Do nothing, if GC'ing.
17106         (pop_obstacks_nochange): Likewise.
17107         (pop_obstacks): Likewise.
17108         (make_node): Use ggc_alloc_tree when GC'ing.
17109         (copy_node): Likewise.
17110         (get_identifier): Use ggc_alloc_string when GC'ing.
17111         (build_string): Likewise.
17112         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
17113         (tree_cons): Likewise.
17114         (build1): Likewise.
17115         (type_hash_canon): Don't call obstack_free when GC'ing.
17116
17117 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
17118
17119         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
17120         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
17121
17122 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
17123                           Bernd Schmidt <bernds@cygnus.co.uk>
17124                           Mark Mitchell  <mark@codesourcery.com>
17125
17126         * Makefile.in (stor-layout.o): Depend on ggc.h.
17127         (expr.o): Depend on ggc.h.
17128         (profile.o): Depend on ggc.h.
17129         (stor-layout.o): Depend on ggc.h.
17130         * emit-rtl.c (init_emit_once): Add gc roots.
17131         * expr.c: Include ggc.h.
17132         (emit_block_move): Add gc roots.
17133         (clear_storage): Likewise.
17134         * expr.h (init_stor_layout_once): New function.
17135         * profile.c: Include ggc.h.
17136         (init_arc_profiler): profiler_label is a root.
17137         * scan.c (make_sstring_space): Trust xrealloc to function
17138         correctly with first parameter NULL.
17139         * stor-layout.c: Include ggc.h.
17140         (set_sizetype): Add gc root.
17141         (init_stor_layout_once): New function.
17142         * toplev.c (compile_file): Call it.
17143
17144 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
17145                           Bernd Schmidt <bernds@cygnus.co.uk>
17146                           Mark Mitchell  <mark@codesourcery.com>
17147
17148         * Makefile.in (tree.o): Depend on ggc.h.
17149         (varasm.o): Likewise.
17150         (function.o): Likewise.
17151         (stmt.o): Likewise.
17152         (except.o): Likewise.
17153         (optabs.o): Likewise.
17154         (emit-rtl.o): Likewise.
17155         * emit-rtl.c: Include ggc.h.
17156         (sequence_element_free_list): Remove, and all references.
17157         (mark_sequence): New functions.
17158         (mark_emit_state): New function.
17159         * except.c: Include ggc.h.
17160         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
17161         (mark_tree_label_node): New functions.
17162         (mark_eh_state): New function.
17163         * function.c: Include ggc.h.
17164         (mark_temp_slot, mark_function_chain): New functions.
17165         (mark_function_state): New function.
17166         (init_function_once): New function.
17167         * function.h (init_function_once): New function.
17168         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
17169         * ggc.h (label_node): Declare.
17170         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
17171         (lang_mark_false_label_stack): New function.
17172         (mark_temp_slot): Remove declaration.
17173         (mark_function_chain): Likewise.
17174         (mark_eh_state): Adjust prototype.
17175         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
17176         Likewise.
17177         * optabs.c: Include ggc.h.
17178         (mark_optab): New function.
17179         (init_optabs): Add gc roots.
17180         * stmt.c: Include ggc.h.
17181         (mark_cond_nesting, mark_loop_nesting): New functions.
17182         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
17183         (mark_stmt_state): New function.
17184         * toplev.c (compile_file): Call init_function_once.
17185         * tree.c: Include ggc.h.
17186         (type_hash): Move declaration earlier in file.
17187         (TYPE_HASH_SIZE, type_hash_table): Likewise.
17188         (init_obstacks): Add gc roots.
17189         (mark_type_hash): New function.
17190         * varasm.c: Include ggc.h.
17191         (mark_pool_constant): New function.
17192         (mark_varasm_state): New function.
17193
17194 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17195
17196         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
17197
17198 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
17199
17200         * c-decl.c (struct language_function): Renamed from struct c_function.
17201         Delete elt NEXT.
17202         (c_function_chain): Delete.
17203         (push_c_function_context): New arg F.  Don't warn about nested
17204         functions here.  Fill LANGUAGE elt of F.  Delete code to update
17205         c_function_chain.  Don't call push_function_context.
17206         (pop_c_function_context): New arg F.  Restore from there instead of
17207         from c_function_chain.  Don't call pop_function_context.  Clear out
17208         LANGUAGE field of F when done.
17209         * c-lang.c: Include "function.h"
17210         (lang_init): Initialize save_lang_status and restore_lang_status.
17211         * c-parse.in (nested_function, nested_function_notype): Warn about
17212         nested functions.  Call push_function_context/pop_function_context
17213         instead of the _c_ variants.
17214         * c-tree.h (push_c_function_context, pop_c_function_context): Update
17215         prototype.
17216         * Makefile.in (c-lang.o): Update dependencies.
17217
17218         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
17219         regno_pointer_flag, regno_pointer_align.
17220         (gen_reg_rtx): Use xrealloc to enlarge them.
17221         (free_emit_status): New function.
17222         * function.c (mark_machine_status, mark_lang_status): New variables.
17223         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
17224         in some bits from assign_stack_local.  All callers changed to use new
17225         name.
17226         (assign_stack_local): Just call assign_stack_local_1.
17227         (free_after_compilation): New function.
17228         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
17229         (trampoline_address): Likewise.
17230         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
17231         (prepare_function_start): Explicitly clear some more variables.
17232         * function.h (struct function): New elt can_garbage_collect.
17233         (mark_machine_status, mark_lang_status): Declare variables.
17234         (free_after_compilation, free_emit_status, free_varasm_status,
17235         init_varasm_status): Declare functions.
17236         * toplev.c (rest_of_compilation): Call free_after_compilation when
17237         done with the current function.
17238         * varasm.c (free_varasm_status): New function.
17239
17240 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
17241
17242         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
17243         (EXPAND_BUILTIN_VA_ARG): Define.
17244         * sparc.c (sparc_va_start): New.
17245         (sparc_va_arg): New.
17246
17247 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17248
17249         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
17250
17251 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17252
17253         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
17254
17255 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
17256
17257         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
17258         (OBJS): Add $(GGC).
17259         (ggc-callbacks.o): New target.
17260         * ggc-callbacks.c: New file.
17261
17262 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17263
17264         * expr.h: Collapse individual optab and libfunc vars to arrays.
17265         (optab_index, libfunc_index): New enumerations.
17266         (optab_table, libfunc_table): New arrays.
17267         Add accessor macros for both.
17268
17269         * optabs.c (optab_table, libfunc_table): New.
17270         Delete declarations for individual optab and libfunc vars.
17271
17272 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
17273
17274         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
17275
17276 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
17277
17278         * Makefile.in (GGC, GGC_LIB): New.
17279         (HOST_RTL): Include ggc-none.o.
17280         (ggc-simple.o): New target.
17281         (ggc-none.o): Likewise.
17282         * tree.h (tree_common): Add gc_mark.
17283         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
17284         (struct rtvec_def): Add gc_mark.
17285         * emit-rtl.c (global_rtl): Update static initializers to contain
17286         enough initializers.
17287         * ggc.h, ggc-none.c, ggc-simple.c: New files.
17288         * toplev.c (gc_time): New variable.
17289         (all_time): New variable.
17290         (compile_file): Print gc time.
17291         (print_time): Calculate percentage of the whole.
17292
17293 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17294
17295         Change obstack memory management and varasm constant pool handling so
17296         that nested functions are treated like any other functions.
17297         * function.c (init_machine_status): New variable.
17298         (push_function_context_to): Set contains_functions for the outer
17299         function.  Don't call save_varasm_status.
17300         (pop_function_context_from): Don't call restore_varasm_status.  Don't
17301         set current_function_contains_functions.
17302         (prepare_function_start): Call init_varasm_status rather than
17303         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
17304         is non-null.
17305         * function.h (struct function) Add field varasm.  Delete fields
17306         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
17307         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
17308         (init_machine_status): Declare.
17309         (save_varasm_status, restore_varasm_status): Delete declarations.
17310         (save_tree_status, restore_tree_status): Delete last argument.
17311         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
17312         code.  All callers changed.
17313         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
17314         save_constants_in_decl_trees, restore_constants, save_constants,
17315         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
17316         functions.
17317         (inlining): New variable.
17318         (reg_map, label_map, insn_map, orig_asm_operands_vector,
17319         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
17320         variables.
17321         (save_for_inline_nocopy): Don't save constants.
17322         Don't set inl_emit field in current_function.
17323         (expand_inline_function): Use emit field, not inl_emit, of the inlined
17324         function.  Set new variable inlining before
17325         calling copy_rtx_and_substitute.
17326         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
17327         constant pool references if inlining is nonzero.
17328         Delete ADDRESS and (most of the) CONST cases.
17329         (output_inline_function): Save and restore current_function/
17330         current_function_decl.  Delete restore_constants code.  Don't call
17331         init_const_rtx_hash_table.
17332         * output.h (init_const_rtx_hash_table): Don't declare.
17333         * rtl.h (struct function): Declare.
17334         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
17335         * toplev.c (rest_of_compilation): Don't treat nested functions or
17336         functions containing them specially.  Delete all code to deal with
17337         save_for_inline_copying.
17338         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
17339         inline_obstacks): Delete variables.
17340         (save_tree_status): Lose arg CONTEXT.  All callers changed.
17341         Simply allocate a new function_maybepermanent_obstack for the new
17342         function, delete all the special cases.
17343         Don't save inline_obstacks.
17344         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
17345         Delete special handling for function_maybepermanent_obstack; simply
17346         free it if empty.
17347         Don't restore inline_obstacks.
17348         (permanent_allocation):  Delete code that frees inline_obstacks.
17349         (print_inline_obstack_statistics): Delete function.
17350         (dump_tree_statistics): Don't call it.
17351         * varasm.c (struct varasm_status): New.
17352         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
17353         last_pool, pool_offset, const_double_chain): Delete global
17354         variables, replace with accessor macros.
17355         (immed_double_const): Don't walk const_double_chain outside a
17356         function, but don't treat nested functions specially anymore.
17357         (immed_real_const_1): Likewise.
17358         (clear_const_double_mem): Don't treat nested functions specially.
17359         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
17360         (save_varasm_status, restore_varasm_status): Delete functions.
17361         (init_varasm_status): New function.
17362         (force_const_mem): Don't treat nested functions specially.
17363         (find_pool_constant): Accept new arg F, search for constants in
17364         that function's pool rather than the current one.  All callers
17365         changed.
17366         (get_pool_constant_for_function, get_pool_mode_for_function): New
17367         functions.
17368
17369         * i386.c (init_386_machine_status): New function, mostly from
17370         clear_386_stack_locals.
17371         (struct machine_functions): Rename element names to avoid name
17372         clashes.
17373         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
17374         macros, replacing global variables.
17375         (clear_386_stack_locals, save_386_machine_status,
17376         restore_386_machine_status): Delete functions.
17377         (override_options): Initialize init_machine_status.
17378         * i386.h (INIT_EXPANDERS): Delete macro.
17379         (save_386_machine_status, restore_386_machine_status,
17380         clear_386_stack_locals): Delete declarations.
17381
17382 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17383
17384         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
17385         (doloop_begin):  Simplify pattern and use emit_jump_insn.
17386         (doloop_end): Simplify pattern, switch operand order,
17387         and use emit_jump_insn.
17388
17389 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
17390
17391         * function.h (struct function): Add new element LANGUAGE.
17392         (save_lang_status): Declare new variable.
17393         (restore_lang_status): Likewise.
17394         * function.c (save_lang_status): Define.
17395         (restore_lang_status): Likewise.
17396         (push_function_context_to): Call language-specific save function.
17397         (pop_function_context_from): Call language-specific restore function.
17398
17399 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
17400
17401         * i386.md (movsf_1): Check REG_P before use of REGNO.
17402         (movdf_1): Likewise.
17403         (movxf_1): Likewise.
17404         (extendsfdf2): Likewise.
17405         (extendsfxf2): Likewise.
17406         (extenddfxf2): Likewise.
17407
17408 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17409
17410         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
17411         constants into memory.
17412         (c4x_shiftable_constant): New function.
17413         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
17414         (c4x_shiftable_constant): Declare.
17415         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
17416         ashlqi3_noclobber): Add new patterns and associated splitters.
17417
17418 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
17419
17420         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
17421         * dwarf2out.c (dwarf2out_frame_init): Likewise.
17422         * final.c (shorten_branches): Likewise.
17423         * global.c (global_alloc): Likewise.
17424         * haifa-sched.c (build_control_flow): Likewise.
17425         * stmt.c (check_for_full_enumeration_handling): Likewise.
17426         (estimate_case_costs): Likewise.
17427
17428 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
17429
17430         * rtl.h (RTL_CHECKC2): Fix typo in last change.
17431
17432 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
17433
17434         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
17435         (recompute_reg_usage): Likewise.
17436         * rtlanal.c (find_regno_fusage): Likewise.
17437
17438         * rtl.c (rtl_check_failed_code1): New function.
17439         (rtl_check_failed_code2): New.
17440         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
17441         (RTL_CHECKC1, RTL_CHECKC2): New.
17442         (XC*): New accessor macros.
17443         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
17444         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
17445         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
17446         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
17447         (TRAP_*, RANGE_INFO_*): Likewise.
17448
17449 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17450
17451         * Makefile.in (tlink.o): Don't depend on toplev.h.
17452
17453         * collect2.c (c_file, o_file, export_file, import_file, ldout,
17454         output_file, nm_file_name, ldd_file_name, strip_file_name,
17455         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
17456         add_prefix, prefix_from_env, prefix_from_string, do_wait,
17457         fork_execute, maybe_unlink, add_to_list,
17458         extract_init_priority, write_list, dump_list,
17459         dump_prefix_list, write_list_with_asm, write_c_file,
17460         write_c_file_stat, write_c_file_glob, scan_prog_file,
17461         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
17462         ignore_library, extract_string, notice, dump_file, target_machine,
17463         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
17464         read_file, print_load_command): Constify a char*.
17465         (fdopen, error, fatal, fatal_perror): Don't prototype.
17466         (my_strerror): Remove.  All callers use xstrerror instead.
17467         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
17468         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
17469         to xcalloc/strcpy/strcat/...  to one call to concat.
17470         (main, scan_prog_file, scan_libraries): Use an intermediate
17471         `const char **' to build an argv array.
17472         (mapfile, libselect, libcompare, locatelib): Add prototypes.
17473
17474         * collect2.h (collect_execute, collect_wait, dump_file,
17475         file_exists): Constify a char*.
17476         (ldout, c_file_name, temporary_obstack, permanent_obstack,
17477         temporary_firstobj, vflag, debug): Add extern declarations.
17478         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
17479
17480         * tlink.c: Don't include toplev.h.
17481         (vflag, debug, ldout, c_file_name, temporary_obstack,
17482         permanent_obstack, temporary_firstobj): Don't declare.
17483         (tlink_execute, frob_extension, symbol_hash_lookup,
17484         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
17485         recompile_files, read_repo_files, demangle_new_symbols,
17486         scan_linker_output): Constify a char*.
17487         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
17488         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
17489
17490 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
17491
17492         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
17493         (relative) rather than jsr (absolute) subroutine call insns.
17494         * config/m68k/m68k-coff.h: Ditto.
17495
17496 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
17497
17498         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
17499         now rework these too.
17500         (arm_reorg): If an insn can't reach the end of the current pool,
17501         ensure that we emit that pool before the insn.
17502
17503 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
17504
17505         * tlink.c (scan_linker_output): Skip the initial underscore in
17506         a mangled name if appropriate.
17507
17508 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17509
17510         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
17511         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
17512         error_with_ivar, gen_declarator, create_builtin_decl,
17513         my_build_string, generate_descriptor_table, generate_ivars_list,
17514         generate_dispatch_table, check_protocols, TAG_GETCLASS,
17515         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
17516         dump_base_name, lang_decode_option, build_encode_expr,
17517         start_class, finish_class, encode_pointer, really_start_method,
17518         gen_declaration, dump_interface, handle_class_ref, handle_impent):
17519         Constify.
17520         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
17521         Add static prototypes.
17522         (build_objc_string_decl, build_selector_reference_decl,
17523         encode_bitfield, build_class_reference_decl): Remove unused
17524         parameter, all callers changed.
17525         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
17526         (objc_printable_name): Likewise.  Change second parameter to type int.
17527         (init_objc): Use memcpy, not bcopy, to avoid casts.
17528
17529 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
17530
17531         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
17532         reg notes on a deleted insn.
17533         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
17534
17535 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
17536
17537         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
17538
17539 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17540
17541         * stmt.c (expand_asm_operands): Fix index into inout_mode when
17542         reading it.
17543
17544 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
17545
17546         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
17547         * tm.texi (MD_ASM_CLOBBERS): Document it.
17548
17549 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
17550
17551         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
17552         * except.c (expand_rethrow): Remove unused variable.
17553         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
17554         * flow.c (replace_insns): Likewise.
17555         (create_edge_list, verify_edge_list): Likewise.
17556         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
17557
17558         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
17559         is special code to run.
17560         (main): Don't define operands to emit_operand.
17561         * genrecog.c (main): Don't emit an empty peephole2_insn function.
17562
17563         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
17564
17565         * alpha/alpha.h (normal_memory_operand): Declare.
17566         (reg_no_subreg_operand): Declare.
17567         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
17568
17569 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
17570
17571         * c-parse.in (compstmt_primary_start): New, broken out of first
17572         part of compstmt handling in primary.
17573         (primary): Use it.  Add an error clause.
17574         (compstmt_nostart): Renamed from compstmt; remove all
17575         initial invocations of compstmt_start.
17576         (compstmt): New.
17577
17578 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
17579
17580         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
17581         needed.
17582
17583 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
17584
17585         * combine.c (simplify_shift_const): Remove extra semicolon.
17586         * dwarf2out.c (remove_AT): Likewise.
17587         * expmed.c (expand_mult): Likewise.
17588         * gcov.c (create_program_flow_graph): Likewise.
17589         * reorg.c (mostly_true_jump): Likewise.
17590
17591 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
17592
17593         * fold-const.c (fold_range_test): Do not try to fold the range
17594         test if the rhs or lhs has side effects.
17595
17596         * combine.c (simplify_rtx): Recognize another case of a synthesized
17597         sign extension.
17598
17599         * varasm.c (mark_constant_pool): When marking indirect references,
17600         only look at SYMBOL_REFs.
17601
17602         * except.c (expand_fixup_region_end): Do not peek at
17603         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
17604
17605 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
17606
17607         * flags.h: New variables align_loops, align_loops_log,
17608         align_jumps, align_jumps_log, align_labels, align_labels_log,
17609         align_functions, align_functions_log.
17610         * toplev.c: Define them.
17611         (f_options): Handle -falign-* when they have no argument.
17612         (main): Add logic to set variables for -falign-functions,
17613         -falign-jumps, -falign-labels, -falign-loops.
17614         Make it -fsched-verbose=<n> and -finline-limit=<n>.
17615         (display_help): Change help to match options.
17616         * final.c (LABEL_ALIGN): Default to align_labels_log.
17617         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
17618         (LOOP_ALIGN): Default to align_loops_log.
17619         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
17620         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
17621         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
17622         * varasm.c (assemble_start_function): Handle align_functions.
17623
17624         * config/sparc/sparc.h: Don't declare sparc_align_*.
17625         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
17626         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
17627         sparc.c.
17628         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
17629         it's a promise.
17630         * config/sparc/sparc.c: Delete sparc_align_loops,
17631         sparc_align_jumps, sparc_align_funcs and the corresponding string
17632         variables.
17633         (sparc_override_options): Default align_functions on ultrasparc.
17634         Delete -malign-* handling.
17635
17636         * config/mips/mips.c (override_options):  On 64-bit targets,
17637         try to align code to 64-bit boundaries.
17638         (print_operand): New substitution, %~,
17639         which aligns labels to align_labels_log.
17640         * config/mips/mips.md (div_trap_normal): Use %~.
17641         (div_trap_mips16): Likewise.
17642         (abssi): Likewise.
17643         (absdi2): Likewise.
17644         (ffssi2): Likewise.
17645         (ffsdi2): Likewise.
17646         (ashldi3_internal): Likewise.
17647         (ashrdi3_internal): Likewise.
17648         (lshrdi3_internal): Likewise.
17649         (casesi_internal): Likewise.
17650
17651 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
17652
17653         Merge new ia32 backend from the branch!
17654
17655         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
17656         See ChangeLog.P2 on new_ia32_branch for details.
17657
17658         * rtl.h (stack_regs_mentioned_p): Delete prototype.
17659         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
17660         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
17661         * i386/gas.h (ASM_FILE_START): Define.
17662         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
17663         for name change of ix86_valid_decl_attribute_p.
17664         (i386_pe_valid_type_attribute_p): Similarly.
17665
17666 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
17667
17668         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
17669         to step through CC modes.
17670
17671 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17672
17673         * regmove.c (fixup_match_1): Don't move INSN in front of P if
17674         it would end up in the shadow of a live flags regsiter.
17675
17676 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17677
17678         * reload1.c: Fix many indentation problems.
17679         * reload.c: Likewise.
17680
17681 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
17682
17683         * alias.c (non_local_reference_p): Constify fmt.
17684
17685 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
17686
17687         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
17688
17689 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
17690
17691         * cse.c (delete_trivially_dead_insns): Do not delete stores to
17692         the internal_arg_pointer.
17693
17694 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
17695
17696         Merge peephole2 from new_ia32_branch:
17697         * Makefile.in (STAGESTUFF): Add *.peephole2.
17698         (mostlyclean): Likewise.
17699         (recog.o): Depend on resource.h.
17700
17701         * final.c (peephole): Conditionalize decl on HAVE_peephole.
17702         (final_scan_insn): Likewise for the invocation of peephole.
17703         * genconfig.c (main): Look for peephole and peephole2 patterns.
17704         Emit HAVE_peephole* accordingly.
17705         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
17706         * flags.h (flag_peephole2): Declare.
17707         * toplev.c: New pass peephole2.  New flag -fpeephole2.
17708
17709         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
17710         * gencodes.c (main): Likewise.
17711         * genextract.c (main): Likewise.
17712         * genoutput.c (main): Likewise.
17713         * genemit.c (max_operand_1): Look for the max scratch operand.
17714         (gen_rtx_scratch): New.
17715         (gen_exp): Use it, and pass on new arg subroutine_type.
17716         (gen_expand): Take max scratch into account.
17717         (gen_split): Emit peephole2 functions.
17718         (output_peephole2_scratch): New.
17719         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
17720         * genrecog.c (routine_type): Add PEEPHOLE2.
17721         (IS_SPLIT): New.
17722         (make_insn_sequence): Match outer parallel for peep2.  Discard
17723         top level scratches and dups.
17724         (add_to_sequence): New args insn_type and top.  Update all callers.
17725         Handle toplevel peep2 matching insns.
17726         (write_subroutine): Handle peep2.
17727         (write_tree_1): Likewise.
17728         (write_tree): Likewise.
17729         (main): Likewise.
17730         (change_state): New arg afterward.  Update all callers.
17731         Handle matching separate insns.
17732         * recog.c (recog_next_insn): New.
17733         (peephole2_optimize): New.
17734         * rtl.def (DEFINE_PEEPHOLE2): New.
17735         * resource.c (find_free_register): New argument last_insn.  Use it
17736         to find a register available through the entire span.
17737         * resource.h (find_free_register): Update prototype.
17738
17739 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
17740
17741         * i386.c (output_strlen_unroll): Don't write xops[7]
17742         label if it wasn't set.
17743
17744 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
17745
17746         * cpplib.c (struct directive): Const-ify name pointer and
17747         function pointer prototype.
17748         (validate_else, do_define, do_line, do_include, do_undef,
17749         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
17750         do_elif, do_endif, do_sccs, do_assert, do_unassert,
17751         do_warning): Const-ify second arg.
17752         (directive_table): Mark const.  Reorder entries by frequency
17753         of usage, record statistics.
17754
17755 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
17756
17757         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
17758         bounds- check RTL accesses if --enable-checking.
17759         (RTVEC_ELT): Bounds check if --enable-checking.
17760         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
17761         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
17762         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
17763         GET_NUM_ELEM.
17764         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
17765         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
17766
17767         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
17768         (NOTE_SOURCE_FILE): Use X0STR.
17769         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
17770         MEM_ALIAS_SET): Use X0INT.
17771         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
17772         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
17773         Use X0EXP.
17774         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
17775         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
17776         (rtl_check_failed_bounds, rtl_check_failed_type1,
17777         rtl_check_failed_type2, rtvec_check_failed_bounds): New
17778         functions.
17779         (fancy_abort): Fix comment.
17780
17781         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
17782         (cse_insn): Decrement LABEL_NUSES for jump target before
17783         deleting jump insn.
17784         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
17785         * final.c (alter_subreg): Compute regno before changing x to
17786         REG; set REGNO(x) after changing it.
17787         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
17788         notes containing CONST_INTs.
17789         (delete_eh_regions): Use NOTE_EH_HANDLER.
17790         * function.c (put_reg_into_stack): Make reg a MEM before
17791         initializing it.
17792         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
17793         delete insn.
17794         (gen_mem_addressof): Make reg a MEM before initializing it.
17795         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
17796         X0WINT.
17797         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
17798         deleting an insn, not after.
17799         (block_alloc): Only look at PATTERN(insn) if we have to, and
17800         only if it's format class 'i'.
17801         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
17802         CONST_INT before using its INTVAL.
17803         * print-rtl.c (print_rtx): Use X0STR.
17804         * regmove.c (fixup_match_1): Don't look at PATTERN of
17805         non-class-'i' insn chain elements.
17806         * reload.c (loc_mentioned_in_p): Take address of
17807         in->fld[1].rtx directly.
17808         * reload1.c (reload): Change reg to a MEM before initializing
17809         it.
17810         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
17811         have no names.
17812         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
17813
17814 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
17815
17816         * config/mips/mips.c (machine_dependent_reorg): Force a
17817         barrier to output the local constant pool if a barrier hasn't
17818         been found at a natural point in the instruction stream.
17819
17820 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17821
17822         * c-parse.in (language_string): Constify.
17823
17824         * dwarf2out.c (language_string): Remove declaration.
17825
17826         * dwarfout.c (language_string): Likewise.
17827
17828         * toplev.c (language_string, init_parse, finish_parse): Likewise.
17829
17830         * tree.h (language_string, init_parse, finish_parse): Declare.
17831
17832         * i386/sun386.h (language_string): Remove declaration.
17833
17834         * mips.h (language_string): Likewise.
17835
17836         * nextstep.h (language_string): Likewise.
17837
17838         * nextstep21.h (language_string): Likewise.
17839
17840         * rs6000.c (language_string): Likewise.
17841
17842 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17843
17844         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
17845         (getpwd.o): Remove target.
17846
17847         * getpwd.c: Delete file.  Its in libiberty now.
17848
17849         * dbxout.c (getpwd): Don't prototype.
17850         * dwarf2out.c (getpwd): Likewise
17851         * dwarfout.c (getpwd): Likewise
17852         * final.c (getpwd): Likewise.
17853         * protoize.c (getpwd): Likewise.
17854
17855 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17856
17857         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
17858
17859 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
17860
17861         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
17862         mark_set_resources.
17863
17864 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
17865
17866         * fixinc/Makefile.in (subdir): New.
17867         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
17868         (Makefile): New.
17869
17870 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
17871
17872         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
17873         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
17874         be shared.
17875
17876         * invoke.texi: Fix typo.
17877
17878         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
17879         changed.  Handle autoincrement addressing modes.
17880
17881         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
17882         just like we would the virtual incoming args register when
17883         integrating.
17884
17885 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
17886
17887         * rs6000.h (ASM_FILE_START): Specify complete filename, including
17888         path, in .file directive.
17889
17890 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
17891
17892         * gcc.texi (External Bugs): Remove obsolete note about Perl on
17893         SunOS.
17894
17895 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
17896
17897         * stdbool.h: Make the typedef name _Bool, with bool a #defined
17898         alias.
17899
17900 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17901
17902         * tree.c (tree_code_name): Constify a char*.
17903
17904         * tree.h (tree_code_name, decl_printable_name): Likewise.
17905
17906         * function.h (struct function): Likewise.
17907
17908         * toplev.c (decl_name, decl_printable_name): Likewise.
17909
17910         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
17911
17912         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
17913         (init_objc): Remove function pointer cast.
17914
17915 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
17916
17917         * pa.md (interspace_jump): New pattern.
17918         (builtin_longjmp): New expander.
17919
17920 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
17921
17922         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
17923         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
17924         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
17925
17926 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
17927
17928         * jump.c (delete_prior_computation): Also check calls
17929         to constant functions.  Don't bother checking for a
17930         REG_UNUSED note before adding it.
17931         (delete_computation): Handle multi-word hard registers
17932         when synthesizing missing REG_DEAD notes for a register
17933         which is both set and used by an insn.
17934
17935 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17936
17937         * loop.c (this_loop_info): New variable.
17938         (loop_has_call, loop_has_volatile, loop_has_tablejump,
17939         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
17940         All uses updated.
17941         (prescan_loop, strength_reduce): New argument loop_info.  All callers
17942         updated.
17943         (scan_loop): New variable loop_info, initialise to address of
17944         this_loop_info.
17945         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
17946         Delete variable loop_has_multiple_exit targets and replace with
17947         field in this_loop_info.
17948         (find_and_verify_loops): Rename this_loop to this_loop_num.
17949         (strength_reduce): Delete loop_iteration_info.  Replace variable
17950         loop_info with function argument of same name.
17951         (insert_bct): Rework test for loop being completely unrolled.
17952
17953         * loop.h (struct loop_info): New fields num, loops_enclosed,
17954         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
17955         has_indirect_jump, and cont.  Redefine use of unroll_number.
17956         (loop_unroll_number): Delete.
17957
17958         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
17959         field of loop_info.
17960         (loop_iterations): Delete variable vtop and instead use
17961         loop_info->vtop computed in prescan_loop.
17962
17963 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
17964
17965         * fix-header.c (main): Do not pass a null pointer to strcmp.
17966
17967 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
17968
17969         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
17970         filenames.
17971         * configure: Rebuilt.
17972
17973 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
17974
17975         * jump.c (jump_optimize_1): Do not delete assignments to
17976         internal_arg_pointer.
17977         * cse.c (delete_trivially_dead_insns): Always consider a set of
17978         the internal_arg_pointer live.
17979
17980 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
17981
17982         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
17983         (update_life_info) [REG_WAS_0]: Search the original insns rather
17984         than the new insns for the note.  Fix typos finding note_dest.
17985         If no dest found, discard the note rather than abort.
17986         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
17987         (replace_insns): Remove the old insn list after update_life_info
17988         not before.
17989
17990 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
17991
17992         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
17993         sched_analyze_insn.
17994         (sched_analyze_1): Let add_dependence care for not adding dups.
17995         (sched_analyze_2): Likewise.
17996         (add_branch_dependences): Likewise.
17997
17998 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17999
18000         * i386/winnt.c (export_list): New type.
18001         (exports_head): Rename to
18002         (export_head):  this.
18003         (i386_pe_record_exported_symbol): Add is_data flag.
18004         (i386_pe_asm_file_end): Emit directive for exported variables.
18005         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
18006         prototype.
18007         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
18008         (ASM_DECLARE_OBJECT_NAME): Likewise.
18009         (ASM_DECLARE_FUNCTION_NAME): Likewise.
18010         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18011
18012 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
18013
18014         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
18015
18016         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
18017         operand.
18018
18019 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
18020
18021         * config/openbsd.h: Define SET_ASM_OP.
18022         * tm.texi: cross-reference SET_ASM_OP in the index.
18023
18024 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
18025
18026         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
18027         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
18028         and class_narrowest_mode at compile time.  Kill init_rtl.
18029         Mark rtx_length, mode_class, mode_size, mode_unit_size,
18030         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
18031         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
18032         EXTRA_CC_NAMES.
18033         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
18034         format.
18035         * rtl.h: Declare rtx_length and rtx_format as const.
18036         * machmode.def: Define CC().  Use CC() to define CCmode.  If
18037         EXTRA_CC_MODES is defined, expand it here.
18038         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
18039         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
18040         const.  Kill all references to EXTRA_CC_MODES.
18041
18042         * toplev.c: Don't prototype or call init_rtl.
18043         * optabs.c: Don't call init_mov_optab.
18044         * genemit.c: Don't generate init_mov_optab.  Don't call
18045         init_rtl.
18046         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
18047         here.
18048         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
18049         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
18050         genrecog.c: Don't call init_rtl.
18051
18052         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
18053         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
18054         definition of EXTRA_CC_MODES.
18055
18056         * md.texi: Kill ref to EXTRA_CC_NAMES.
18057         * tm.texi: Document new way to define EXTRA_CC_MODES.
18058
18059         * genrecog.c: Do not look up the name of a define_split.
18060         (Unrelated bugfix.)
18061
18062 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
18063
18064         * config/v850/v850.md: Fix typo introduced by previous delta.
18065
18066 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18067
18068         * gcc.c (fatal): Make definition static to match prototype.
18069
18070 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18071
18072         * combine.c (get_last_value): Don't look for earlier sets if the last
18073         known set is somewhere in between the insns being combined.
18074
18075 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
18076
18077         * configure.in: Don't use shell ! to negate exit codes
18078         * configure: Regenerate
18079
18080 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
18081
18082         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
18083         the fact that ALIGN is measured in bits, not bytes.
18084
18085 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
18086
18087         * errors.c: New file; defines functions error, warning, and
18088         fatal, variables have_error and progname.
18089         * errors.h: New file; prototypes and decls for stuff in errors.c.
18090
18091         * Makefile: Add rules to build errors.o and
18092         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
18093         genopinit, genrecog, genextract, genpeep, genattr, and
18094         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
18095         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
18096         genpeep.o, genattr.o, and genoutput.o.
18097
18098         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
18099         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
18100         define or prototype fatal.  Set progname at beginning of main.
18101         * genoutput.c:  Likewise, and don't define or prototype error
18102         either.
18103
18104         * c-typeck.c (c_expand_start_case): Return immediately if exp
18105         is an ERROR_MARK.
18106         * fold-const.c (operand_equal_p): Return immediately if arg1
18107         or arg0 are ERROR_MARKs.
18108         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
18109         fields of type ERROR_MARK when calculating if the record can
18110         go in a register.
18111
18112 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
18113         with much help from Jeffrey A Law and Richard Henderson
18114
18115         * i386.md: In the 6 insns which call output_fix_trunc,
18116         earlyclobber operands[0].
18117
18118 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
18119
18120         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
18121         creating new registers.
18122
18123 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
18124
18125         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
18126         i386_reg_alloc_order, i386_regparm_string,
18127         i386_align_loops_string, i386_align_jumps_string,
18128         i386_align_funcs_string, i386_preferred_stack_boundary_string,
18129         and i386_branch_cost_string as type "const char *".
18130         * i386.c: Define all above strings as type "const char *".
18131
18132 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
18133
18134         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
18135         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
18136
18137 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
18138
18139         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
18140         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
18141
18142 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
18143
18144         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
18145         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
18146         (dwarf2out_line, dwarf2out_finish): Likewise.
18147         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
18148
18149 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18150
18151         * tree.c (lang_unsave_expr_now) : Correct return type.
18152         * tree.h (lang_unsave_expr_now) : Same.
18153
18154 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
18155
18156         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
18157         instead of duplicating code.
18158
18159 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18160
18161         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
18162
18163 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
18164
18165         * tree.h: fancy_abort always takes three args.
18166         * resource.c: Move include of system.h before toplev.h.
18167
18168 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
18169
18170         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
18171         as SYMBOL_REFs.
18172
18173 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
18174
18175         * system.h: Don't redefine abort or trim_filename.
18176         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
18177         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
18178         whether or not __FUNCTION__ is available.
18179         * tree.h: Duplicate rtl.h's definition of abort, for files
18180         that don't include rtl.h.  Delete all code to perform type
18181         checking with a compiler other than GCC.
18182         * varray.h: Delete all code to perform type checking with a
18183         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
18184         its arguments exactly once, using a statement expression.
18185         Adjust the VARRAY_<type> accessor macros to match.
18186         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
18187         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
18188         caller's location.  Define fatal_insn and fatal_insn_not_found
18189         as macros that use _fatal_insn and _fatal_insn_not_found.
18190         (fancy_abort, trim_filename): Kill prototypes.
18191
18192         * rtl.c (trim_filename): Move here from toplev.c.
18193         (fancy_abort): New function.
18194         (DIR_SEPARATOR): Provide default definition.
18195         * tree.c (tree_check_failed, tree_class_check_failed): Go
18196         through fancy_abort.
18197         (tree_check, tree_class_check, cst_or_constructor_check,
18198         expr_check): Delete.
18199         * varray.c (varray_check_failed): New function.
18200         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
18201         _fatal_insn and _fatal_insn_not_found.  Go through
18202         fancy_abort.
18203         (trim_filename, fancy_abort): Delete.
18204
18205         * builtins.c (expand_builtin_args_info): Report ICE with abort.
18206         * except.c (start_catch_handler): Report ICE with error/abort
18207         combo.
18208         * final.c (output_operand_lossage): Likewise.
18209         * flow.c (verify_flow_info): Likewise.
18210
18211         * gcc.c: Prototype fatal.
18212         * gengenrtl.c: Undef abort after including rtl.h not system.h.
18213         * genattr.c, genattrtab.c, genemit.c, genextract.c,
18214         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
18215         Don't define fancy_abort.
18216
18217 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
18218
18219         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
18220         canonization.
18221
18222 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
18223
18224         * m88k.h (VERSION_INFO2): Kill.
18225         (VERSION_STRING): Kill.
18226         (TM_RCS_ID): Kill.
18227         (VERSION_INFO1): Tidy.
18228         (TARGET_VERSION): Update.
18229         * m88k/dgux.h (VERSION_INFO2): Kill.
18230         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
18231         * m88k/luna.h (VERSION_INFO1): Tidy.
18232         * m88k/sysv4.h (VERSION_INFO1): Likewise.
18233         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
18234         (output_file_start): Adjust for death of VERSION_STRING.
18235
18236 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
18237
18238         * cpplib.c (detect_if_not_defined): New function.
18239         (do_if): Use it to detect potential once-only headers.
18240
18241 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
18242
18243         * c-common.c (combine_strings): Always set TREE_CONSTANT.
18244
18245 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18246
18247         * combine.c (nonzero_bits) : Allow single-ly set registers to be
18248         anywere in the function only if they are pseudos and set before
18249         being used (not live at the start of the function).
18250         (num_sign_bit_copies) : Same.
18251         (get_last_value_validate) : Same.
18252         (get_last_value) : Same.
18253
18254 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
18255
18256         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
18257         where N and M are constant and N is an integer multiple of M.
18258
18259 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18260
18261         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
18262         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
18263         sbitmap_union_of_preds): Add prototypes.
18264         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
18265         the intersection of successors with the new flow graph structures.
18266         (sbitmap_intersection_of_preds): New function to compute the
18267         intersection of predecessors with the new flow graph structures.
18268         (sbitmap_union_of_succs): New function to compute the union of
18269         successors with the new flow graph structures.
18270         (sbitmap_union_of_preds): New function to compute the union of
18271         predecessors with the new flow graph structures.
18272         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
18273         (expr_reaches_here_p): Use edge and basic_block structures instead
18274         of s_preds and s_succs.
18275         (compute_cprop_avinout): Use new sbitmap routines.
18276         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
18277         of s_preds and s_succs.
18278         * flow.c (compute_flow_dominators): Compute dominators using
18279         edges and basic blocks instead of s_preds and s_succs.
18280
18281 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18282
18283         * lists.c (unused_insn_list, unused_expr_list): New file for
18284         maintaining various types of lists. New statics for maintaining a
18285         cache of available INSN_LIST and EXPR_LIST nodes.
18286         (free_list): Static function for freeing a list of INSN/EXPR nodes.
18287         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
18288         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
18289         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
18290         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
18291         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
18292         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
18293         (free_INSN_LIST_node): Free an individual INSN_LIST node.
18294         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
18295         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
18296         (remove_dependence, free_pending_lists): Use new global routines.
18297         (flush_pending_lists, sched_analyze_insn): Use new global routines.
18298         (sched_analyze, compute_block_backward_dependences): Use new routines.
18299         (sched_analyze_1, sched_analyze_2): Use new routines.
18300         (schedule_insns): Use new global routines.
18301         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
18302         prototypes.
18303         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
18304         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
18305         prototypes.
18306         * toplev.c (rest_of_compilation): Initialize node cache.
18307         * Makefile.in (OBJS): Add lists.o to list of object files.
18308         (lists.o): Add dependancies.
18309
18310 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
18311
18312         * config/v850/v850.md: Fix compile time warning messages.
18313         * config/v850/v850.c: Fix compile time warning messages.
18314         * config/v850/v850.h: Fix compile time warning messages.
18315
18316 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18317
18318         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
18319         Remove unused prototype for `init_lengths'.
18320
18321 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18322
18323         * calls.c (emit_call_1): Mark parameter `stack_size' with
18324         ATTRIBUTE_UNUSED.
18325         (expand_call): Initialize variable `insn'.
18326         (emit_library_call): Likewise for variable `high_to_save'.
18327         (emit_library_call_value): Likewise.
18328         (store_one_arg): Likewise for variables `lower_bound' and
18329         `upper_bound'.
18330
18331         * combine.c (try_combine): Likewise for variables `i2_code_number'
18332         and `other_code_number'.
18333         (find_split_point): Likewise for variables `pos', `unsignedp' and
18334         `inner'.
18335         (simplify_if_then_else): Likewise for variables `op' and `c1'.
18336         (simplify_and_const_int): Remove unused variable `width'.
18337         (merge_outer_ops): Likewise.
18338
18339         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
18340         HOST_WIDE_INT' when comparing against one.
18341         (simplify_relational_operation): Likewise.
18342         (cse_insn): Initialize variables `src_eqv_volatile',
18343         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
18344
18345         * final.c (init_final): Constify parameter `filename'.
18346         (final_start_function): Mark parameter `optimize' with
18347         ATTRIBUTE_UNUSED.
18348         (profile_function): Likewise for parameters `first' and `optimize'.
18349         (output_source_line): Likewise for parameter `file'.
18350
18351         * integrate.c (subst_constants): Cast a value to `size_t' when
18352         comparing against one.
18353         (mark_stores): Initialize variable `mode'.  Cast a value to
18354         `size_t' when comparing against one.
18355
18356         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
18357
18358         * loop.c (move_movables): Initialize variable `first'.
18359         (strength_reduce): Likewise for variable `increment'.
18360         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
18361         value to `size_t' when comparing against one.
18362         (load_mems): Initialize variable `end_label'.
18363
18364         * output.h (init_final): Constify parameter.
18365
18366         * reload.c (decompose): Initialize variable `base'.
18367
18368         * reload1.c (reload): Likewise for variable `is_scalar'.
18369         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
18370         (choose_reload_regs): Initialize variable `mode'.
18371         (emit_reload_insns): Likewise for variable `store_insn'.
18372         (reload_cse_noop_set_p): Mark parameter `insn' with
18373         ATTRIBUTE_UNUSED.
18374         (reload_combine): Initialize variable `set'.
18375
18376         * unroll.c (unroll_loop): Likewise for variable `local_label'.
18377         (copy_loop_body): Cast a value to `size_t' when comparing against
18378         one.
18379
18380         * varasm.c (assemble_variable): Initialize variable `size_tree'.
18381         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
18382         (remove_from_pending_weak_list): Mark parameter `name' with
18383         ATTRIBUTE_UNUSED.
18384
18385 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18386
18387         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
18388         gcse dump file.
18389
18390 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
18391
18392         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
18393         (ASM_DECLARE_FUNCTION_NAME): Define.
18394         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
18395         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
18396         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
18397         not already defined.
18398
18399 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18400
18401         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
18402         of n_popped when call/call_value are not defined.
18403
18404 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
18405
18406         * tm.texi: GNU CC -> GCC conversion.
18407         (CC1_SPEC): Indicate it is used for all language front ends.
18408
18409 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
18410
18411         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
18412         NOTE_INSN_EH_REGION_END correctly.
18413
18414 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
18415                           Jeff Law <law@cygnus.com>
18416
18417         * loop.c (strength_reduce): Automatically unroll loops if the
18418         unrolled loop size is smaller than the rolled loop size.
18419
18420         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
18421         and delete comment that code should be rewritten.
18422
18423 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
18424
18425         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
18426         as reachable.
18427
18428         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
18429
18430 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
18431
18432         * fixinc/mkfixinc.sh: Don't fix uwin headers.
18433         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
18434         (LINK_SPEC): Add -u _main when building executables.
18435         (ASM_DECLARE_FUNCTION): Update from Cygwin.
18436         (ASM_FILE_END): Use the default for ix86-pe.
18437         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
18438
18439 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
18440
18441         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
18442         and ASM_CLOSE_PAREN are empty strings.
18443
18444 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
18445                           Geoffrey Keating <geoffk@cygnus.com>
18446
18447         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
18448         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
18449         (unprotoize.o): Ditto.
18450         (test-protoize-simple): Don't define STD_PROTO_DIR.
18451         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
18452         changes to make 'test-protoize-simple' pass.
18453         (STD_PROTO_DIR): Remove define.
18454         (STANDARD_EXEC_PREFIX): Supply default define.
18455         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
18456         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
18457         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
18458         (GET_ENV_PATH_LIST): New macro.
18459         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
18460         (do_processing): Initialize default_syscalls_dir using new
18461         macros.  Use it to initialize syscalls_absolute_filename.
18462
18463 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
18464
18465         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
18466         B into a register before emit_conditional_move.
18467
18468 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
18469
18470         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
18471         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
18472         multiplicand out of (+ (* a b) (* c d)).
18473
18474 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
18475                           Richard Henderson  <rth@cygnus.com>
18476
18477         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
18478         (new_insn_dead_notes): Likewise.
18479         (update_n_sets): Likewise.
18480         (update_flow_info): Move to flow.c, renamed to update_life_info;
18481         extend to handle multiple source insns.
18482         * flow.c: Include resource.h
18483         (unlink_insn_chain): New.
18484         (split_hard_reg_notes): New.
18485         (maybe_add_dead_note): New.
18486         (maybe_add_dead_note_use): New.
18487         (find_insn_with_note): New.
18488         (new_insn_dead_notes): New.
18489         (update_n_sets): New.
18490         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
18491         (maybe_remove_dead_notes): New.
18492         (update_life_info): New.
18493         (prepend_reg_notes): New.
18494         (replace_insns): New.
18495         * output.h (update_life_info): Declare.
18496         * recog.c (split_block_insns): Use update_life_info.
18497         * resource.c (find_free_register): Use reg_alloc_order, don't use
18498         fixed regs, make sure the mode is supported, don't use new regs.
18499         (reg_dead_p): New.
18500         * rtl.h (replace_insns): Declare.
18501
18502 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
18503
18504         * expr.c (expand_expr): Cope with COND_EXPRs with one
18505         non-returning branch.
18506
18507 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
18508
18509         * expr.c (store_expr): Always pass down the target, even when not
18510         doing CSE.
18511
18512 1999-08-24  Nick Clifton  <nickc@cygnus.com>
18513
18514         * configure.in: Define target_cpu_default for v850 targets.
18515         * configure: Regenerate
18516
18517         * config/v850/v850.h (TARGET_CPU_generic): Define.
18518         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
18519         addresses are 4 byte aligned.
18520
18521         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
18522         addresses.
18523
18524 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18525
18526         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
18527         (main): Add prototypes.
18528
18529         * genattrtab.c (substitute_address, write_const_num_delay_slots,
18530         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
18531         (write_attr_get): Emit prototypes along with function definition.
18532         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
18533         (write_complex_function): Emit static prototype along with
18534         function definition.
18535
18536         * genemit.c (gen_split): Emit prototypes along with function
18537         definition.
18538
18539         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
18540         Likewise for predicates and `insn_operand_predicate'.
18541         (process_template): Emit static prototype along with function
18542         definition.
18543
18544         * genrecog.c (make_insn_sequence): Constify a char*.  Add
18545         prototypes for get_split_*().
18546         (write_subroutine): Emit prototypes along with function
18547         definition.
18548
18549 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18550
18551         * gcse.c (find_avail_set): Follow chains of register-register copies.
18552         Use oprs_not_set_p to guarantee that the returned value can be
18553         substituted.
18554         (cprop_insn): Don't verify the return value of find_avail_set with
18555         oprs_not_set_p.
18556
18557         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
18558         (cprop_cc0_jump): New function.
18559         (cprop_insn): Break out new function cprop_jump and use it.
18560         Also use cprop_cc0_jump for machines with CC0.
18561         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
18562
18563         * tree.h (current_function_calls_setjmp,
18564         current_function_calls_longjmp): Delete declarations.
18565         * dsp16xx.c: Include "function.h".
18566         * elxsi.c: Likewise.
18567         * gmicro.c: Likewise.
18568         * h8300.c: Likewise.
18569         * i370.c: Likewise.
18570         * m32r.c: Likewise.
18571         * mn10200.c: Likewise.
18572         * mn10300.c: Likewise.
18573         * ns32k.c: Likewise.
18574         * spur.c: Likewise.
18575         * v850.c: Likewise.
18576
18577         * rtl.h (rtx_equal_function_value_matters): Declare.
18578         * toplev.c (rtx_equal_function_value_matters): Don't declare.
18579         * cse.c: Likewise.
18580         * function.c: Likewise.
18581         * emit-rtl.c: Likewise.
18582
18583 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
18584
18585         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
18586         call.
18587
18588 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18589
18590         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
18591         exactly.
18592
18593 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
18594
18595         * cpp.texi: Add a node documenting macro varargs (copied
18596         from extend.texi).
18597
18598 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
18599
18600         * cppspec.c: Put a null pointer at the end of the new argv.
18601
18602 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
18603
18604         * configure.in: Remove code to select/de-select the haifa
18605         scheduler.  Every scheduled port gets haifa now.
18606         * configure: Rebuilt.
18607         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
18608         * sched.c Deleted.
18609         * Makefile.in: Corresponding changes.
18610
18611 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18612
18613         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
18614         All callers changed.
18615         (prepare_float_lib_cmp): Likewise.
18616         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
18617         * expr.h (emit_float_lib_cmp): Delete declaration.
18618         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
18619         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
18620         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
18621         specially.
18622         (cmptf): Now conditional on TARGET_HARD_QUAD.
18623
18624 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
18625
18626         * resource.c (mark_target_live_regs): Use
18627         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
18628
18629 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18630
18631         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
18632
18633         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
18634
18635         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
18636
18637 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18638
18639         * rtl.h (rtx_format): Constify a char*.
18640
18641         * rtl.c (rtx_format): Likewise.
18642         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
18643         (init_rtl): Use accessor macro, not `rtx_format'.
18644
18645         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
18646         char*.
18647
18648         * caller-save.c (mark_referenced_regs): Likewise.
18649
18650         * combine.c (subst, make_compound_operation, known_cond,
18651         gen_rtx_combine, update_table_tick, get_last_value_validate,
18652         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
18653
18654         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
18655         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
18656         count_reg_usage): Likewise.
18657
18658         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
18659         Likewise.
18660
18661         * final.c (leaf_renumber_regs_insn): Likewise.
18662
18663         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
18664         dump_edge_info, count_reg_references): Likewise.
18665
18666         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
18667         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
18668         Likewise.
18669
18670         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
18671         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
18672         add_label_notes): Likewise.
18673
18674         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
18675         clear_struct_flag, count_sub_rtxs, count_alternatives,
18676         compares_alternatives_p, contained_in_p, walk_attr_value,
18677         write_expr_attr_cache): Likewise.
18678
18679         * genconfig.c (walk_insn_part): Likewise.
18680
18681         * genemit.c (max_operand_1, gen_exp): Likewise.
18682
18683         * genextract.c (walk_rtx): Likewise.
18684
18685         * genflags.c (num_operands): Likewise.
18686
18687         * genoutput.c (scan_operands): Likewise.
18688
18689         * genpeep.c (match_rtx): Likewise.
18690
18691         * genrecog.c (add_to_sequence): Likewise.
18692
18693         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
18694         Likewise.
18695
18696         * integrate.c (save_constants, copy_for_inline,
18697         copy_rtx_and_substitute, subst_constants, restore_constants):
18698         Likewise.
18699
18700         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
18701         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
18702
18703         * local-alloc.c (contains_replace_regs, memref_referenced_p):
18704         Likewise.
18705
18706         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
18707         add_label_notes, replace_call_address, count_nonfixed_reads,
18708         invariant_p, find_single_use_in_loop, find_mem_givs,
18709         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
18710         Likewise.
18711
18712         * print-rtl.c (reg_names, print_rtx): Likewise.
18713
18714         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
18715
18716         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
18717         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
18718         print_blocks): Likewise.
18719
18720         * regclass.c (fix_register, record_address_regs,
18721         reg_scan_mark_refs): Likewise.
18722
18723         * regmove.c (stable_but_for_p): Likewise.
18724
18725         * reload.c (loc_mentioned_in_p, operands_match_p,
18726         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
18727         copy_replacements, refers_to_regno_for_reload_p,
18728         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
18729         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
18730         Likewise.
18731
18732         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
18733         delete_address_reloads_1, count_occurrences,
18734         reload_cse_mem_conflict_p, reload_combine_note_use,
18735         add_auto_inc_notes): Likewise.
18736
18737         * resource.c (mark_referenced_resources, mark_set_resources):
18738         Likewise.
18739
18740         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
18741         reg_mentioned_p, regs_set_between_p, modified_between_p,
18742         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
18743         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
18744         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
18745         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
18746
18747         * sched.c (sched_analyze_2, attach_deaths): Likewise.
18748
18749         * stupid.c (stupid_mark_refs): Likewise.
18750
18751         * unroll.c (remap_split_bivs): Likewise.
18752
18753         * varasm.c (mark_constants): Likewise.
18754
18755         * a29k/a29k.c (uses_local_reg_p): Likewise.
18756
18757         * alpha/alpha.c (summarize_insn): Likewise.
18758
18759         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
18760         eliminate_lr2ip): Likewise.
18761
18762         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
18763
18764         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
18765         reg_mentioned_in_mem): Likewise.
18766
18767         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
18768         symbolic_reference_mentioned_p): Likewise.
18769
18770         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
18771
18772         * sh/sh.c (regs_used, mark_use): Likewise.
18773
18774         * vax/vax.c (vax_rtx_cost): Likewise.
18775
18776 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18777
18778         * machmode.h (mode_name): Constify a char*.
18779
18780         * rtl.c (mode_name): Likewise.
18781
18782         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
18783
18784         * optabs.c (init_libfuncs): Constify a char*.
18785
18786         * print-tree.c (mode_name): Remove redundant declaration.
18787         (print_node): Use accessor macro, not `mode_name'.
18788
18789         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
18790         not `mode_name'.
18791         (new_spill_reg): Constify a char*.
18792
18793         * tree.c (mode_name): Remove redundant declaration.
18794
18795 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18796
18797         * rtl.c (rtx_name): Constify a char*.
18798
18799         * rtl.h (rtx_name, fix_sched_param): Likewise.
18800
18801         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
18802         (mypr): Use accessor macro, not `rtx_name'.
18803
18804         * genemit.c (print_code): Constify a char*.
18805
18806         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
18807
18808         * genpeep.c (print_code): Constify a char*.
18809
18810         * genrecog.c (print_code): Likewise.
18811
18812         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
18813         end_bb): Add static prototype.
18814         (draw_edge): Constify a char*.
18815         (end_bb): Remove unused parameter.
18816
18817         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
18818         print_block_visualization): Constify a char*.
18819
18820 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
18821
18822         * c-common.c (c_get_alias_set): Update comment.
18823
18824 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
18825
18826         * linux.h (LIB_SPEC): Added.
18827
18828 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18829
18830         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
18831
18832 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
18833
18834         * tree.c (expr_check): Fix typo in last change.
18835
18836 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
18837
18838         * rtl.def (NOTE): Change format to "iuu0n".
18839         (ADDR_DIFF_VEC): Change format to "eEee0".
18840         (ADDRESSOF): Change format to "eit".
18841
18842         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
18843         (RTVEC_ELT): Change to match.
18844         (XVECEXP): Use XVEC and RTVEC_ELT.
18845         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
18846         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
18847         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
18848         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
18849         TRAP_CONDITION, TRAP_CODE): Use XEXP.
18850         (INTVAL): Use XWINT.
18851         (ADDRESSOF_DECL): Use XTREE.
18852         (SET_ADDRESSOF_DECL): Delete.
18853         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
18854         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
18855         ifdefed out since 2.6 at least.
18856         (gen_rtvec_vv): Delete prototype.
18857
18858         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
18859         not rtunion.
18860         (copy_most_rtx): Handle 't' format letter.
18861         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
18862         (gen_rtvec_vv): Delete function.  All callers changed to use
18863         gen_rtvec_v instead.
18864         * print-rtl.c (print_rtx): Move special casing of NOTEs to
18865         the '0' format letter.
18866
18867         * function.c (gen_mem_addressof): Don't use
18868         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
18869         instead.
18870         * integrate.c (copy_rtx_and_substitute): Likewise.
18871         Copy 't' slots with XTREE.
18872         (subst_constants): Treat 't' slots like '[swi]' slots.
18873         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
18874         * jump.c (rtx_equal_for_thread_p): Likewise.
18875         * rtlanal.c (rtx_equal_p): Likewise.
18876         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
18877         only four arguments.
18878         * gengenrtl.c (type_from_format): Provide correct types for
18879         'b' and 't' slots.
18880
18881
18882         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
18883         If a recent gcc is in use (always in stage2 and beyond), use
18884         statement expressions, so we don't make a function call unless
18885         the check fails.  Evaluate arguments exactly once.
18886         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
18887         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
18888         Delete.
18889         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
18890         they evaluate their arguments exactly once, irrespective of
18891         the compiler in use.
18892
18893         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
18894         is used by the currently-enabled check macros.  This is:
18895         (tree_check_failed, tree_class_check_failed): For gcc.
18896         (tree_check, tree_class_check, cst_or_constructor_check,
18897         expr_check): For other compilers.
18898
18899         * gencheck.c: Do not define any *_CHECK1 macros.
18900
18901 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
18902                           Mark Mitchell <mark@codesourcery.com>
18903
18904         * c-common.c (c_get_alias_set): Fix support for poitners and
18905         references.
18906
18907 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
18908
18909         * alias.c: Include tree.h.
18910         (nonlocal_reference_p, mark_constant_function): New functions.
18911         * flow.c (life_analysis): Call mark_constant_function.
18912         * rtl.h (mark_constant_function): Declare it.
18913
18914 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
18915
18916         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
18917         unrecognisable switches.
18918
18919 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18920
18921         * loop.c (recombine_givs): Set ix field after sorting.
18922         (recombine_givs): Remove bogus index / giv lockstep looping.
18923
18924 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18925
18926         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
18927         on CODE.
18928         (emit_store_flag_force): Use do_compare_rtx_and_jump.
18929         (do_cmp_and_jump): Formatting fixes.
18930         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
18931         do_compare_rtx_and_jump instead of compare_from_rtx.
18932         (do_compare_rtx_and_jump): New function; mostly copied from
18933         compare_from_rtx.
18934         (do_jump_for_compare): Delete.
18935         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
18936         MIN_EXPR.
18937         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
18938         of compare/do_jump_for_compare pairs.
18939         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
18940         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
18941         compare_from_rtx/do_jump_for_compare pairs.
18942         (do_jump_by_parts_equality): Likewise.
18943         (do_jump_by_parts_equality_rtx): Likewise.
18944         * expr.h (do_compare_rtx_and_jump): Declare.
18945         * optabs.c (prepare_cmp_insn): New function, contains most of the code
18946         that used to be in emit_cmp_insn.
18947         (cmp_available_p): New function.
18948         (prepare_operand): New function.
18949         (emit_cmp_and_jump_insn_1): New function, contains some code that used
18950         to be in emit_cmp_insn.
18951         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
18952         parameters to be pointers; don't emit final compare but modify some of
18953         the values pointed to by the args so the caller can perform the
18954         correct comparison.
18955         (expand_binop): Call emit_store_flag_force with signed forms of
18956         comparison code.
18957         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
18958         emit_jump_insn pair.
18959         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
18960         emit_cmp_and_jump_insn_1.  Call emit_queue.
18961         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
18962         arg.
18963         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
18964         jump sets cc0 before deleting it.
18965         * integrate.c (expand_inline_function): Likewise.
18966         * unroll.c (unroll_loop): Similar changes in several places.
18967         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
18968         before deleting it.
18969
18970 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18971
18972         * Makefile.in (insn-recog.o): Update dependencies.
18973         * genrecog.c (main): Make generated file include "function.h".
18974
18975 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
18976
18977         * cse.c (cse_insn): Call never_reached_warning when a jump is
18978         changed to be unconditional.
18979         * flags.h: Declare warn_notreached.
18980         * flow.c (delete_block): Call never_reached_warning when
18981         a block is deleted.
18982         * jump.c (delete_barrier_successors): Call never_reached_warning
18983         when we delete everything after a BARRIER.
18984         (never_reached_warning): New function.
18985         * rtl.h: Declare never_reached_warning.
18986         * toplev.c (warn_notreached): New variable.
18987         (lang_independent_options): Set warn_notreached
18988         when -Wunreachable-code.
18989         (compile_file): We need line numbers for -Wunreachable-code.
18990
18991 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
18992
18993         * haifa-sched.c (insn_unit): Fix typo on out of range test.
18994         * sched.c (insn_unit): Likewise.
18995
18996 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
18997
18998         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
18999
19000 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
19001
19002         * flow.c (create_edge_list): Use xmalloc, not malloc.
19003
19004 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
19005
19006         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
19007         C-style comments.  Do not lose the character before double slash.
19008
19009 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
19010
19011         * basic-block.h (struct edge_list): Stucture to maintain a vector
19012         of edges.
19013         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
19014          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
19015         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
19016         New function prototypes.
19017         * flow.c (create_edge_list): Function to create an edge list.
19018         (free_edge_list): Discards memory used by an edge list.
19019         (print_edge_list): Debug output showing an edge list.
19020         (verify_edge_list): Internal consistency check for an edge list.
19021         (find_edge_index): Function to find an edge index for a pred and succ.
19022
19023 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
19024
19025         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
19026         hashtable.
19027
19028 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
19029
19030         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
19031
19032 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19033
19034         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
19035
19036 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
19037
19038         * toplev.c (rest_of_compilation): Allow machine dependent
19039         reorganisation pass to place information into the RTL dump
19040         file if it so wishes.
19041
19042 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
19043
19044         * explow.c (hard_function_value): Use VOIDmode instead of
19045         MAX_MACHINE_MODE.
19046         * stmt.c (expand_return): Likewise.
19047         * stor-layout.c (get_best_mode): Likewise.
19048
19049         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
19050         emit call instead of emit_insn call.
19051
19052 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19053
19054         * configure.in: Handle --disable/enable-win32-registry.
19055         * install.texi: Document --disable/enable-win32-registry.
19056         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
19057         (WIN32_REGISTRY_KEY): New macro.
19058         * prefix.c: Use to enable/disable win32-specific code.
19059         (lookup_key): Use versioned key.
19060         * configure: Regenerate.
19061         * config.in: Likewise.
19062
19063 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
19064
19065         * cpplib.c (read_line_number): New fn, split out of...
19066         (do_line): Here.
19067
19068 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19069
19070         tree.c (lang_unsave_expr_now) : New.
19071         (unsave_expr_now): Call lang_unsave_expr_now.
19072         tree.h (lang_unsave_expr_now) : New.
19073
19074 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
19075
19076         * toplev.c (flag_new_exceptions): On by default.
19077
19078 1999-08-13  Michael Meissner  <meissner@cygnus.com>
19079
19080         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
19081
19082 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
19083
19084         * dwarfout.c (fundamental_type_code): Return FT_boolean for
19085         INTEGER_TYPE with precision==1, it's __java_boolean.
19086
19087 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19088
19089         * global.c (prune_preferences): Move some invariants out of the
19090         inner loop.
19091
19092 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
19093
19094         * configure.in (alpha*-dec-osf*): Add osf5.
19095
19096 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
19097
19098         * configure.in: Rework handling of ARM GNU/Linux slightly.
19099         (arm*-*-linux-gnuoldld): New target.
19100         * configure: Regenerate.
19101         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
19102         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
19103         * config/arm/linux-oldld.h: New file.
19104         * config/arm/linux-elf26.h: Don't include linux-elf.h.
19105         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
19106         Don't define.
19107         * config/arm/linux-elf.h (ASM_SPEC): Define.
19108         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
19109         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
19110         for 26-bit APCS and old linker.
19111         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
19112         `arm_elf'.
19113         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
19114         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
19115         don't define `arm' or `arm_elf'.
19116         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
19117         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
19118
19119 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
19120
19121         * rtl.texi: Fix typo.
19122
19123 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
19124
19125         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
19126
19127 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
19128
19129         * extend.texi (C++ Signatures): Remove node.
19130         * invoke.texi: Remove discussion of -fhandle-signatures,
19131         signature, sigof, __signature__, and __sigof__.
19132
19133 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
19134
19135         * Makefile.in (JAVAGC): Removed.
19136
19137 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19138
19139         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
19140
19141 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
19142
19143         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
19144
19145 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
19146
19147         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
19148         a register that is already known to be a pointer.
19149
19150 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
19151
19152         * fixinc/inclhack.tpl: Only install assert.h conditionally.
19153         * fixinc/inclhack.sh: Regenerated.
19154         * fixinc/fixincl.sh: Regenerated.
19155
19156 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
19157
19158         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
19159         Fix documentation of -ansi flag to describe its C++ behavior.
19160         Remove bogus reference to GCC 2.9.
19161
19162 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
19163
19164         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
19165         note if it is non-NULL.
19166
19167 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
19168
19169         * except.h (eh_nesting_info): Add new structure defintion.
19170         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
19171         (reachable_handlers, update_rethrow_references): Add function
19172         prototypes.
19173         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
19174         a rethrow symbol instead of an integer exception region number.
19175         * flow.c (Make_edges): Use new exception nesting routines to determine
19176         which handlers are reachable from a CALL or asynchronous insn.
19177         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
19178         goto receivers.
19179         (delete_eh_regions): Update rethrow labels, and don't delete
19180         regions which are the target of a rethrow.
19181         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
19182         avoid overloading the SYMBOL_REF_USED flag.
19183         (rethrow_symbol_map): Use new rethrow_ref field.
19184         (rethrow_used): Use new rethrow_ref field.
19185         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
19186         of an integer.  Fix formatting.
19187         (output_exception_table_entry): Use new rethrow_ref field.
19188         (can_throw): Check for EH_REGION_NOTE before deciding
19189         whether a CALL can throw or not.
19190         (scan_region): Call rethrow_used() instead of accessing data structure.
19191         (update_rethrow_references): New function to make sure only regions
19192         which are still targets of a rethrow are flagged as such.
19193         (process_nestinfo): New static function to initialize a handler
19194         list for a specific region.
19195         (init_eh_nesting_info): New function to allocate and initialize
19196         the list of all EH handlers reachable from all regions.
19197         (reachable_handlers): New function to retrieve the list of handlers
19198         reachable from a specific region and insn.
19199         (free_eh_nesting_info): New function to dispose of a list of
19200         reachable handlers.
19201
19202 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
19203
19204         * flow.c (split_edge): Set JUMP_LABEL field.
19205         (commit_one_edge_insertion): Set head correctly for insert_before.
19206         When inserting insns, update insn block numbers if allocated.
19207
19208 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19209
19210         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
19211         retry_incomplete_types): Add static prototype.
19212         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
19213         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
19214         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
19215         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
19216         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
19217         Constify a char*.
19218
19219         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
19220         dwarf2out_start_source_file, dwarf2out_line): Likewise.
19221
19222 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19223
19224         * output.h (assemble_name): Constify a char*.
19225
19226         * varasm.c (UNIQUE_SECTION, assemble_start_function,
19227         assemble_variable, assemble_name): Likewise.
19228
19229         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
19230
19231         * arm/pe.c (arm_pe_unique_section): Likewise.
19232
19233         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
19234
19235         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
19236
19237         * i386/interix.c (i386_pe_unique_section): Likewise.
19238
19239         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
19240
19241         * i386/winnt.c (i386_pe_unique_section): Likewise.
19242
19243         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
19244
19245         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
19246
19247         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
19248
19249         * pa/pa.c (output_call): Likewise.
19250
19251         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
19252
19253         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
19254
19255         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
19256         Likewise.
19257
19258         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
19259         Likewise.
19260
19261         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
19262
19263         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
19264         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
19265
19266         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
19267
19268 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19269
19270         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
19271
19272 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19273
19274         * tree.h (lang_identify): Constify a char*.
19275         (print_error_function): Add extern prototype.  Constify a char*.
19276
19277         * c-lang.c (lang_identify): Constify a char*.
19278
19279         * objc/objc-act.c (lang_identify): Constify a char*.
19280
19281 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19282
19283         * genpeep.c (main): Make generated file include "function.h".
19284         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
19285
19286 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19287
19288         * Makefile.in: Update dependencies.
19289         * alias.c: Include "function.h"
19290         * c-decl.c: Likewise.
19291         * caller-save.c: Likewise.
19292         * calls.c: Likewise.
19293         * combine.c: Likewise.
19294         * cse.c: Likewise.
19295         * explow.c: Likewise.
19296         * final.c: Likewise.
19297         * global.c: Likewise.
19298         * graph.c: Likewise.
19299         * local-alloc.c: Likewise.
19300         * loop.c: Likewise.
19301         * optabs.c: Likewise.
19302         * profile.c: Likewise.
19303         * recog.c: Likewise.
19304         * regclass.c: Likewise.
19305         * regmove.c: Likewise.
19306         * reload.c: Likewise.
19307         * reorg.c: Likewise.
19308         * resource.c: Likewise.
19309         * sched.c: Likewise.
19310         * stupid.c: Likewise.
19311         * config/1750a/1750a.c: Likewise.
19312         * config/a29k/a29k.c: Likewise.
19313         * config/arc/arc.c: Likewise.
19314         * config/arm/arm.c: Likewise.
19315         * config/arm/thumb.c: Likewise.
19316         * config/c4x/c4x.c: Likewise.
19317         * config/clipper/clipper.c: Likewise.
19318         * config/convex/convex.c: Likewise.
19319         * config/fx80/fx80.c: Likewise.
19320         * config/i860/i860.c: Likewise.
19321         * config/m68k/m68k.c: Likewise.
19322         * config/m88k/m88k.c: Likewise.
19323         * config/mips/mips.c: Likewise.
19324         * config/pdp11/pdp11.c: Likewise.
19325         * config/pyr/pyr.c: Likewise.
19326         * config/romp/romp.c: Likewise.
19327         * config/sh/sh.c: Likewise.
19328         * config/tahoe/tahoe.c: Likewise.
19329         * config/vax/vax.c: Likewise.
19330         * config/we32k/we32k.c: Likewise.
19331         * config/sparc/sparc.c: Include "function.h".
19332         (mem_min_alignment): Test current_function rather than
19333         regno_pointer_align.
19334         * config/pa/pa.c: Likewise.
19335         (compute_frame_size): Delete declaration of
19336         current_function_outgoing_args_size.
19337         * config/arc/arc.h (current_function_varargs): Delete declaration.
19338         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
19339         declaration.
19340         * config/i370/i370.h (current_function_outgoing_args_size): Delete
19341         declaration.
19342         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
19343         current_function_uses_pic_offset_table.
19344         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
19345         of current_function_returns_pointer.
19346         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19347         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19348         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19349         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19350         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19351         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
19352         * config/m88k/m88k.c: Include "function.h"
19353         (call_used_regs, current_function_pretend_args_size,
19354         current_function_outgoing_args_size, frame_pointer_needed): Delete
19355         declarations.
19356         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
19357         declaration.
19358         * config/mips/mips.h (current_function_calls_alloca): Delete
19359         declaration.
19360         * config/mn10200/mn10200.h (current_function_needs_context,
19361         rtx_equal_function_value_matters): Delete declarations.
19362         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
19363         flag_pic): Delete declarations.
19364         * config/pa/pa.h (current_function_pretend_args_size,
19365         current_function_decl): Delete declarations.
19366         * config/pa/som.h (current_function_varargs): Delete declaration.
19367         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
19368         declaration.
19369         * config/pyr/pyr.h (current_function_pretend_args_size,
19370         current_function_args_size, current_function_calls_alloca): Delete
19371         declarations.
19372         * config/sh/sh.h (current_function_varargs): Delete declaration.
19373         * config/sparc/sparc.h (current_function_outgoing_args_size,
19374         current_function_calls_alloca, current_function_decl): Delete
19375         declarations.
19376         * config/spur/spur.h (current_function_pretend_args_size,
19377         current_function_calls_alloca): Delete declarations.
19378         * config/v850/v850.c (current_function_outgoing_args_size): Delete
19379         declaration.
19380         * config/vax/vms.h (current_function_name): Delete declaration.
19381         * gcse.c: Include "function.h".
19382         (current_function_name, current_function_calls_setjmp): Delete
19383         declarations.
19384         * haifa-sched.c: Include "function.h".
19385         (forced_labels): Delete declaration.
19386         * jump.c: Likewise.
19387         * reg-stack.c: Likewise.
19388         * reload1.c: Likewise.
19389         * genemit.c (main): Make generated file include function.h.
19390         * genoutput.c (output_prologue): Likewise.
19391
19392         * builtins.c (saveregs_value, apply_args_value): Delete variables.
19393         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
19394         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
19395         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
19396         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
19397         macros for some of them.
19398         (emit_filename, emit_lineno): Delete declarations.
19399         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
19400         regno_pointer_* variables through current_function.
19401         (gen_inline_header_rtx): Delete function.
19402         (save_emit_status): Delete function.
19403         (set_new_last_label_num): New function.
19404         (clear_emit_caches): New function.
19405         (restore_emit_status): Just clear last_labelnum and call
19406         clear_emit_caches.
19407         (get_last_insn_anywhere): Variable sequence_stack is now accessed
19408         through macro seq_stack.
19409         (add_insn_after): Likewise.
19410         (add_insn_before): Likewise.
19411         (remove_insn): Likewise.
19412         (pop_topmost_sequence): Likewise.
19413         (in_sequence_p): Likewise.
19414         (start_sequence_for_rtl_expr): Likewise.
19415         (start_sequence): Likewise, and likewise for
19416         sequence_rtl_expr/seq_rtl_expr.
19417         (push_topmost_sequence): Likewise.
19418         (end_sequence): Likewise.
19419         (init_virtual_regs): Now takes a "struct emit_status *" argument.
19420         All callers changed.  Store into that pointer instead of globals.
19421         (init_emit): Allocate emit elt of current_function.
19422         Changes for sequence_rtl_expr/sequence_stack renaming.
19423         Call clear_emit_caches instead of doing it in-line.
19424         Access regno_pointer_* variables through current_function.
19425         (init_emit_once) Don't clear sequence_stack.
19426
19427         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
19428         Delete variables.
19429         (arg_pointer_save_area): Delete declaration.
19430         (finish_expr_for_function): Renamed from init_queue; no longer static.
19431         (init_expr): Don't call init_queue.
19432         (save_expr_status, restore_expr_status): Delete functions.
19433         (expand_expr): Changes to reflect new layout of struct function.
19434         Don't access current_function_check_memory_usage when current_function
19435         is 0.
19436         * expr.h (forced_labels, save_expr_regs, saveregs_value,
19437         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
19438         current_function_outgoing_args_size, current_function_arg_offset_rtx,
19439         current_function_uses_const_pool, function_call_count,
19440         current_function_uses_pic_offset_table, nonlocal_labels,
19441         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
19442         current_function_check_memory_usage, nonlocal_goto_handler_slots,
19443         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
19444         declarations.
19445         (finish_expr_for_function): Declare.
19446         * flags.h (current_function_has_nonlocal_label,
19447         current_function_has_nonlocal_goto, current_function_is_thunk,
19448         current_function_has_computed_jump): Delete declarations.
19449         * flow.c (forced_labels): Delete declaration.
19450         * function.c (current_function_pops_args,
19451         current_function_returns_struct, current_function_returns_pcc_struct,
19452         current_function_needs_context, current_function_calls_setjmp,
19453         current_function_calls_longjmp, current_function_has_nonlocal_label,
19454         current_function_has_nonlocal_goto, current_function_is_thunk,
19455         current_function_has_computed_jump, current_function_calls_alloca,
19456         current_function_contains_functions, current_function_returns_pointer,
19457         current_function_epilogue_delay_list, current_function_args_size,
19458         current_function_pretend_args_size, current_function_arg_offset_rtx,
19459         current_function_outgoing_args_size, current_function_varargs,
19460         current_function_stdarg, current_function_args_info, cleanup_label,
19461         current_function_name, current_function_uses_const_pool,
19462         current_function_instrument_entry_exit, current_function_return_rtx,
19463         current_function_uses_pic_offset_table, nonlocal_labels,
19464         current_function_internal_arg_pointer, current_function_cannot_inline,
19465         current_function_check_memory_usage, function_call_count,
19466         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
19467         nonlocal_goto_stack_level, return_label, save_expr_regs,
19468         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
19469         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
19470         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
19471         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
19472         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
19473         Delete variables.
19474         (push_function_context_to): Don't save them.  Don't call
19475         save_storage_status, save_emit_status or save_expr_status.
19476         (pop_function_context_from): Don't restore them.  Don't call
19477         restore_storage_status or restore_expr_status.
19478         (get_func_frame_size): New function.
19479         (get_frame_size): Use it.
19480         (assign_outer_stack_local): Reflect some member name changes in struct
19481         function.
19482         (put_reg_into_stack): Likewise.
19483         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
19484         seq_rtl_expr.
19485         (fixup_var_refs): Likewise.
19486         (fix_lexical_addr): Likewise.
19487         (trampoline_address): Likewise.
19488         (prepare_function_start): Clear field inlinable of current_function.
19489         (init_function_for_compilation): New function.
19490         (expand_dummy_function_end): New function.
19491         (expand_function_end): Call finish_expr_for_function.
19492         * function.h (struct emit_status): New; fields moved here from struct
19493         function and from global variables.  Add accessor macros for some of
19494         the fields.
19495         (struct expr_status): Likewise.
19496         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
19497         (struct function): Add fields expr and emit, inlinable, inl_emit,
19498         original_arg_vector, original_decl_initial, inl_last_parm_insn,
19499         inl_max_label_num.  Add many comments.
19500         Add accessor macros for all elts of struct function that no longer
19501         have a global variable.
19502         (cleanup_label, return_label, frame_offset, tail_recursion_label,
19503         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
19504         stack_slot_list): Delete declarations.
19505         (get_func_frame_size): Declare.
19506         (save_expr_status, restore_expr_status, save_emit_status,
19507         save_storage_status, restore_storage_status): Delete declarations.
19508         (init_virtual_regs): Declare.
19509         * output.h (current_function_pops_args,
19510         current_function_returns_struct, current_function_returns_pcc_struct,
19511         current_function_needs_context, current_function_calls_setjmp,
19512         current_function_calls_longjmp, current_function_calls_alloca,
19513         current_function_has_nonlocal_label, current_function_varargs,
19514         current_function_has_computed_jump, current_function_returns_pointer,
19515         current_function_contains_functions, current_function_args_size,
19516         current_function_pretend_args_size, current_function_stdarg,
19517         current_function_outgoing_args_size, current_function_args_info,
19518         current_function_name, current_function_return_rtx,
19519         current_function_epilogue_delay_list,
19520         current_function_uses_const_pool, current_function_cannot_inline):
19521         Delete declarations.
19522         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
19523         regno_reg_rtx): Delete declaration.
19524         (REGNO_POINTER_FLAG): Delete macro.
19525         * stmt.c (expand_goto): Changes to reflect that some fields in struct
19526         function were renamed.
19527         * stor-layout.c (save_storage_status, restore_storage_status): Delete
19528         functions.
19529         * toplev.c: Include "function.h".
19530         (current_function_decl): Delete declaration.
19531         (compile_file): Call init_dummy_function_start and
19532         expand_dummy_function_end around some initializations that need to
19533         emit rtl.
19534         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
19535         Call init_function_for_compilation.
19536         * unroll.c: Include "function.h"
19537         (unroll_loop): Access regno_pointer_* variables through
19538         current_function.
19539
19540         * tree.h (struct tree_decl): Add elt f to saved_insns member.
19541         (DECL_SAVED_INSNS): use it.
19542         (expand_dummy_function_end): Declare.
19543         (init_function_for_compilation): Declare.
19544         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
19545         that it's no longer an INLINE_HEADER.
19546         (expand_call): Likewise.
19547         * integrate.c (finish_inline): Delete function.
19548         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
19549         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
19550         args.  Don't generate an INLINE_HEADER rtx, just return the arg
19551         vector.  All callers changed.
19552         (save_for_inline_copying):  Create a duplicate struct emit_status to
19553         hold the emit state for compiling the current function.  Use this and
19554         the other new fields in struct function that are for integration
19555         instead of an INLINE_HEADER.
19556         Use memcpy instead of bcopy.
19557         Store the current struct function in DECL_SAVED_INSNS of fndecl.
19558         (save_for_inline_nocopy): Similar changes, except no new emit_status
19559         is needed here.
19560         (expand_inline_function): Get information from function structure,
19561         not from an inline header rtx.
19562         (output_inline_function): Lose code to extract the necessary
19563         information from an inline header; simply put back the function
19564         structure into current_function.  Clear its inlinable elt.
19565         * rtl.def (INLINE_HEADER): Delete.
19566         * rtl.h: Delete all accessors for an INLINE_HEADER.
19567         (gen_inline_header_rtx): Delete declaration.
19568         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
19569         Delete declarations.
19570         (REGNO_POINTER_ALIGN): Delete.
19571         (clear_emit_caches): Declare.
19572         (set_new_last_label_num): Declare.
19573
19574 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
19575
19576         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
19577
19578         * except.c (expand_eh_region_start_for_decl): Always start a new block.
19579         * stmt.c (is_eh_region): Make sure current_function is present, too.
19580
19581 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
19582
19583         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
19584         for 64bit PA targets.
19585
19586         * pa.h (SELECT_SECTION): Define.
19587         * som.h (SELECT_SECTION): Delete.
19588
19589 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19590
19591         * alias.c (init_alias_analysis): Wrap call to
19592         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
19593
19594 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
19595
19596         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
19597         <sys/asm.h> contains an asm comment with an apostrophe
19598         * fixinc/inclhack.sh:  regen
19599         * fixinc/fixincl.x:  regen
19600
19601 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
19602
19603         * function.c (init_function_start): Clear prologue & epilogue.
19604         (prologue_epilogue_contains): New function.
19605         * alias.c (init_alias_analysis): Use it.
19606         * rtl.h (prologue_epilogue_contains): Declare it.
19607
19608 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
19609
19610         * jump.c (onlyjump_p): New function.
19611         * rtl.h: Declare it.
19612         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
19613         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
19614
19615 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
19616
19617         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
19618         to invert loops.  Simplify block scanning.
19619
19620 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
19621
19622         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
19623         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
19624
19625 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
19626
19627         * config/sparc/liteelf.h: New file to support sparclite-elf target
19628         * config/sparc/t-sp86x: New file to support sparc86x targets
19629         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
19630         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
19631         * configure.in: Support above target triplets
19632         * configure: Regenerated
19633
19634 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
19635
19636         * fixinc/server.c (server_setup): Do not prefix function used as
19637         parameter with `&'.
19638
19639 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
19640
19641         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
19642         Remove fp reg alternatives.
19643
19644 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
19645
19646         * Makefiin (TAROUTOPTS): Kill.
19647         (install-headers-tar): Use "xpf" for tar headerfile extraction
19648         * i370/x-oe (TAROUTOPTS): Delete.
19649         * m68k/x-apollo68 (TAROUTOPTS): Delete.
19650         * m68k/x-hp320 (TAROUTOPTS): Delete.
19651         * m68k/x-hp320g (TAROUTOPTS): Delete.
19652         * gcc.texi: Update bug reporting text.
19653
19654 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
19655
19656         * reg-stack.c (change_stack) Fixed problem with negative array index.
19657
19658 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
19659
19660         * extend.texi, install.texi: Fix spelling mistakes.
19661
19662         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
19663         (s-attrtab); No longer try to use pre-made insn-attrtab file.
19664         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
19665         PREMADE_ATTRTAB_MD.
19666         * mips/t-ecoff: Likewise.
19667         * mips/t-elf: Likewise.
19668         * mips/t-mips: Likewise.
19669         * mips/t-osfrose: Likewise.
19670         * mips/t-r3900: Likewise.
19671         * mips/t-svr3: Likewise.
19672         * mips/t-svr4: Likewise.
19673         * mips/t-ultrix: Likewise.
19674
19675         * gcc.texi: Document recommend means to provide software floating
19676         point libraries in libgcc.a
19677
19678 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
19679
19680         * c-lex.c (yylex): We can have a number with no digits.
19681
19682 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
19683
19684         * jump.c (delete_prior_computation): New function, broken
19685         out of delete_computation.  Check for side effects with
19686         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
19687         multi-word hard registers.
19688         (delete_computation): Use it.  Check for side effects with
19689         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
19690         missing REG_DEAD note for a register which is both set and
19691         used by an insn.
19692
19693 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
19694
19695         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
19696         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
19697         (ASM_FILE_START): Import _mcount with the right type.
19698         (ASM_DECLARE_FUNCTION_NAME): Define.
19699         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
19700         * pa.c (output_function_prologue): Always emit the function's label
19701         here.
19702         * pa.h (TEXT_SPACE_P): Define.
19703         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
19704         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
19705         * som.h (TEXT_SPACE_P): Delete.
19706         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
19707         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
19708
19709 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
19710
19711         * expr.c (emit_group_load): Allow src to be a CONCAT.
19712
19713 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19714
19715         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
19716         (___mulsi3): Use '!' comment character.
19717
19718 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19719
19720         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
19721
19722 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
19723
19724         * gcc.c: Update URLs and mail addresses.
19725         * gcc.texi: Likewise.
19726
19727 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
19728
19729         * rs6000.c (current_file_function_operand): Return zero for
19730         weak functions.
19731         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
19732         weak symbols.
19733         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
19734         for weak symbols.
19735
19736 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
19737
19738         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
19739         allocate space in the stack frame for the PIC register.
19740
19741 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
19742
19743         * m68k.md (xordi3, anddi3): These patterns are not available on
19744         the coldfire.
19745
19746 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
19747
19748         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
19749         (PUT_REAL): Likewise.
19750
19751 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19752
19753         * final.c (shorten_branches): Don't add an alignment for loops
19754         that have no label inside.
19755
19756 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19757
19758         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
19759         prototypes in macro HAVE_cmpstrsi.
19760
19761         * cpplib.c (cpp_get_token): Remove unused label `op3'.
19762
19763         * emit-rtl.c (operand_subword): Remove unused variable
19764         `bits_per_word'.
19765
19766         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
19767
19768         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
19769
19770 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
19771
19772         * cpphash.c (macroexpand): Delete leading whitespace when arg
19773         is concatenated before.
19774         (unsafe_chars): Correct test for whether + and - can extend a
19775         token.
19776
19777         * cppinit.c (cpp_start_read): Do dependencies for
19778         -include/-imacros files also.
19779
19780         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
19781         tokenizing non-directive lines.
19782         (cpp_expand_to_buffer): Temporarily disable no-output mode.
19783         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
19784         the input file.
19785
19786 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
19787
19788         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
19789
19790         * c-lex.c: Sync with C++ frontend.
19791         (linemode): New variable.
19792         (parse_float): imag, conversion_errno, and type are output only.
19793         (yylex): Adjust.  Move initial '.' case into main switch.
19794         Use linemode.
19795         (handle_generic_pragma): Just deal with tokens.
19796         (readescape): Use ISXDIGIT and ISGRAPH.
19797         * c-parse.in: Add END_OF_LINE token.
19798
19799         * c-lex.c (lang_init): Generalize.
19800         (nextchar): Remove.  Replace uses with UNGETC.
19801         (skip_white_space): Handle linemode here.  Optimize for cpplib.
19802         (skip_white_space_on_line): Remove.
19803         (extend_token_buffer_to): New fn.
19804         (extend_token_buffer): Use it.
19805         (read_line_number, check_newline): Just deal with tokens.
19806         (token_getch, token_put_back): New fns.
19807         (yylex): Use them.  More cpplib optimizations.  Simplify.
19808
19809 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
19810                           Jason Merrill  <jason@yorick.cygnus.com>
19811
19812         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
19813         (consume_string): Make this smart about USE_CPPLIB.
19814         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
19815         (yylex): Rewrite to be intelligent about USE_CPPLIB.
19816         Also, clean up cases where we redundantly set token_buffer[0].
19817         (read_line_number): New fn.
19818         (ignore_escape_flag): New variable.
19819
19820 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
19821
19822         * a29k/t-a29kbare: Fix some comments.
19823         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
19824         (FPBIT, DPBIT): Define.
19825         * a29k/t-vx29k: Likewise.
19826         * arc/t-arc: Likewise.
19827         * arm/t-arm-elf: Likewise.
19828         * arm/t-bare: Likewise.
19829         * arm/t-pe: Likewise.
19830         * arm/t-pe-thumb: Likewise.
19831         * arm/t-semi: Likewise.
19832         * arm/t-thumb: Likewise.
19833         * arm/t-thumb-elf: Likewise.
19834         * arm/t-thumb-linux: Likewise.
19835         * h8300/t-h8300: Likewise.
19836         * i960/t-i960: Likewise.
19837         * i960/t-vxworks960: Likewise.
19838         * m32r/t-m32r: Likewise.
19839         * mips/t-ecoff: Likewise.
19840         * mips/t-elf: Likewise.
19841         * mips/t-r3900: Likewise.
19842         * pa/t-pro: Likewise.
19843         * rs6000/t-aix43: Likewise.
19844         * rs6000/t-beos: Likewise.
19845         * rs6000/t-newas: Likewise.
19846         * rs6000/t-ppccomm: Likewise.
19847         * rs6000/t-rs6000: Likewise.
19848         * rs6000/t-winnt: Likewise.
19849         * rs6000/t-xnewas: Likewise.
19850         * rs6000/t-xrs6000: Likewise.
19851         * sh/t-sh: Likewise.
19852         * sparc/t-elf: Likewise.
19853         * sparc/t-sparcbare: Likewise.
19854         * sparc/t-sparclite: Likewise.
19855         * sparc/t-splet: Likewise.
19856         * v850/t-v850: Likewise.
19857         * mn10200/t-mn10200: Fix comments.
19858         * mn10300/t-mn10300: Likewise.
19859
19860         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
19861         dummy operand.  Allocate a new pseudo for the dummy operand.
19862         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
19863
19864         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
19865
19866 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
19867
19868         * configure: Rebuilt.
19869         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
19870
19871 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
19872
19873         * recog.c (preproces_constraints): Zero recog_op_alt before
19874         processing the constraints.
19875
19876         * arm.c (typedef minipool_node): Renamed from pool_node.
19877         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
19878         (add_minipool_constant): New function.
19879         (dump_minipool): New function.
19880         (find_barrier): Remove special case for getting the insn size of
19881         an insn that references the constant pool.
19882         (minipool_fixup): New structure.
19883         (push_minipool_barrier): New function.
19884         (push_minipool_fix): New function.
19885         (note_invalid_constants): New function.
19886         (add_pool_constant, dump_table, fixit, broken_move): Delete.
19887         (arm_reorg): Rewrite code to fix up the constant pool into a
19888         series of mini-pools embedded in the insn stream.
19889         (arm_output_epilogue): New function, made mainly from the body
19890         of output_func_epilogue.
19891         (output_func_epilogue): Move insn generation part of epilogue code
19892         to arm_output_epilogue.
19893         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
19894         * arm.md (pool_range): New attribute.
19895         (zero_extendqidi2): Add attribute pool_range.
19896         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
19897         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
19898         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
19899         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
19900         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
19901         (epilogue): New expand.
19902         (epilogue_insn): New insn.  Call arm_output_epilogue.
19903
19904         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
19905         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
19906
19907 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
19908
19909         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
19910
19911 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
19912
19913         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
19914
19915 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
19916
19917         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
19918
19919 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
19920
19921         * global.c: Fix comment.
19922
19923 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
19924
19925         * gcc.c (access_check): New static function.
19926         (find_a_file): Use it when searching a directory list.
19927         * collect2.c (find_a_file): Don't accept directories found when
19928         searching a directory list.
19929
19930 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
19931
19932         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
19933         function parameters with `&'.
19934         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
19935
19936 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
19937
19938         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
19939         or tidy_fallthru_edge if the last insn in the block is not
19940         an unconditional jump or a simple conditional jump.
19941
19942 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19943
19944         * Makefile.in (c-decl.o): Depends on defaults.h.
19945
19946 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
19947
19948         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
19949         PA1.1 and above.
19950         (CLASS_MAX_NREGS): Likewise.
19951
19952 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
19953
19954         * cse.c (cse_insn): Fix dumb thinko in last change.
19955
19956 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19957
19958         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
19959         "const char *".
19960
19961 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
19962
19963         * dwarf2out.c (add_location_or_const_value_attribute): Correct
19964         test for sizes of passed and declared parameter types.
19965
19966 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19967
19968         * fixincludes: Fix the return type of bsearch, char* -> void*.
19969
19970         * fixinc/inclhack.def: Likewise.
19971
19972 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
19973
19974         * invoke.texi (-fdump-translation-unit): New option.
19975
19976 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
19977
19978         * expr.h (PROMOTE_PROTOTYPES): Move ...
19979         * defaults.h: ... to here.
19980         * c-decl.c: Include defaults.h instead of expr.h.
19981         * c-typeck.c: Include defaults.h.
19982
19983 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
19984
19985         * toplev.h (errorcount): Declare.
19986         (warningcount): Likewise.
19987         (sorrycount): Likewise.
19988         * c-lex.c (errorcount): Don't declare.
19989         * dwarf2out.c (errorcount): Don't declare.
19990
19991 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
19992
19993         * config/libgloss.h: Add a note discouraging use with ELF.
19994         * configure.in: Don't use libgloss.h for ELF targets.
19995         Always use_collect2 on a.out targets.
19996
19997 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
19998
19999         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
20000         (force_to_mode, case ASHIFTRT): Add shiftrt label.
20001
20002 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20003
20004         * loop.c (strength_reduce): When doing biv->giv conversion, update
20005         reg note of NEXT->insn.
20006
20007 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20008
20009         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
20010
20011 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20012
20013         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
20014         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
20015         Ensure expr.h is included.
20016         * c-typecheck.c (convert_arguments): Ditto.
20017
20018         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
20019
20020         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
20021         * config/convex/convex.h: Ditto.
20022         * config/dsp16xx/dsp16xx.h: Ditto.
20023         * config/fx80/fx80.h: Ditto.
20024         * config/gmicro/gmicro.h: Ditto.
20025         * config/i370/i370.h: Ditto.
20026         * config/i386/i386.h: Ditto.
20027         * config/m32r/m32r.h: Ditto.
20028         * config/m68k/m68k.h: Ditto.
20029         * config/m88k/m88k.h: Ditto.
20030         * config/mips/mips.h: Ditto.
20031         * config/pa/pa.h: Ditto.
20032         * config/pyr/pyr.h: Ditto.
20033         * config/tahoe/tahoe.h: Ditto.
20034         * config/we32k/we32k.h: Ditto.
20035
20036         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
20037         based on arch size.
20038
20039         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
20040
20041         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
20042         from comment.
20043
20044         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
20045
20046 1999-08-02  Richard Henderson  <rth@cygnus.com>
20047
20048         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
20049         for the register spill block.
20050         (m32r_va_arg): New.
20051         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
20052         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
20053
20054         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
20055         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
20056         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
20057
20058 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20059
20060         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
20061         MAX_WCHAR_TYPE defined in sparc.h.
20062         * config/sparc/linuxaout.h: Likewise.
20063         * config/sparc/linux64.h: Likewise.
20064         Also default to -mvis if CPU is UltraSPARC.
20065
20066 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20067
20068         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
20069         (RTX_OK_FOR_OLO10): Likewise.
20070         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
20071         %lo(), allow it in addresses...
20072         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
20073         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
20074         does not make sense.
20075         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
20076         (sparc_output_scratch_registers): New function.
20077         (output_function_prologue, sparc_flat_output_function_prologue): Use
20078         it.
20079         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
20080         defined.
20081         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
20082         * configure.in: Add check for .register pseudo-op support in as and
20083         check for offsetable %lo().
20084         * acconfig.h: Add templates for the above checks.
20085         * configure: Regenerate.
20086
20087 1999-08-02  Richard Henderson  <rth@cygnus.com>
20088
20089         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
20090         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
20091         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
20092
20093 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20094
20095         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
20096         reg_biv_class.
20097
20098 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
20099
20100         * config/float-sparc.h: New file.
20101         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
20102         sparc-*-linux-gnu and sparc64-*-linux*.
20103
20104 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20105
20106         * rs6000.c (rs6000_va_list): Type is an array.
20107         (rs6000_va_start): Don't doubly adjust for varargs.
20108         (rs6000_va_arg): Evaluate long long GPR adjustment.
20109
20110 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
20111
20112         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
20113         -maix64 and -maix32.
20114         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
20115         LINK_SPEC): Change appropriately.
20116         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
20117         (u_short_cint_operand): Likewise.
20118         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
20119         for 64-bit hosts.
20120         * rs6000/t-aix43 (MULTILIB): Change to -m64.
20121
20122         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
20123
20124 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
20125
20126         * rs6000/rs6000.c (num_insns_constant_wide): Correct
20127         for type promotion.
20128         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
20129         (non_add_cint_operand): Likewise.
20130         (logical_operand): Likewise.
20131         (non_logical_cint_operand): Likewise.
20132         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
20133         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
20134         (rs6000_select_rtx_section): Suppress warning.
20135         (small_data_operand): Suppress warning.
20136         (rs6000_got_register): Suppress warning.
20137         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
20138         type, so `J' is generally the wrong constraint for a SImode value;
20139         use `L' instead.
20140         (andsi3_internal2): Likewise.
20141         (andsi3_internal3): Likewise.
20142         (iorsi3_internal1): Likewise.
20143         (xorsi3_internal1): Likewise.
20144         (movsi): Likewise.
20145         (movsf_softfloat): Likewise.
20146         (scc insns): Likewise.
20147         (movsi+2): Preserve sign bits of SImode constant.
20148         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
20149         (movdf+1): Sign-extend properly.
20150         (movdi_32+1): Sign-extend properly.
20151         (scc insns): Sign-extend properly.
20152
20153         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
20154         K, L, and T.
20155
20156 1999-08-02  Richard Henderson  <rth@cygnus.com>
20157
20158         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
20159         -mcpu parsing code.
20160         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
20161         * alpha.md (all fp insns): Likewise.
20162
20163 1999-08-02  Nick Clifton  <nickc@cygnus.com>
20164
20165         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
20166         already defined.
20167
20168 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
20169
20170         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
20171         pic_load_label generator directly.
20172         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
20173         No longer a named pattern.
20174
20175 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
20176
20177         * explow.c (force_reg): Call force_operand if X does not
20178         satisfy general_operand.
20179
20180 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
20181
20182         * fix-header.c (main): When testing for CONTINUED, use string
20183         equality, not pointer equality.
20184
20185 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
20186
20187         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
20188
20189 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
20190
20191         * cse.c (cse_insn): Fix loop which deletes insns after a jump
20192         that has become an unconditional jump.
20193
20194         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
20195         (output_function_epilogue): Similarly.
20196
20197 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20198
20199         * tree.h (init_dummy_function_start): Declare.
20200
20201 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20202
20203         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
20204         last_expr_type, last_expr_value, block_start_count, block_stack,
20205         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
20206         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
20207         dynamically in stmt elt of struct function for each function.
20208         (struct nesting): Rename function_call_count elt to n_function_calls,
20209         target_temp_slot_level to block_target_temp_slot_level.  All users
20210         changed.
20211         (struct stmt_status): New structure definition.
20212         Add many accessor macros for stmt_status elements which previously
20213         were global variables.
20214         (init_stmt_for_function): Allocate stmt elt for current_function.
20215         Reflect that block_start_count was renamed to
20216         current_block_start_count.
20217         (save_stmt_status, restore_stmt_status): Delete functions.
20218         (preserve_subexpressions_p): Don't access loop_stack when outside
20219         a function.
20220         (expand_start_bindings): Reflect that block_start_count was renamed to
20221         current_block_start_count.
20222         (expand_fixup): Likewise.
20223         (expand_decl): Don't access block_stack when outside a function.
20224         (expand_decl_cleanup): Likewise.
20225         (expand_dcc_cleanup): Likewise.
20226         (expand_dhc_cleanup): Likewise.
20227         (expand_anon_union_decl): Likewise.
20228         (set_file_and_line_for_stmt): New function.
20229         (in_control_zone_p): New function.
20230
20231         * function.h (struct function): Add new elt stmt.
20232         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
20233         case_stack, nesting_stack, nesting_depth, block_start_count,
20234         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
20235         emit_lineno, goto_fixup_chain.
20236         (save_eh_status, restore_eh_status, save_stmt_status,
20237         restore_stmt_status): Delete declarations.
20238         * function.c (push_function_context_to): Don't call save_stmt_status.
20239         (pop_function_context_to): Don't call restore_stmt_status.
20240         * tree.h (in_control_zone_p): Declare.
20241         * rtl.h (set_file_and_line_for_stmt): Declare.
20242
20243         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
20244         call set_file_and_line_for_stmt.
20245
20246 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
20247
20248         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
20249         Also update copyright.
20250
20251 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20252
20253         * c-pragma.c: Don't include "except.h".
20254         * emit-rtl.c: Likewise.
20255         * stor-layout.c: Likewise.
20256         * tree.c: Likewise.
20257         * varasm.c: Likewise.
20258
20259         * flow.c: Include "function.h".
20260         * tree.h (init_dummy_function_start): Declare new function.
20261
20262         * except.h (struct eh_status): New structure.
20263         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
20264         been included.
20265         (eh_return_stub_label, ehstack, catchstack, ehqueue,
20266         catch_clauses, false_label_stack, caught_return_label_stack,
20267         protect_list, current_function_ehc): Add accessor macros for the
20268         corresponding fields in current_function->eh; delete declarations
20269         for all items that used to be declared here.
20270         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
20271         catch_clauses, false_label_stack, caught_return_label_stack,
20272         protect_list, current_function_ehc): Delete variables.
20273         (init_eh_for_function): Allocate current_function->eh.
20274         (save_eh_status, restore_eh_status): Delete functions.
20275
20276         * function.h (struct function): Add fields next_global and eh.
20277         Delete all exception handling related fields.
20278         * function.c (current_function): New variable.
20279         (all_functions): New variable.
20280         (push_function_context_to): Don't allocate a struct function,
20281         use current_function instead.  Call init_dummy_function_start when
20282         outside a function.  Clear current_function before returning.
20283         (pop_function_context_from): Restore current_function.
20284         Don't free the restored struct function.
20285         (prepare_function_start): New function.
20286         (init_dummy_function_start): New function.
20287         (init_function_start): Break out some code into prepare_function_start
20288         and call it here.
20289
20290         * stmt.c (save_stmt_status): Don't call save_eh_status.
20291         (restore_stmt_status): Don't call restore_eh_status.
20292
20293         * Makefile.in: Update dependencies.
20294
20295 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
20296
20297         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
20298         of depending on a magic constant value.  Update comments.
20299         (hppa_expand_prologue): Similarly.
20300
20301         * pa.md (reload_indi, reload_outdi): Allow any register for the
20302         original reload register.
20303
20304 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
20305
20306         * cccp.c (print_help): Change marcos to macros.
20307
20308 1999-07-30  Richard Henderson  <rth@cygnus.com>
20309
20310         * c-typeck.c (initializer_constant_valid_p): Move ...
20311         * c-common.c (initializer_constant_valid_p): ... here.  Use
20312         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
20313         of label addresses.
20314         * c-common.h (initializer_constant_valid_p): Declare.
20315         * c-tree.h (initializer_constant_valid_p): Remove.
20316
20317 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
20318
20319         * config/i386/sol2-c1.asm: Align the stack.
20320         * config/i386/sol2-gc1.asm: Likewise.
20321
20322 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
20323
20324         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
20325         -Asparclite for sparc86x.
20326         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
20327         sparc86x.
20328         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
20329
20330 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
20331
20332         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
20333         the user if using the non-default arch size in BI_ARCH configuration.
20334         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
20335
20336         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
20337         Fix patterns so that they actually match.
20338         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
20339         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
20340         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
20341         TARGET_HARD_MUL32.
20342         (mulsidi3): Reflect this in the expand.
20343         (smulsi3_highpart): Only on TARGET_ARCH32.
20344         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
20345         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
20346         (umulsidi3): Reflect this in the expand.
20347         (umulsi3_highpart): Only on TARGET_ARCH32.
20348         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
20349         don't require g0 to be zero.
20350         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
20351         ({,u}divsi3): New expands.
20352         ({,u}divsi3_sp64): New patterns.
20353         (after lshrdi3_v8plus): Four new patterns to help combiner
20354         optimizing nested mixed mode shifts.
20355
20356         * config/sparc/sparc.c (sparc_override_options): Use deprecated
20357         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
20358         speed things up. Don't use them by default on plain v9 in 64bit
20359         mode, according to what SPAMv9 sais.
20360
20361         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
20362         top 32 bits of %[og][0-7] in signal handlers.
20363         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
20364
20365 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
20366
20367         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
20368         (ashlsi3): Corresponding changes.
20369
20370         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
20371
20372 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
20373
20374         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
20375
20376 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20377
20378         * arm.h (Hint): Delete macro.
20379         Substitute HOST_WIDE_INT for Hint in some prototypes.
20380         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
20381
20382 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
20383
20384         * builtins.c (expand_builtin_setjmp): Use force_operand to
20385         make sure that the buffer address is in a suitable form to be
20386         passed to force_reg.
20387
20388 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
20389
20390         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
20391         them here.
20392
20393 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
20394
20395         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
20396         proper mode in the condition string.
20397         (icacheflush, dcacheflush): Remove modes from match_operands.
20398
20399         * pa.c (emit_move_sequence): Always convert scratch_reg to the
20400         proper mode before using it.
20401
20402         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
20403         pair.
20404
20405         * pa.c (store_reg): Do not call add_high_const generator directly.
20406         (load_reg, set_reg_plus_d): Likewise.
20407         * pa.md (add_high_const): No longer a named pattern.
20408
20409         * pa.c (legitimize_address): Consistently use Pmode rather than
20410         SImode.  Do not call gen_pic2_highpart directly anymore.
20411         * pa.md (pic2_highpart): No longer a named pattern.
20412         (pic2_lo_sum): Similarly.  Reformat to make more readable.
20413
20414         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
20415         needed.
20416
20417         * README: Update.
20418
20419 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20420
20421         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
20422
20423 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
20424
20425         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
20426         and tag the spill mems.
20427         (hppa_va_start): New.
20428         (hppa_va_arg): New.
20429         * pa.h (EXPAND_BUILTIN_VA_START): New.
20430         (EXPAND_BUILTIN_VA_ARG): New.
20431
20432 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
20433
20434         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
20435         and tag the spill mems.
20436         (mn10300_va_start): New.
20437         (mn10300_va_arg): New.
20438         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
20439         (EXPAND_BUILTIN_VA_ARG): New.
20440
20441 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
20442
20443         * mn10200.c (mn10200_va_arg): New.
20444         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
20445
20446 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
20447
20448         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
20449         rather than play with TREE_INT_CST_LOW.
20450
20451 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
20452
20453         * config/arm/telf.h: Include dbxelf.h.
20454         (CPP_PREDEFINES): Only define if not already defined.
20455         (ASM_IDENTIFY_GCC): Likewise.
20456         (SUBTARGET_EXTRA_SECTIONS): Likewise.
20457         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
20458         * config/arm/thumb.h (LINK_SPEC): Only define if not already
20459         defined.
20460         (DBX_DEBUGGING_INFO): Don't define.
20461         * config/arm/linux-telf.h: New file.
20462         * config/arm/linux-tgas.h: New file.
20463         * config/arm/t-thumb-linux: New file.
20464         * config/arm/uclinux-elf.h: New file.
20465         * config/arm/uclinux-telf.h: New file.
20466         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
20467         thumb-*-uclinux): New targets.
20468         * configure: Regenerate.
20469
20470 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
20471
20472         * pa.md (post_store, pre_load): New expanders.
20473         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
20474         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
20475         need to directly generate RTL for them.
20476         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
20477         changes.
20478
20479 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
20480
20481         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
20482         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
20483         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
20484         (secndary_reload_class): Make TARGET_ELF conditional compile.
20485         (print_operand_address): Similar.
20486         (output_toc): Print all values as hex.
20487         (get_issue_rate): Rearrange and add RS64A and PPC630.
20488         * rs6000.h (processor_type): Add RS64A and PPC630.
20489         (PROCESSOR_POWERPC64): New.
20490         (PROMOTE_MODE): Use word_mode.
20491         (RTX_COSTS): Add RS64A and PPC630.
20492         * rs6000.md (scheduling information): Add lmul and ldiv
20493         representing 64-bit integer multiply and divide.  Add rs64a and
20494         PPC630 information.
20495         (ashldi3): Add support for "rldic" instruction.
20496         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
20497
20498 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
20499
20500         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
20501         instead of V8 for sparclite86x in cpu_table.
20502
20503 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20504
20505         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
20506         output_file_directive.
20507
20508 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
20509
20510         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
20511         tree for op1, not the rtl.
20512
20513 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
20514
20515         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
20516         to m88k_va_start, leaving only the register spill.
20517         (m88k_build_va_list): New.
20518         (m88k_va_start): New.
20519         (m88k_va_arg): New.
20520         * m88k.h (BUILD_VA_LIST_TYPE): New.
20521         (EXPAND_BUILTIN_VA_START): New.
20522         (EXPAND_BUILTIN_VA_ARG): New.
20523
20524 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
20525
20526         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
20527         Rename from expand_builtin_saveregs.
20528         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
20529
20530 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
20531
20532         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
20533         for the register spill block.
20534         (i960_build_va_list): New.
20535         (i960_va_start): New.
20536         (i960_va_arg): New.
20537         * i960.h (BUILD_VA_LIST_TYPE): New.
20538         (EXPAND_BUILTIN_VA_START): New.
20539         (EXPAND_BUILTIN_VA_ARG): New.
20540         * i960.md (store_multiple): Use change_address on individul mems.
20541
20542 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
20543
20544         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
20545         an ARRAY_TYPE.
20546         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
20547         (expand_builtin_va_end): Evaluate arg for side effects.
20548         * c-common.c (c_common_nodes_and_builtins): Construct a
20549         va_list_arg_type_node to handle array decomposition to pointer.
20550
20551 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
20552
20553         * except.c (st_dynamic_cleanup): Use force_operand on the
20554         buffer's address.
20555
20556 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
20557
20558         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
20559         * c4x.c (c4x_va_arg): New.
20560
20561 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
20562
20563         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
20564         has manual_pop set.
20565
20566 1999-07-26  Nathan Sidwell  <nathan@acm.org>
20567
20568         * eh-common.h (__eh_matcher): Prototype correctly.
20569
20570 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
20571
20572         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
20573         (TARGET_SINGLE_PIC_BASE): Likewise.
20574         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
20575         definitions.
20576         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
20577         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
20578         (TARGET_OPTIONS): Add -mpic-register=N.
20579         (OUTPUT_INT_ADDR_CONST): New macro.
20580         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
20581         LEGITIMATE_PIC_OPERAND_P): Likewise.
20582         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
20583         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
20584         output_addr_const directly.
20585         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
20586         ARM port.
20587         (thumb_pic_register, thumb_pic_register_string): Declare.
20588
20589         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
20590         from arm.c.
20591         (label_mentioned_p): New function: Imported from arm.c.
20592         (legitimize_pic_address): New function: Imported from arm.c.
20593         (is_pic):New function: Imported from arm.c.
20594         (thumb_finalize_pic):New function: Imported from arm.c.
20595         (add_constant): Cope with PIC constants.
20596         (fixit): Cope with PIC constants.
20597         (output_return): Do not treat the PIC register as live if
20598         TARGET_SINGLE_PIC_BASE is true.
20599         (thumb_function_prologue): Do not treat the PIC register as live if
20600         TARGET_SINGLE_PIC_BASE is true.
20601         (thumb_expand_prologue): Do not treat the PIC register as live if
20602         TARGET_SINGLE_PIC_BASE is true.
20603         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
20604         TARGET_SINGLE_PIC_BASE is true.
20605         (thumb_print_operand): Accept '|'.
20606         (thumb_override_options): Process PIC options.
20607
20608         * config/arm/thumb.md (movsi): Support PIC.
20609         (call_insn): Change "i" constraint to "X".
20610         (call_value_insn): Likewise.
20611         (consttable_4, consttable_8, consttable_end): Set and clear
20612         "making_const_table" as appropriate.
20613         (pic_load_addr, pic_add_dot_plus_four): New insns.
20614
20615         * invoke.texi (Thumb Options): Fix spelling.  Document new
20616         options -msingle-pic-base and -mpic-register=.
20617
20618 1999-07-26  Andrew Haley  <aph@cygnus.com>
20619
20620         * config/m32r/initfini.c (__init): Use a full word immediate for
20621         __fini: this allows it to be placed in any memory region.
20622
20623         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
20624         -mmodel=medium.  This is OK for all memory models.
20625
20626 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
20627
20628         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
20629         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
20630
20631 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
20632
20633         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
20634         defined.
20635
20636         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
20637
20638 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
20639
20640         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
20641         (BUILD_VA_LIST_TYPE): New.
20642         (EXPAND_BUILTIN_VA_START): New.
20643         (EXPAND_BUILTIN_VA_ARG): New.
20644         * i860.c (output_delayed_branch): Disable.
20645         (output_delay_insn): Likewise.
20646         (i860_saveregs): New.
20647         (i860_build_va_list): New.
20648         (i860_va_start): New.
20649         (i860_va_arg): New.
20650         * i860.md: Disable all peepholes using output_delayed_branch.
20651         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
20652
20653 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
20654
20655         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
20656         (BUILD_VA_LIST_TYPE): New.
20657         (EXPAND_BUILTIN_VA_START): New.
20658         (EXPAND_BUILTIN_VA_ARG): New.
20659         * clipper.c (clipper_builtin_saveregs): Only dump registers.
20660         Return the address of the save area.
20661         (clipper_build_va_list): New.
20662         (clipper_va_start): New.
20663         (clipper_va_arg): New.
20664
20665 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
20666
20667         * arc.h (EXPAND_BUILTIN_VA_START): New.
20668         (EXPAND_BUILTIN_VA_ARG): New.
20669         * arc.c (arc_setup_incoming_varargs): Set alias set of
20670         varargs save area.
20671         (arc_va_start): New.
20672         (arc_va_arg): New.
20673
20674 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
20675
20676         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
20677         (BUILD_VA_LIST_TYPE): New.
20678         (EXPAND_BUILTIN_VA_START): New.
20679         (EXPAND_BUILTIN_VA_ARG): New.
20680         * alpha.c (alpha_builtin_saveregs): Delete.
20681         (alpha_build_va_list): New.
20682         (alpha_va_start): New.
20683         (alpha_va_arg): New.
20684
20685 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
20686
20687         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
20688         column zero.
20689         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
20690         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
20691
20692         * gcc.texi: More changes related to list conversion.
20693         * invoke.texi: Likewise.
20694
20695 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
20696
20697         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
20698         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
20699         (expand_builtin_next_arg): Accept ARGLIST not EXP.
20700         (stabilize_va_list): New function.
20701         (std_expand_builtin_va_start): New function.
20702         (expand_builtin_va_start): New function.
20703         (get_varargs_alias_set): New function.
20704         (std_expand_builtin_va_arg): New function.
20705         (expand_builtin_va_arg): New function.
20706         (expand_builtin_va_end): New function.
20707         (expand_builtin_va_copy): New function.
20708         (expand_builtin): Call them.
20709         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
20710         __builtin_{varargs_start,stdarg_start,end,copy}.
20711         (build_va_arg): New function.
20712         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
20713         (build_va_arg): Declare.
20714         * c-decl.c (ptr_type_node, va_list_type_node): New.
20715         * c-parse.gperf (__builtin_va_arg): New.
20716         * c-parse.in (VA_ARG): New token.
20717         (unary_expr): Recognize it.
20718         * expr.c (expand_expr): Expand VA_ARG_EXPR.
20719         * expr.h (std_expand_builtin_va_start): Declare.
20720         (std_expand_builtin_va_arg): Declare.
20721         (expand_builtin_va_arg): Declare.
20722         (get_varargs_alias_set): Declare.
20723         * tree.def (VA_ARG_EXPR): New.
20724         * tree.h (BUILT_IN_VARARGS_START): New.
20725         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
20726         (ptr_type_node, va_list_type_node): Declare.
20727         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
20728         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
20729         * m88k.h, m88k.c: Likewise.
20730         * mn10300.h, mn10300.c: Likewise.
20731         * pa.h, pa.c: Likewise.
20732         * rs6000.h, rs6000.c: Likewise.
20733         * sh.h, sh.c: Likewise.
20734         * sparc.h, sparc.c: Likewise.
20735
20736         * emit-rtl.c (operand_subword): Copy alias set.
20737         (change_address): Likewise.
20738
20739 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
20740
20741         * pa.c (compute_frame_size): Scan all the used callee saved registers,
20742         not just the first one.
20743
20744 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
20745
20746         * config/arm/arm.h (TARGET_SWITCHES): Add
20747         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
20748         (TARGET_OPTIONS): Add -mpic-register=.
20749         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
20750         (arm_pic_register_string): Declare.
20751         (NEED_PLT_GOT): Delete, replace with ...
20752         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
20753         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
20754         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
20755         * config/arm/arm.c (arm_override_options): Add new option
20756         -mpic-register=N.
20757         (arm_pic_register_string): New variable.
20758         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
20759         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
20760         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
20761         (output_return_instruction): Likewise.
20762         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
20763         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
20764         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
20765
20766         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
20767         mention of -msched-prolog.  Document new options -msingle-pic-base
20768         and -mpic-register=.
20769
20770 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
20771
20772         * haifa-sched.c (reemit_notes): Tidy.
20773         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
20774         haifa's routine.
20775
20776 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
20777
20778         * explow.c (trunc_int_for_mode): New function.
20779         (plus_constant_wide): Use it.
20780         * combine.c (simplify_and_const_int): Likewise.
20781         (merge_outer_ops): Likewise.
20782         (simplify_shift_const): Likewise.
20783         * cse.c (simplify_unary_operation): Likewise.
20784         (simplify_binary_operation): Likewise.
20785         * emit-rtl.c (operand_subword): Likewise.
20786         * rtl.h: Declare it.
20787
20788 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20789
20790         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
20791         (use NUM_REGS instead of NUM_INTS).
20792
20793 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20794
20795         * builtins.c: New file.
20796         * expr.c (saveregs_value, apply_args_value):  Delete definition,
20797         moved into builtins.c.
20798         (string_constant): No longer static.
20799         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
20800         apply_args_size, apply_result_size, result_vector,
20801         expand_builtin_apply_args, expand_builtin_apply,
20802         expand_builtin_return): Delete functions, moved into builtins.c.
20803         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
20804         * expr.h (saveregs_value, apply_args_value): Declare variables.
20805         (expand_builtin, string_constant): Declare functions.
20806         * Makefile.in: Update to build builtin.o.
20807
20808 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
20809
20810         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
20811         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
20812         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
20813         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
20814         false.
20815         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
20816         Define to zero.
20817
20818 1999-07-21  Michael Meissner  <meissner@cygnus.com>
20819
20820         * print-rtl.c (print_rtx): Print the names of the virtual
20821         registers.
20822
20823 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
20824
20825         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
20826         introduced in previous delta.
20827
20828 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20829
20830         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
20831         to avoid name clash.
20832
20833 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20834
20835         * c-lex.c (yylex) : Correct the test for overflow when lexing
20836         integer literals.
20837
20838 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
20839
20840         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
20841         (adjust_priority): Always call ADJUST_PRIORITY.
20842         (schedule_insn): Only put insns into the ready at cost 0.
20843         (schedule_block): Remove redundant initial sort.  Give clock_var
20844         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
20845         is not 0.
20846         * tm.texi (MD_SCHED_REORDER): Update docs.
20847
20848         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
20849         * sparc.c (ultra_reorder_called_this_block): Delete.
20850         (ultrasparc_sched_init): Don't set it.
20851         (ultrasparc_sched_reorder): Don't check it.
20852
20853 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
20854
20855         * rs6000.h (struct rs6000_args): Add sysv_gregno.
20856         * rs6000.c (init_cumulative_args): Init sysv_gregno.
20857         (function_arg_boundary): Align DFmode.
20858         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
20859         to get fp reg and stack overflow correct.
20860         (function_arg): Likewise.
20861         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
20862         (setup_incoming_varargs): Restructure for ABI_V4; use
20863         function_arg_advance to skip final named argument.
20864         (expand_builtin_saveregs): Properly unskip the last integer arg
20865         when doing varargs.  Adjust overflow location calculation.
20866
20867         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
20868         explicitly unsigned.
20869         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
20870         (__VA_GP_REGSAVE): Similarly.
20871         (__va_longlong_p): Delete.
20872         (__va_arg_type_violation): New declaration.
20873         (va_arg): Restructure.  Flag promotion errors.  Align double.
20874         TFmode passed by reference.
20875
20876         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
20877         in the HOST_BITS_PER_WIDE_INT > 32 case.
20878
20879 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
20880
20881         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
20882
20883 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
20884
20885         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
20886         * toplev.c (documented_lang_options): Add -fpreprocessed.
20887         * cpplib.h (struct cpp_buffer): Add preprocessed.
20888         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
20889         (cpp_start_read): Don't expand macros or emit an initial #line
20890         directive if -fpreprocessed.
20891
20892 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
20893
20894         * cpplib.h (struct cpp_buffer): Added manual_pop for
20895         better C++ tokenization.
20896         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
20897         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
20898         * c-common.c (cpp_token): Make non-static.
20899
20900 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20901
20902         * c-common.h: New file.
20903         * c-common.c (permanent_obstack): Delete unused declaration.
20904         (c_global_trees): New array.
20905         (c_common_nodes_and_builtins): New function; split off common code
20906         from init_decl_processing in both c-decl.c and cp/decl.c.
20907         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
20908         c_global_trees and accessor macros defined in c-common.h.
20909         Include c-common.h.
20910         * c-decl.c: Delete definitions for tree nodes that were replaced by
20911         c_global_trees.
20912         (init_decl_processing): Build void_list_node.
20913         Call c_common_nodes_and_builtins; delete code to generate the common
20914         builtins here.
20915         * objc/objc-act.c (build_module_descriptor): Rename variable
20916         void_list_node to avoid clash with c-common.h.
20917
20918         * Makefile.in: Update dependencies.
20919         * objc/Make-lang.in: Likewise.
20920
20921 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
20922
20923         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
20924         (UNIQUE_SECTION_P): Likewise.
20925         (UNIQUE_SECTION): Likewise.
20926
20927 1999-07-19  Linas Vepstas  <linas@linas.org>
20928
20929         * config/i370/README: New file.
20930         * config/i370/linux.h: New file.
20931         * config/i370/mvs.h: New file.
20932         * config/i370/oe.h: New file.
20933         * config/i370/t-linux: New file.
20934         * config/i370/t-mvs: New file.
20935         * config/i370/t-oe: New file.
20936         * config/i370/x-oe: New file.
20937         * config/i370/xm-linux.h: New file.
20938         * config/i370/xm-mvs.h: New file.
20939         * config/i370/xm-oe.h: New file.
20940
20941         * i370.c (label_node_t): Add first_ref_page, label_addr,
20942         label_first_ref, label_last_ref members.
20943         (mvs_need_base_reload): Renamed from mvs_label_emitted.
20944         (MAX_MVS_LABEL_SIZE): Define.
20945         (MAX_LONG_LABEL_SIZE): Define.
20946         (alias_node_t, alias_anchor, alias_number): New.
20947         (mvs_function_table): Reorder for EBCDIC.
20948         (ascebc, ebcasc): Unconditionally define.
20949         (i370_branch_dest, i370_branch_length): New functions.
20950         (i370_short_branch, i370_label_scan): New functions.
20951         (mvs_get_label): Renamed from mvs_add_label.  Search for
20952         an existing label before creating a new one.
20953         (mvs_add_label): New function.
20954         (mvs_get_label_page): New function.
20955         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
20956         over the entire list.
20957         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
20958         (mvs_check_page) [TARGET_ELF_ABI]: New function.
20959         (mvs_add_alias, mvs_need_alias): New functions.
20960         (mvs_get_alias, mvs_check_alias): New functions.
20961         (handle_pragma): New function.
20962         (mvs_function_check): New function.
20963         (unsigned_jump_follows_p): Search harder.
20964         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
20965         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
20966         * i370.h (TARGET_VERSION): Delete.
20967         (CPP_SPEC, CPP_PREDEFINES): Delete.
20968         (mvs_label_emitted): Delete.
20969         (TARGET_EBCDIC): Delete.
20970         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
20971         (HANDLE_PRAGMA): Define.
20972         (HARD_REGNO_NREGS): Handle complex modes.
20973         (HARD_REGNO_MODE_OK): Likewise.
20974         (CLASS_MAX_NREGS): Likewise.
20975         (RET_REG): Likewise.
20976         (EXTRA_CONSTRAINT): Define.
20977         (RETURN_IN_MEMORY): True for DImode.
20978         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
20979         (FUNCTION_PROFILER): Delete.
20980         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
20981         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
20982         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
20983         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
20984         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
20985         (ASM_FILE_START): Add "RMODE ANY".
20986         (ASM_OUTPUT_EXTERNAL): Check for aliases.
20987         (ASM_GLOBALIZE_LABEL): Likewise.
20988         (ASM_OUTPUT_LABELREF): Likewise.
20989         (ASM_OUTPUT_COMMON): Likewise.
20990         (PRINT_OPERAND): Handle 'K', 'W', default.
20991         (PRINT_OPERAND_ADDRESS): New.
20992         (Lots of defines): Add support for TARGET_ELF_ABI.
20993         * i370.md (attr length): New.  Define for all patterns.
20994         (*): Lots of tweeks to assembly output and constraints.
20995
20996 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
20997
20998         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
20999         Disable patterns performing SImode comparisons with SImode values
21000         if TARGET_POWERPC64 and instruction does not sign-extend or does
21001         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
21002         differ for signed quantities.
21003         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
21004         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
21005         (decrement_and_branch_on_count): Add 64-bit variant.
21006
21007 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21008
21009         * final.c (output_asm_insn): When searching for the matching string
21010         for a given dialect, don't run past the end of the list of
21011         alternatives if there are fewer alternatives in the template than
21012         dialects.
21013
21014 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
21015
21016         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
21017         Removed paragraph about compression of files and size limitation,
21018         duplicated in the FAQ.  Use gcc-patches for posting patches.
21019         * gcc.c (main): Updated URL with bug reporting instructions to
21020         gcc.gnu.org.  Removed e-mail address.
21021         * system.h (abort): Likewise.
21022
21023 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21024
21025         * Makefile.in (stmp-multilib-sub): Make the files extracted
21026         from $(LIBGCC1) writable.
21027
21028 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
21029
21030         * config/arm/aout.h: Reformat for improved readability.
21031
21032         * config/arm/arm.h: Reformat for improved readability.
21033         Replace uses of fprintf with asm_fprintf where appropriate.
21034         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
21035         function declaration assembler actions.
21036         (NUM_INTS): New macro: Convert from bytes to words.
21037         (NUM_REGS): New macro: Compute number of registers required to
21038         hold a quanitity of tyep MODE.
21039         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
21040         types.
21041         (NUM_ARG_REGS): New macro: The number of argument registers
21042         available.
21043         (ARG_REGISTER): New macro: Compute the register number of the Nth
21044         argument register.
21045         (LAST_ARG_REGNUM): New macro: The number of the last argument
21046         register.
21047         (SP_REGNUM): New macro: Register number of the stack pointer.
21048         (FP_REGNUM): New macro: Register number of the frame pointer.
21049         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
21050         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
21051         CUMULATIVE_ARGS so that it counts registers not bytes.
21052
21053         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
21054         TARGET_INTERWORK.
21055         Replace uses of fprintf with asm_fprintf where appropriate.
21056         (output_ascii_pseudo_op): Replace with version from thumb.c
21057
21058         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
21059
21060         * config/arm/elf.h (CPP_PREDEFINES): Replace with
21061         SUBTARGET_CPP_SPEC.
21062         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
21063         (ASM_FILE_START): Emit ASM_APP_OFF.
21064
21065 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
21066
21067         * pa.c (compute_frame_size): Round frame according to
21068         STACK_BOUNDARY rather than a hardwired value.
21069
21070         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
21071
21072         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
21073         of "1".
21074         * configure: Rebuilt.
21075
21076         * configure.in (hppa*-*-linux*): New configuration.
21077         * configure: Rebuilt.
21078         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
21079         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
21080         * pa/pa-linux.h: New file.
21081         * pa/t-linux: New file.
21082         * pa/xm-linux.h: New file.
21083
21084         * pa.c (hppa_legitimize_address): Change references from SImode to
21085         either Pmode or word_mode as appropriate.
21086         (emit_move_sequence, store_reg, load_reg): Likewise.
21087         (set_reg_plus_d, hppa_expand_prologue): Likewise.
21088         (output_mul_insn): Likewise.
21089         * pa.h (PROMOTE_MODE): Likewise.
21090         (INITIALZE_TRAMPOLINE): Likewise.
21091         (Pmode): Define to word_mode.
21092
21093         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
21094         value of 4.  Allocate 8 bytes for each FP register save.
21095         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
21096         value of 4.
21097         (hppa_expand_prologue): Likewise.
21098         * pa.h (PROMOTE_MODE): Likewise.
21099         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
21100         (FUNCTION_ARG_BOUNDARY): Likewise.
21101
21102         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
21103
21104         * pa.c (out_of_line_prologue_epilogue): Delete.
21105         (override_options): Remove -mspace related code.
21106         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
21107         (compute_frame_size): Only allocate space for register that
21108         actually need to be saved.
21109         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
21110         (TARGET_SWITCHES): Remove -mspace, -mno-space
21111         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
21112         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
21113         * pa/ee.asm, pa/ee_fp.asm: Delete.
21114
21115         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
21116
21117         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
21118         directive in column zero.
21119
21120 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
21121
21122         * m68k.c (output_function_prologue): Fix computation of save mask
21123         when generating PIC code.
21124
21125 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
21126
21127         * tree.c (build_type_attribute_variant): Move current_obstack restore
21128         after build_qualified_type call.
21129
21130 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
21131
21132         * configure.in: Use t-iris6, even with GNU LD.
21133         * config/mips/iris6gld.h: Fix typo in linker spec.
21134         * config/mips/t-iris6gld: Remove.
21135
21136 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
21137
21138         * rs6000.md (insv, extzv): Remove SImode dependence in named
21139         patterns.  Explicitly generate DImode RTL if PowerPC64 and
21140         operand is DImode.
21141         (insvdi): Reverse start and size in instruction template.
21142
21143 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
21144
21145         * invoke.texi: Typo fixes.
21146
21147 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
21148
21149         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
21150         handle at this time instead of silently generating incorrect code.
21151         (gen_imagpart): Likewise.
21152
21153         * reload.c (find_reloads): Emit a USE for a pseudo register without
21154         a hard register if we could not create an optional reload for the
21155         pseudo.
21156
21157 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21158
21159         * c-typeck.c (output_init_element, process_init_element):
21160         When advancing constructor_unfilled_fields for a RECORD_TYPE,
21161         check for nameless bit fields.
21162
21163 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
21164
21165         * regclass.c (scan_one_insn): Notice subregs that change the
21166         size of their operand.
21167         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
21168
21169 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
21170
21171         * configure.in (alpha*-*-*): Include alpha/t-ieee.
21172         * configure: Rebuilt.
21173         * alpha/t-ieee: New file.
21174
21175 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
21176
21177         * rs6000.c (find_addr_reg): Do not select r0 as an address
21178         register.
21179
21180 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
21181
21182         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
21183
21184 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
21185
21186         * rs6000.md (movsf): Do not force easy FP constants into memory.
21187
21188         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
21189         immed_double_const to ensure they are properly truncated then
21190         sign extended.
21191
21192 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
21193
21194         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
21195         always unless NO_DEBUG is used.  Compile this code
21196         unconditionally.
21197         (replace_symbols_in_block): Compile it unconditionally.
21198
21199 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
21200
21201         * configure.in (i?86-*-elf*): New target.
21202         * configure: Rebuilt.
21203         * i386/i386elf.h, i386/t-i386elf: New files.
21204
21205 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
21206
21207         * toplev.c (main): Don't complain about saying -gdwarf.
21208         (rest_of_compilation): Remove redundant code.
21209
21210 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
21211
21212         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
21213
21214 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
21215
21216         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
21217         "Li960R:", to avoid name clash.
21218
21219 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21220
21221         * loop.c (check_dbra_loop): When reversing a loop, delete all
21222         REG_EQUAL notes referencing the reversed biv except those which are
21223         for a giv based on it.
21224
21225 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
21226
21227         * version.c: Drop "gcc-" prefix from version #.
21228
21229 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
21230
21231         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
21232         the label if we're being verbose.
21233
21234 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
21235
21236         * m68k.c (output_function_prologue): Add pic register to mask
21237         if live and flag_pic.
21238         (output_function_epilogue): Likewise.
21239
21240 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
21241
21242         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
21243         directives in column zero.
21244
21245         * pa/elf.h (ASM_FILE_START): Define.
21246         * pa/som.h (ASM_FILE_START): Include .level directives.
21247         * pa/hpux10.h (ASM_FILE_START): Delete.
21248         * pa/hpux11.h (ASM_FILE_START): Delete.
21249
21250         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
21251
21252 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21253
21254         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
21255         when reload_out equals reload_in.
21256
21257 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
21258
21259         * invoke.texi (Spec Files): New node: Describe the contents of
21260         spec files.
21261
21262 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
21263
21264         * invoke.texi (DEC Alpha Options): Put @end table at
21265         beginning of line, to avoid confusing texi2html.
21266
21267 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
21268
21269         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
21270         introduced in previous delta.
21271
21272 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
21273
21274         * reload1.c (gen_reload): When synthesizing a 3 operand add
21275         sequence, improve test for when to reload OP1 into the reload
21276         register instead of OP0.
21277
21278 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
21279
21280         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
21281
21282 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
21283
21284         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
21285         string literal.
21286
21287 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
21288
21289         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
21290         (va_dcl): Use __builtin_va_alist_t.
21291
21292 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
21293
21294         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
21295         on the permanent_obstack.
21296         * dwarfout.c (output_type): Likewise.
21297
21298 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21299
21300         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
21301         Merged from c-typeck.c and cp/typeck.c.
21302         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
21303         Merged into c-common.
21304
21305 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
21306
21307         * c-lex.c (errorcount): Declare it.
21308         (finish_parse): Update errorcount when using CPPLIB.
21309
21310 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
21311
21312         * fixinc/inclhack.def(end_else_label): Double the backslash so
21313         sed gets a chance to see it.
21314         * fixinc/inclhack.sh: regen
21315         * fixinc/fixincl.x: regen
21316
21317 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
21318
21319         Add framework to support armv5 architecture when it becomes
21320         available:
21321
21322         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
21323         (arm_arch5): New variable.
21324         (all_architectures): Add armv5 line.
21325         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
21326         -march=armv5 is specified on the command line.
21327         (arm_arch5): Export this variable.
21328         * invoke.texi: Document new string accepted by -march= switch for
21329         ARM ports.
21330
21331         * config/arm/arm.h: Replace use of constant 12 as a register
21332         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
21333         * config/arm/arm.c: Replace use of constant 12 as a register
21334         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
21335
21336         * config/arm/elf.h: Tidy up.
21337         * config/arm/coff.h: Tidy up.
21338
21339 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
21340
21341         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
21342         * gcc/config/mips/t-iris6gld: New file.
21343         * gcc/config/mips/iris6gld.h: Likewise.
21344
21345 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21346
21347         * c-decl.c (widest_integer_literal_type_node,
21348         widest_unsigned_literal_type) : New.
21349         (init_decl_processing): Handle/use the two new types.
21350         * c-common.c (type_for_size,type_for_mode) : Same.
21351         * c-lex.c (yylex) : Same.
21352         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
21353         Same.
21354         * c-tree.h (widest_integer_literal_type_node,
21355         widest_unsigned_literal_type) : New.
21356
21357 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
21358
21359         * dwarfout.c (field_byte_offset): Correctly compute the object's
21360         byte offset for the first bit of a field which crosses an alignment
21361         boundary on a !BYTES_BIG_ENDIAN target.
21362
21363 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
21364
21365         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
21366         ntohs.
21367
21368 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
21369                           Jeff Law <law@cygnus.com>
21370
21371         * ginclude/varargs.h (va_dcl): Use word_mode for type of
21372         __builtin_va_list.
21373
21374         * except.c: Include intl.h.
21375         (expand_eh_return): Set current_function_cannot_inline.
21376         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
21377         * function.h (struct function): Add eh_return_stub_label.
21378         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
21379         * Makefile.in (except.o): Depend on intl.h.
21380
21381 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
21382
21383         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
21384         same as offsettable in cases 1 and 2.
21385
21386 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
21387
21388         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
21389         (extlh, extwh): Likewise.
21390
21391 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21392
21393         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
21394
21395 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
21396
21397         * configure.in: Add arm-pe and thumb-pe targets.
21398         * configure: Regenerate.
21399
21400         * thumb.c (arm_naked_function_p): New function: Determines if
21401         a function is naked (has no gcc generated prologue/epilogue).
21402         (is_called_in_ARM_mode): Return true if the func has the
21403         interfacearm attribute.
21404         (output_return): Do not generate a return for naked functions.
21405         (thumb_function_prologue): Do not generate a prologue for
21406         naked functions.
21407         (thumb_expand_prologue): Do not generate a prologue for naked
21408         functions.
21409         (thumb_expand_epilogue): Do not generate an epilogue for naked
21410         functions.
21411         (arm_valid_machine_decl_attribute): New function, copied from
21412         arm.c:  Permit naked and interfacearm attributes.
21413
21414         * config/arm/pe.c: New file: Support code for arm-pe target.
21415         * config/arm/pe.h: New file: Header file for arm-pe target.
21416         * config/arm/tpe.h: New file: Header file for thumb-pe target.
21417         * config/arm/t-thumb-pe: New file: Makefile fragment for
21418         thumb-pe target.
21419
21420 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
21421
21422         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
21423         -fPIC or -fpic is specified.
21424
21425 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
21426
21427         * expr.c (emit_block_move): Use copy_to_mode_reg for
21428         !TARGET_MEM_FUNCTIONS case too.
21429
21430         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
21431         appropriate.
21432         * configure: Rebuilt.
21433         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
21434         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
21435         definitions made redundant by dbxelf.h inclusion.  Delete
21436         lots of definitions related to assembly output that are
21437         specific to the SOM object format.
21438         * pa.c (output_function_prologue): Do not emit the function's
21439         name for OBJ_ELF.
21440         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
21441         * pa-pro.h: Deleted.
21442         * som.h: New file with SOM specific definitions.
21443         * elf.h: New file with ELF specific definitions.
21444
21445         * elfos.h (const_section): Output a tab before assembler directives.
21446         (ctors_section, dtors_section): Likewise.
21447         (ASM_OUTPUT_SECTION_NAME): Likewise.
21448
21449         * pa/pa1.h: Delete unused file.
21450
21451 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
21452
21453         * configure.in (hppa*-hp-hpux11*): New configuration.
21454         * configure: Rebuilt.
21455         * pa/pa-hpux11.h: New file.
21456         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
21457         command line.
21458
21459         * mips.md (leasi, leadi): New patterns.
21460
21461         * expr.c (emit_block_move): Properly handle case where one of the
21462         block move arguments has a queued increment or decrement.
21463         (clear_storage): Similarly.  Fix formatting goof.
21464
21465 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
21466
21467         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
21468         semicolon from the BSD VA_LIST replacement expression.
21469
21470         * fixinc/inclhack.sh: regen
21471         * fixinc/fixincl.x: regen
21472
21473         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
21474         now use the fixincl program.
21475
21476 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
21477
21478         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
21479         case.  Also make the PIC register call_used.
21480
21481         * m68k.h (FINALIZE_PIC): Delete.
21482         * m68k.c (finalize_pic): Delete.
21483
21484 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
21485
21486         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
21487         to memory.
21488
21489 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
21490
21491         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
21492
21493 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
21494
21495         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
21496
21497 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
21498
21499         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
21500
21501 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
21502
21503         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
21504
21505 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
21506
21507         * rs6000.c (output_toc): Always use hex values for floating-point
21508         constants.  Store single-precision values in upper-half of TOC
21509         entry in 64-bit mode.
21510         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
21511         to final constraints.
21512         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
21513         (fctiwz): Improve accuracy of RTL for pattern.
21514
21515 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21516
21517         * expr.c (expand_expr): Allow RTL_EXPR's through the
21518         MAX_INTEGER_COMPUTATION_MODE checks.
21519
21520 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
21521
21522         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
21523         such that MASK_SUPPORT_ARCH is not negative.
21524
21525 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
21526
21527         * loop.c (verify_dominator): Properly handle ADDR_VEC and
21528         ADDR_DIFF_VEC insns that appear inside loops.
21529
21530 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
21531                           Jeff Law <law@cygnus.com>
21532
21533         * rs6000.md (movdf_hardfloat32): Revert previous patch.
21534         Handle LO_SUM the same as offsettable in cases 1 and 2.
21535         * rs6000.c (find_addr_reg): Revert previous patch.
21536
21537 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
21538
21539         * system.h (strstr): New external function declaration.
21540         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
21541         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
21542         * config.in, configure: Rebuilt.
21543
21544 1999-06-24  Tom Tromey  <tromey@cygnus.com>
21545
21546         * gcc.c (main): Read user-specified specs files after computing
21547         additional startfile_prefixes.
21548
21549 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
21550
21551         Revert these two patches:
21552
21553         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21554         * loop.c (strength_reduce): When doing biv->giv conversion, update
21555         reg note of NEXT->insn.
21556
21557         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21558         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
21559         reg_biv_class.
21560         (recombine_givs): Set ix field after sorting.
21561
21562 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21563
21564         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
21565         for the parts of an UNSPEC / UNSPEC_VOLATILE.
21566
21567 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
21568
21569         *fixinc/inclhack.def:  Add fix development commentary
21570         (read_ret_type): reactivate and add selection clause
21571         (zzz_*): tweak output file name to match what is used in hackshell.tpl
21572         *fixinc/{fixincl.x|inclhack.sh}: regen
21573
21574 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
21575
21576         * expr.c (expand_expr): STRIP_NOPS before checking against
21577         MAX_INTEGER_COMPUTATION_MODE
21578         (check_max_integer_computation_mode): Likewise.
21579
21580 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
21581
21582         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
21583
21584 1999-06-22  Jim Wilson  <wilson@cygnus.com>
21585
21586         * expr.c (store_expr): When target is a promoted subreg, return a
21587         promoted subreg as a result.
21588
21589 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
21590
21591         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
21592         coding standards.
21593         (dwarf2out_define): Mark unused parameters appropriately.
21594         (gen_unspecified_parameters_die): Ditto.
21595         (gen_subprogram_die): Fix signed/unsigned warnings.
21596         (gen_variable_die): Ditto.
21597
21598 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
21599
21600         * fixinc/inclhack.def(end_else_label): combined else_label
21601         and endif_label and fixed the sed expression.
21602         *fixinc/{fixincl.x|inclhack.sh}: regen
21603
21604 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
21605
21606         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
21607         'x' when handling non-offsettable addresses
21608
21609 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
21610
21611         * final.c (shorten_branches): Don't try to split an insn that has
21612         been deleted.
21613
21614 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
21615
21616         * config/mips/mips.c (symbolic_expression_p): New function.
21617         (mips_select_rtx_section): Put symbolic expressions in the
21618         data section, not the read-only data section.
21619
21620 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
21621
21622         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
21623
21624 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
21625
21626         * collect2.c (main): Log frame table count.
21627         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
21628         (scan_prog_file) [COFF]: Handle frame tables.
21629
21630         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
21631         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
21632         * alpha/elf.h: Undef them again.
21633         * alpha/vms.h: Remove their definitions.
21634
21635 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21636
21637         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
21638         remove the clobber of r0 and change the REG_UNUSED note to
21639         REG_INC.
21640
21641 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
21642
21643         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
21644         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
21645         fits in HOST_WIDE_INT and one uses union to access a long constant
21646         as double.
21647
21648 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
21649
21650         * sparc.c (sparc_override_options): Don't allow profiling for
21651         code models other than medlow.
21652         (sparc_function_profiler): New function from old FUNCTION_PROFILER
21653         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
21654         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
21655         (sparc_block_profiler): Likewise.
21656         (sparc_function_block_profiler_exit): Likewise.
21657         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
21658         (FUNCTION_BLOCK_PROFILER): Likewise.
21659         (BLOCK_PROFILER): Likewise.
21660         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
21661         (MCOUNT_FUNCTION): New.
21662         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
21663         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
21664         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
21665         (MCOUNT_FUNCTION): New.
21666         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
21667         (BLOCK_PROFILER): Delete.
21668         (MCOUNT_FUNCTION): New.
21669
21670 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
21671
21672         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
21673
21674 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
21675
21676         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21677         Add the macros.
21678
21679         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21680         Ditto.
21681
21682         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21683         Ditto.
21684
21685         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
21686         Ditto.
21687
21688 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
21689
21690         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
21691         types.
21692
21693 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
21694
21695         * i386/djgpp.h (LIB_SPEC): New.
21696         (STARTFILE_SPEC): New.
21697
21698         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
21699
21700 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
21701
21702         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
21703         compiler flags.
21704
21705         * system.h (WSTOPSIG): New macro.
21706
21707 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21708
21709         * c-pragma.c (push_alignment): Don't ignore alignments greater than
21710         4 bytes.
21711         (insert_pack_attributes): Take into account member natural
21712         alignment.
21713
21714         * i386/winnt.c (exports_head): New static variable.
21715         (i386_pe_record_exported_symbol): New function.
21716         (i386_pe_asm_file_end): Use.
21717         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
21718         symbols to be emitted at end of assembly.
21719         (ASM_DECLARE_OBJECT_NAME): Likewise.
21720         (ASM_DECLARE_FUNCTION_NAME): Likewise.
21721
21722         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
21723         -iwithprefix.
21724
21725 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
21726
21727         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
21728         in last change.
21729
21730 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
21731
21732         * haifa-sched.c (sched_analyze_1): Use free_list instead of
21733         zapping reg_last_uses directly.
21734         (sched_analyze_2, sched_analyze_insn): Likewise.
21735         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
21736
21737 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
21738
21739         * rs6000.md (movdf_hardfloat32): Use worst case insn length
21740         attributes for cases 1 and 2.
21741
21742 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
21743
21744         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
21745         instead of set.
21746
21747 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
21748
21749         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
21750
21751 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
21752
21753         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
21754         PIC_OFFSET_TABLE_REGNUM for general alloaction.
21755         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
21756         must be stacked if it is used for PIC accesses.
21757         * arm.c (use_return_insn): Handle PIC register specially.
21758         (output_return_instruction): Likewise.
21759         (output_func_{prologue,epilogue}): Likewise.
21760         (output_expand_prologue): Likewise.
21761
21762         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
21763         (*strsi_predec): Renamed from *strqi_predec.
21764         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
21765         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
21766
21767         * arm.c (arm_override_options): Remove warning about PIC code
21768         not being supported.
21769
21770 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
21771
21772         * rs6000.c (find_addr_reg): New function.
21773         * rs6000.h (find_addr_reg): Declare.
21774         (offsettable_addr_operand): Delete.
21775         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
21776         from and stores to GPRs.
21777
21778 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
21779
21780         * alpha.c (alpha_expand_block_move): Use get_insns rather than
21781         gen_sequence as argument to emit_no_conflict_block.
21782
21783 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
21784
21785         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
21786         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
21787         *fixinc/fixincl.x: regen
21788         *fixinc/inclhack.sh: regen
21789
21790 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
21791
21792         * added support for -mpcrel (PC relative addressing for m68k)
21793         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
21794         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
21795         * m68k.c (print_operand_address): Handle 32-bit PIC case.
21796         (comments for general_src_operand): Add some explanation
21797         about EXTRA_CONSTRAINTS.
21798         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
21799         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
21800         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
21801         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
21802         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
21803         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
21804         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
21805         if not already set.
21806         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
21807         * m68k.h (TARGET_PCREL): New target flag.
21808         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
21809         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
21810         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
21811         contains a SYMBOL_REF.  Relax this constraint during reload, since
21812         we want to use the predicates, not reload's built-in concept of a
21813         valid memory address, to control what insns need reloading.
21814         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
21815         operands (essentially 'g', 'm', and 's' under normal circumstances).
21816         * m68k.c (print_operand): Cause printing of pc-relative addresses
21817         to include pc register.
21818         (print_operand_address): Ditto.
21819         (general_src_operand): Accept operands that are not only
21820         general_operands, but are also valid when used as a pc-relative
21821         source.
21822         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
21823         (memory_src_operand): Similar, for memory_operands.
21824         (pcrel_address): New predicate to accept the special case of a
21825         pc-relative address.
21826         * m68k.md (many patterns): Rewrite common SImode, HImode, and
21827         QImode insns to accept *_src_operand instead of *_operand where
21828         pc-relative operands can fit.  For example, a pc-relative operand
21829         can be used as a memory source operand for addsi3, but not as a
21830         memory destination.
21831         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
21832
21833 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
21834
21835         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
21836         .thumb_set pseudo op to mark aliases of thumb functions.
21837
21838 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
21839
21840         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
21841         preference to ASM_OUTPUT_DEF, if it is defined.
21842
21843         * tm.texi: Document new, optional target macro
21844         ASM_OUTPUT_DEF_FROM_DECLS.
21845
21846 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
21847
21848         * fixincludes: ISCNTL patch
21849         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
21850         (dgux_int_varargs): new for DG/UX
21851         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
21852
21853 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
21854
21855         * invoke.texi (ia32 options): Fix typo.
21856
21857 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21858
21859         * loop.c (strength_reduce): When doing biv->giv conversion, update
21860         reg note of NEXT->insn.
21861
21862 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
21863
21864         * loop.c (move_movables): Note issues with replacing REGs with
21865         SUBREGs.
21866         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
21867
21868 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
21869
21870         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
21871
21872         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
21873         the reference to `mcount' was not correct for the ELF on FreeBSD.
21874
21875 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21876
21877         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
21878         reg_biv_class.
21879
21880         (recombine_givs): Set ix field after sorting.
21881
21882 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
21883
21884         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
21885         to safe to extract a subword out of a REG.
21886
21887 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21888
21889         * sh.md (mulsi3): Don't add a no-op move at the end.
21890
21891 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21892
21893         * cse.c (cse_insn): Don't put hard register source into tables for
21894         the last insn of a libcall.
21895
21896 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21897
21898         * loop.c (strength_reduce): Insert sets of derived givs at every
21899         biv increment, even if it's the only one.
21900
21901 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
21902
21903         * dwarfout.c (add_incomplete_type): New fn.
21904         (output_type): Call it.
21905         (retry_incomplete_types): New fn.
21906         (dwarfout_finish): Call it.
21907
21908         From Eric Raskin <ehr@listworks.com>:
21909         (output_type): Output types for bases.
21910
21911 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
21912
21913         * mips.c (mips_output_conditional_branch): Add `break'
21914         between `default' label and `close braces'.
21915
21916 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
21917
21918         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
21919         specifications and make it realistic.
21920         (LIB_SPEC): Likewise.
21921
21922 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
21923
21924         * config/mips/mips.c (mips_secondary_reload_class): Check for
21925         (PLUS (SP) (REG)) and return appropriate register class.
21926         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
21927         Handle (PLUS (SP) (REG)).
21928         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
21929         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
21930         of emit_insn for tablejump.
21931
21932 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
21933
21934         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
21935         asm_fprintf format string by itself.
21936         (output_function_profiler): Likewise.
21937
21938 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
21939
21940         * combine.c (simplify_logical, case AND): Only call
21941         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
21942         or the constant is positive.
21943
21944 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
21945
21946         * configure.in: Fix typo in rs6000-ibm-aix4 case.
21947         * configure: Regenerate.
21948
21949 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
21950
21951         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
21952         require a sub-version #.
21953         * configure: Rebuilt.
21954
21955 1999-06-14  Robert Lipe  (robertlipe@usa.net)
21956
21957         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
21958
21959 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
21960
21961         * c-typeck.c (process_init_element): Detect excess elements in
21962         char array initializer.
21963
21964 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
21965
21966         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
21967
21968 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
21969
21970         * invoke.texi (Option Summary): Add -fpermissive flag.
21971
21972 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
21973
21974         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
21975         that require PIC code sequences.
21976
21977 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
21978
21979         * configure.in: Add new target: thumb-elf.
21980         * configure: Regenerate.
21981         * config/arm/t-thumb-elf: New file: Makefile fragment for
21982         thumb-elf build.
21983         * config/arm/telf.h: New file: Header file for thumb-elf
21984         build.
21985
21986 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
21987
21988         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
21989         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
21990         initializers is some circumstances.
21991
21992         * fixinc/inclhack.def (endif_label): Add additional selector for
21993         more bogus stuff after #endif statements.
21994         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
21995
21996 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21997
21998         * i386/cygwin.h (SET_ASM_OP): Define.
21999
22000 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22001
22002         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
22003
22004 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22005
22006         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
22007         latter.
22008
22009         * sh.md (ic_invalidate_line_i): Remove second alternative.
22010
22011 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22012
22013         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
22014         test for the presence of valid prototypes.  Delete bypass expr.
22015         (ioctl_fix_ctrl): Correct the selection expression.
22016         (no_double_slash): Correct quoting rules
22017         *fixinc/fixincl.x: regen
22018         *fixinc/inclhack.sh: regen
22019
22020 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
22021
22022         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
22023
22024 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22025
22026         * rs6000.md (movsi_got_internal_mem): Delete.
22027         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
22028         (GOT_TOC_REGNUM): Delete.
22029         (PIC_OFFSET_TABLE_REGNUM): Define.
22030         (FINALIZE_PIC): Disable.
22031         * rs6000.c (rs6000_got_register): New code for fixed pic register.
22032         (rs6000_replace_regno): Delete.
22033         (rs6000_finalize_pic): Likewise.
22034         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
22035
22036 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22037
22038         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
22039         is a note; use <= for the compare; advance P while it is
22040         a NOTE.
22041
22042 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
22043
22044         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
22045         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
22046
22047         * varasm.c (remove_from_pending_weak_list): Verify t->name
22048         is non-NULL before passing it to strcmp.
22049
22050 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22051
22052         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
22053         the typed arguments are not part of a comment
22054         (ioctl_fix_ctrl): Added a purpose comment
22055         *fixinc/fixincl.x: regenerate
22056         *fixinc/inclhack.sh: regenerate
22057
22058 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22059
22060         * invoke.texi: Add C4x invocation docs.
22061
22062 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22063
22064         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
22065         Define new macros.
22066         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
22067         TARGET_EXPOSE_LDP.
22068         (c4x_legitimize_reload_address): New function.
22069         * config/c4x/c4x.md: Update docs.
22070
22071 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
22072
22073         * fixincludes: Avoid removing '.'.
22074         * fixinc/fixinc.svr4: Likewise.
22075         * fixinc/fixinc.winnt: Likewise.
22076         * fixinc/inclhack.tpl: Likewise.
22077         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
22078
22079 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22080
22081         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
22082         pattern.
22083         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
22084
22085 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22086
22087         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
22088         correctly.
22089
22090 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
22091
22092         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
22093         * configure: Regenerate.
22094
22095 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
22096
22097         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
22098         values.
22099
22100 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
22101
22102         * fixinc/inclhack.def (avoid_bool): Also catch
22103         "typedef [unsigned] int bool".
22104         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
22105
22106         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
22107         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
22108         * configure: Rebuilt.
22109
22110 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
22111
22112         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
22113         such that we can override its definitions if necessary.
22114         (CPP_SPEC): New define.  Support processor specific predefines via
22115         %(cpp_cpu).
22116         (CC1_SPEC): New define.  Support processor specific compiler
22117         options via %(cc1_cpu).
22118         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
22119         -static.
22120
22121 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22122
22123         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
22124         between sed's -e flag, and the open-quote following it.
22125         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
22126
22127 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
22128                           Jeffrey A Law  (law@cygnus.com)
22129
22130         * varasm.c (assemble_start_function): Remove the function
22131         from the pending weak decls list when we define a function.
22132         (assemble_variable): Similarly for variables.
22133         (weak_finish): Ignore items on the list with a NULL name.
22134         (remove_from_ending_weak_list); New function to "remove" an item
22135         from the pending weak declarations list.
22136
22137 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
22138
22139         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
22140
22141 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
22142
22143         * c-lex.c (GETC): Redefine to call getch.
22144         (UNGETC): Redefine to call put_back.
22145         (putback_buffer): New structure type.
22146         (putback): New static structure.
22147         (getch): New function.
22148         (put_back): New function.
22149         (yylex): Replace unused bytes from bad multibyte character.
22150
22151 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
22152
22153         * cpplib.c (do_define): Cast `alloca' return value.
22154         (do_include, do_undef, do_pragma): Likewise.
22155         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
22156         values.
22157         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
22158         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
22159
22160 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
22161
22162         * sparc.md (abstf2): This should be an expand.
22163         (split after abstf2_notv9): Fix mode.
22164         (abstf2_hq_v9): New pattern.
22165         (abstf2_v9): Only use when no hard quad.
22166         (absdf2_v9): Fix if target is not the same as source.
22167         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
22168         Add correct output constraints.
22169
22170 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
22171
22172         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
22173         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
22174
22175 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
22176
22177         * mips.h (mips_output_conditional_branch): New function.
22178         (mips_adjust_insn_length): Likewise.
22179         (ASSEMBLER_SCRATCH_REGNUM): New macro.
22180         (ADJUST_INSN_LENGTH): Likewise.
22181         * mips.c (print_operand): Add `F' and `W' for floating-point
22182         comparison opcodes.
22183         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
22184         are now in bytes.
22185         (mips_adjust_insn_length): New function.
22186         (mips_output_conditional_branch): New function.
22187         * mips.md (length): Adjust attribute definition to handle
22188         conditional branches.  Change lengths to bytes, rather than
22189         instructions throughout.  Remove length attribute from
22190         instructions whose length is four bytes, and rely on the default
22191         instead.
22192         (dslot): Fix typo in comment.
22193         Reword conditional branch patterns to use
22194         mips_output_conditional_branch.
22195
22196 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22197
22198         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
22199         (LIB_SPEC): Likewise.
22200         Link with -lprof1_r for -g/-pg.
22201
22202 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
22203
22204         * loop.c (check_dbra_loop): Fix change of Jan 19.
22205
22206 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
22207
22208         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
22209         (STARTFILE_SPEC):  Define, override the svr4.h version.
22210         (ENDFILE_SPEC):  Likewise.
22211
22212 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
22213
22214         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
22215         * fixinc/fixincl.x: Regenerated.
22216         * fixinc/inclhack.sh: Regenerated.
22217
22218 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22219
22220         * sh.c (barrier_align): Don't return early for normal branch/barrier
22221         when optimizing for SH2.
22222
22223 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
22224
22225         * i386/udk.h (LINK_SPEC): Correct linker search path for
22226         system libraries.
22227
22228 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22229
22230         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
22231         (braf_label_ref_operand): Delete.
22232         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
22233         * sh.md (casesi_jump_2): Operand1 is now the inside of a
22234         label_ref, and has no predicate.
22235         The patten has a predicate to guard against invalid substitutions.
22236         (dummy_jump): Delete.
22237         (casesi): Update use of casesi_jump_2.
22238
22239 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22240
22241         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
22242         *fixinc/fixincl.x: regenerate
22243         *fixinc/inclhack.sh: regenerate
22244
22245 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
22246
22247         * dwarf2out.c (add_incomplete_type): New fn.
22248         (gen_struct_or_union_type_die): Call it.
22249         (retry_incomplete_types): New fn.
22250         (dwarf2out_finish): Call it.
22251
22252 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
22253
22254         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
22255         current block starts with a CODE_LABEL and ends with a CALL and
22256         we can not find all the argument setup instructions for the CALL.
22257
22258 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
22259
22260         Revert this change:
22261         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
22262         something is a candidate for optimize_bit_field_compare.
22263
22264 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22265
22266         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
22267
22268 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
22269
22270         * alpha.c (override_options): Thinko in last patch.
22271
22272         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
22273         (LIB_SPEC): Recognize -pthread.
22274
22275 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
22276
22277         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
22278         definition in config/arm/coff.h
22279         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
22280
22281 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
22282
22283         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
22284         fixes that need "file=xxx\n" prepended before invocation
22285         (start_fixer - new): starting the fixer process is complex enough
22286         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
22287         (process): uses the new routine; omit usage of putenv()
22288         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
22289         * fixinc/fixincl.x: regenerate
22290
22291 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
22292
22293         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
22294         and version #s (1.1 -> 2.96) as needed.
22295         * README.g77: Kill way out of date file in the toplevel directory.
22296
22297 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
22298
22299         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
22300         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
22301         * configure: Rebuilt.
22302         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
22303         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
22304         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
22305         (SWITCH_TAKES_ARG): Likewise.
22306         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
22307         * config/t-freebsd: Moved from config/i386/ so it can used for all
22308         FreeBSD targets.
22309
22310 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
22311
22312         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
22313
22314 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
22315
22316         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
22317         * configure: Rebuilt.
22318
22319 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
22320
22321         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
22322         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
22323         * rs6000/rs6000.c (rs6000_file_start): Use putc.
22324         (rs6000_output_load_toc_table): Same.
22325         (output_prolog, output_mi_thunk): Same.
22326         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
22327         (ASM_GLOBALIZE_LABEL): Use putc.
22328
22329 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
22330
22331         * alpha.md (reload_*_help): New patterns and splitters.
22332         (reload_*): Use them.
22333         (mov[qh]i): Likewise.
22334
22335 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
22336
22337         * cccp.c (handle_directive): Handle backslash-newlines in quoted
22338         strings correctly.
22339
22340 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
22341
22342         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
22343
22344 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
22345
22346         * flow.c (mark_regs_live_at_end, insn_dead_p,
22347         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
22348         and HARD_FRAME_POINTER_REGNUM special treatment if reload
22349         hasn't run or the frame pointer is needed.
22350         * haifa-sched.c (attach_deaths): Likewise.
22351         * sched.c (attach_deaths): Likewise.
22352
22353 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
22354
22355         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
22356         calculate_can_reach_end returns nonzero.
22357
22358         * configure.in (native gas tests): Search for an assembler in the
22359         same manner that the installed compiler will.
22360         * configure: Rebuilt.
22361         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
22362
22363         * alias.c (find_base_term): Improve handling of addresses
22364         constructed from binary operations.
22365
22366 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
22367
22368         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
22369
22370 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
22371
22372         * function.h (cleanup_label, frame_offset): Declare.
22373         (tail_recursion_label, tail_recursion_reentry): Likewise.
22374         (arg_pointer_save_area, rtl_expr_chain): Likewise.
22375         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
22376         (tail_recursion_label, tail_recursion_reentry): Likewise.
22377         (arg_pointer_save_area, rtl_expr_chain): Likewise.
22378
22379 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
22380
22381         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
22382         defined.
22383         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
22384         (MAX_OFILE_ALIGNMENT): Define.
22385
22386 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
22387
22388         * fixincl.c: Replace local include scheme with #includes of
22389         gansidecl.h and system.h.
22390         * procopen.c:  Likewise.
22391         * server.c:  Likewise.
22392
22393 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
22394
22395         * i386/t-dgux (EXTRA_PARTS): Add crti.o
22396         (crti.o): Add build rule and dependencies.
22397         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
22398
22399 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22400
22401         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
22402         (LIB_LINUX_SPEC): Likewise.
22403         (LIB_LINUX_SPEC): Add support for -pthread
22404         (CPP_OS_LINUX_SPEC): Likewise.
22405         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
22406         specified.
22407
22408 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
22409
22410         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
22411         conditional move.
22412         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
22413         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
22414         for IEEE math and CC_FCOMI.
22415         (put_jump_code): No IEEE if CC_FCOMI is set.
22416
22417 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
22418
22419         * fold-const.c (fold_truthop): Make the field reference unsigned
22420         when converting a single bit compare.
22421
22422 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22423
22424         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
22425
22426 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
22427
22428         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
22429         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
22430         version did.
22431
22432         * reload.c (push_reload): Do not call remove_address_replacements
22433         when presented with identical optional reloads.
22434
22435 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
22436
22437         * alpha.h (MASK_FIX, TARGET_FIX): New.
22438         (MASK_*): Reorganize constants.
22439         (CPP_AM_FIX_SPEC): New.
22440         (TARGET_SWITCHES): Add FIX.
22441         (EXTRA_SPECS): Likewise.
22442         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
22443         (SECONDARY_MEMORY_NEEDED): Likewise.
22444         (REGISTER_MOVE_COST): Likewise.
22445         * alpha.c (override_options): Add FIX support.  Always use
22446         ALPHA_TP_PROG for ev6.
22447         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
22448         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
22449         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
22450
22451 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
22452
22453         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
22454         something is a candidate for optimize_bit_field_compare.
22455
22456 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
22457
22458         * gcc.texi (Passes): Document branch-shortening.
22459         * invoke.texi (Debugging Options): Document the fact that `-dp'
22460         outputs length information for instructions.
22461
22462 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
22463
22464         * flow.c: Revert previous delta.
22465
22466 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
22467
22468         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
22469         FRAME_POINTER_REGNUM.
22470         (mark_set_1): Ditto.
22471         (mark_used_regs): Ditto.
22472
22473 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
22474
22475         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
22476         (GOT_PCREL): New macro.  Define to 1 if not already defined.
22477         * arm/elf.h (GOT_PCREL): Define to 0.
22478         * arm.c (arm_finalize_pic): Take into account the setting of
22479         GOT_PCREL.
22480
22481 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
22482
22483         * output.h (STRIP_NAME_ENCODING): Provide default definition.
22484         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
22485
22486         * flow.c (mark_set_1): Do not record BLKmode stores as dead
22487         store elimination candidates.
22488
22489 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22490
22491         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
22492         TARGET_GAS.
22493
22494 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
22495
22496         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
22497         Add use of x-aix41-gld.
22498
22499 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
22500
22501         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
22502         (ASM_OUTPUT_DESTRUCTOR): Define.
22503
22504 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
22505
22506         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
22507         last CODE_LABEL in a loop if we have previously passed a jump
22508         to the top of the loop.
22509
22510 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
22511
22512         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
22513         applying Philip's patch.
22514
22515 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
22516
22517         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
22518         are not VAR_DECLs.
22519
22520 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
22521
22522         * loop.c (strength_reduce): Grow reg_single_usage as needed.
22523
22524 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
22525
22526         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
22527         Also remove a useless comment.
22528
22529 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
22530
22531         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
22532
22533 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
22534
22535         * collect2.c (main): Only generate import or export file and add
22536         to link arguments if non-empty.  Use xmalloc not alloca.
22537         (write_{export,import}_file): Delete.
22538         (write_aix_file): New function.
22539         (locatelib): Use xmalloc not malloc.
22540         (GCC_OK_SYMBOL): Do not check type if aix64.
22541
22542 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
22543
22544         Based on patch by Scott Bambrough and Pat Beirne:
22545         * config/arm/arm.c (making_const_table): New variable.
22546         * config/arm/arm.h (making_const_table): Declare.
22547         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
22548         appropriate.
22549         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
22550         Keep track of when we are building the constant table.
22551
22552 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
22553
22554         * config/arm/arm.c (arm_override_options): Fix erroneous warning
22555         message.
22556
22557 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
22558
22559         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
22560         defined.
22561
22562 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
22563
22564         * tm.texi (FUNCTION_ARG): Correct description of a stack element
22565         in a PARALLEL.
22566
22567 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
22568
22569         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
22570
22571 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22572
22573         * rs6000.c (output_mi_thunk): Enable full support again.
22574
22575 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22576
22577         * sh.h (BRANCH_COST): Define.
22578
22579 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
22580
22581         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
22582
22583 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
22584
22585         * function.c (assign_stack_local): Align stack slot propertly.
22586         (assign_outer_stack_local): Likewise.
22587
22588 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
22589
22590         * expr.h (lang_expand_constant): Declare.
22591         * toplev.c (lang_expand_constant): Define it.
22592         * varasm.c (output_constant): Use it.
22593
22594 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22595
22596         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
22597         Change function definitions to K&R style.
22598
22599 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22600
22601         * fixinc/fixincl.c: We must not ignore SIGCLD now.
22602
22603 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
22604
22605         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
22606         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
22607         (several places): omit static initialization
22608         (process): use single fd, since only the read fd is used
22609         * fixinc/gnu-regex.c: define 'const' away, if not supported
22610         * fixinc/procopen.c(several places): omit static initialization
22611         * fixinc/server.c: define 'volitile' away, if not supported
22612
22613 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
22614
22615         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
22616         asm_fprintf and %L to generate the label name.
22617         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
22618         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
22619
22620 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
22621
22622         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
22623         insn for a conditional jump can not be found.
22624
22625 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
22626
22627         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
22628         on variables in specific sections other than .sbss and .sdata.
22629
22630 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
22631
22632         * stmt.c (expand_return): Call start_cleanup_deferral and
22633         end_cleanup_deferral around conditional code.
22634
22635 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
22636
22637         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
22638         filename lists.  Utilizes new "krstr" AutoGen function.
22639         * fixinc/fixincl.x: Rebuilt.
22640
22641 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
22642
22643         * i386.c (output_float_compare): Avoid GNU-C extensions.
22644
22645 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
22646
22647         * version.c: Bump to distinguish mainline tree from the
22648         gcc-2.95 branch.
22649
22650 See ChangeLog.1 for earlier changes.