OSDN Git Service

Under the "obviously correct" rule, fix the formatting breakage of people
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog.3
1 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
2
3         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
4         * c-common.c (ridpointers): Declare.
5         * c-common.h (enum rid): Declare.
6         (NORID): Likewise.
7         (ridpointers): Likewise.
8         * c-lex.c (ridpointers): Don't declare.
9         (init_lex): Initialize ridpointers.
10         * c-lex.h (enum rid): Don't declare.
11         (NORID): Likewise.
12         (RID_FIRST_MODIFIER): Likewise.
13         (ridpointers): Likewise.
14
15 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
16
17         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
18         have global scope.
19
20 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
21
22         * invoke.texi (-Wreturn-type): In C++, a missing return type is
23         always an error.
24
25 2000-06-30  Catherine Moore  <clm@cygnus.com>
26
27         * c-common.c (decl_attributes):  Differentiate between
28         types and type decls for alignment.
29
30 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
31
32         * cpp.texi: Document #pragma GCC dependency
33         * cppfiles.c (open_include_file): Set date to unknown.
34         (_cpp_compare_file_date): New function.
35         (read_include_file): Set file date.
36         * cpphash.h (struct include_file): Add date member.
37         (_cpp_compare_file_date): Prototype.
38         * cpplib.c (parse_include): Add trail parameter. Adjust.
39         (do_include): Adjust parse_include call.
40         (do_import): Likewise.
41         (do_include_next): Likewise.
42         (gcc_pragmas): Add dependency pragma.
43         (do_pragma_dependancy): New pragma.
44
45 2000-06-29  Jason Merrill  <jason@redhat.com>
46
47         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
48         no operands.
49
50 2000-06-29  Jim Wilson  <wilson@cygnus.com>
51
52         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
53         a volatile mem and FR_REGS.
54
55 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
56
57         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
58         * c-common.h (flag_const_strings): Declare.
59         (warn_format): Likewise.
60         (flag_traditional): Likewise.
61         (flag_isoc99): Likewise.
62         (warn_parentheses): Likewise.
63         (warn_conversion): Likewise.
64         (C_TYPE_OBJECT_P): Likewise.
65         (C_TYPE_INCOMPLETE_P): Likewise.
66         (C_TYPE_FUNCTION_P): Likewise.
67         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
68         (C_EXP_ORIGINAL_CODE): Likewise.
69         (build_unary_op): Likewise.
70         (build_binary_op): Likewise.
71         (lvalue_p): Likewise.
72         (default_conversion): Likewise.
73         (common_type): Likewise.
74         * c-tree.h (C_TYPE_OBJECT_P): Remove.
75         (C_TYPE_INCOMPLETE_P): Likewise.
76         (C_TYPE_FUNCTION_P): Likewise.
77         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
78         (C_EXP_ORIGINAL_CODE): Likewise.
79         (common_type): Likewise.
80         (default_conversion): Likewise.
81         (build_binary_op): Likewise.
82         (build_unary_op): Likewise.
83         (lvalue_p): Likewise.
84         (flag_const_strings): Likewise.
85         (warn_format): Likewise.
86         (warn_conversion): Likewise.
87         (flag_traditional): Likewise.
88         (flag_isoc99): Likewise.
89         (warn_parentheses): Likewise.
90
91 2000-06-29  James E. Wilson  <wilson@cygnus.com>
92
93         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
94
95         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
96         same.  Only tie XFmode with XFmode.
97
98 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
99
100         * c-decl.c, timevar.c, tlink.c: Include intl.h.
101         * Makefile.in: Update deps.
102
103 2000-06-29  Andrew Haley  <aph@cygnus.com>
104
105         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
106         to true.
107
108 2000-06-29  Andrew Haley  <aph@cygnus.com>
109
110         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
111         bytes: remove the multiply by 8.
112
113 2000-06-29  Philipp Thomas  <pthomas@suse.de>
114
115         * rtl.c : Revert NLS changes.
116         * gcc.c : Fix bug in display_help introced by my last changes.
117
118 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
119
120         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
121         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
122
123 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
124
125         * flow.c (flow_depth_first_order_compute): Fix algorithm.
126
127 2000-06-28  Philipp Thomas  <pthomas@suse.de>
128
129         * c-decl.c : Mark strings for translation.
130         (parmlist_tags_warning): Use distinct messages instead
131         of conditional expressions.
132         * diagnostic.c (v_message_with_decl): Mark string for translation.
133         * gcc.c: Mark messages for translation.
134         (display_help): Combine messages into one string where necessary.
135         * mips-tfile: Add intl.h. Mark messages for translation.
136         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
137         messages for translation.
138         * timevar.c: Mark messages for translation.
139         * tlink.c: Likewise.
140         * toplev.c: Likewise.
141
142 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
143
144         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
145
146         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
147         use -isystem instead of -idirafter.
148         * i386/i386-interix.h: Likewise.
149
150 2000-06-28  Jason Merrill  <jason@redhat.com>
151
152         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
153         unless DWARF2_DEBUGGING_INFO is defined.
154         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
155
156 2000-06-28  Richard Henderson  <rth@cygnus.com>
157
158         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
159
160 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
161
162         * cpplex.c (output_line_command): Output correct #line if a header
163         is including itself and is not protected against multiple inclusion.
164
165 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
166
167         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
168         ENFILE, close all cached file descriptors and try again.
169         (_cpp_execute_include): Keep a count of the number of times
170         each header is included.
171         (close_cached_fd): New function.
172         * cpphash.h (struct include_file): Rename before to
173         include_count; all users updated.  Make include_count and sysp
174         unsigned short.
175         * cppinit.c (cpp_finish): If -H, report headers that could use
176         reinclude guards.
177         (report_missing_guard): New function.
178
179 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
180
181         * i386.md (prologue_set_got): Set length_immediate field.
182         (testqi_ccno_1):  Add missing '@' character.
183
184 2000-06-27  Jason Merrill  <jason@redhat.com>
185
186         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
187         DWARF_FRAME_REGNUM.
188
189 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
190
191         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
192         unsigned macros available.
193
194 2000-06-27  Richard Henderson  <rth@cygnus.com>
195
196         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
197         epilogue_deallocate_stack.
198
199         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
200         completers for UNORDERED and ORDERED as well.
201         * config/ia64/ia64.md (bunordered, bordered): New.
202         (sunordered, sordered): New.
203
204 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
205
206         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
207         * i386.c (ix86_attr_length_default): Kill.
208         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
209         New.
210         * i386-protos.h (ix86_attr_length_default): Kill
211         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
212         Add prototype
213         * i386.md (attribute type): Add "test".
214         (attribute length_prefix): Kill.
215         (attribute length_opcode): Kill.
216         (attribute i387, mode, length_immediate, length_address, prefix_data16,
217         prefix_rep, prefix_0f, modrm): New.
218         (attribute length): Compute using the new attributes.
219         (attribute pent_prefix): New.
220         (attribute pent_pair): Compute using pent_prefix.
221         (all insn patterns): Set mode,modrm and immediate_length attributes where
222         needed.
223         (cmpsi patterns): Compute sizes propertly for test instruction.
224         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
225         (movstricthi_xor, movstrictqi_xor): New patterns.
226         (andsi/andhi): Use splitters to generate xor instructions.
227         (xorqi_ext_1): New pattern.
228         (movstricthi->movstricthi_xor peep2): New.
229
230 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
231
232         * i386.md (addqi_low_1): Remove.
233
234 2000-06-27  Philipp Thomas  <pthomas@suse.de>
235
236         * 1750a.h: Mark help strings for options/switches for translation.
237         * a29k.h: Likewise.
238         * alpha.h: Likewise.
239         * arm.h: Likewise.
240         * pe.h: Likewise.
241         * riscix.h: Likewise.
242         * c4x.h: Likewise.
243         * clipper.h: Likewise.
244         * convex.h: Likewise.
245         * elxsi.h: Likewise.
246         * fr30.h: Likewise.
247         * fx80.h: Likewise.
248         * h8300.h: Likewise.
249         * i370.h: Likewise.
250         * cygwin.h: Likewise.
251         * dgux.h: Likewise.
252         * djgpp.h: Likewise.
253         * i386.h: Likewise.
254         * osf1elf.h: Likewise.
255         * osfrose.h: Likewise.
256         * sco5.h: Likewise.
257         * win32.h: Likewise.
258         * i860.h: Likewise.
259         * paragon.h: Likewise.
260         * i960.h: Likewise.
261         * ia64.h: Likewise.
262         * m32r.h: Likewise.
263         * mcore.h: Likewise.
264         * mips.h: Likewise.
265         * mn10300.h: Likewise.
266         * ns32k.h: Likewise.
267         * pdp11.h: Likewise.
268         * pj.h: Likewise.
269         * aix.h: Likewise.
270         * aix41.h: Likewise.
271         * aix43.h: Likewise.
272         * beos.h: Likewise.
273         * rs6000.h: Likewise.
274         * sysv4.h: Likewise.
275         * linux.h: Likewise.
276         * linux64.h: Likewise.
277         * sp64-elf.h: Likewise.
278         * sparc.h: Likewise.
279         * splet.h: Likewise.
280         * v850.h: Likewise.
281         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
282         for translation.
283         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
284         Properly document option and mark for translation.
285         * sp86x-elf.h: Likewise.
286
287 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
288
289         Add MMX and SSE registers to i386 machine description.
290         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
291         ix86_local_alignment): Declare.
292
293         * i386.h (TARGET_MMX, TARGET_SSE): New.
294         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
295         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
296         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
297         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
298         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
299         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
300         (RETURN_IN_MEMORY): Handle MMX/SSE.
301         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
302         also get stack space.
303         (MUST_PASS_IN_STACK): Added TImode to the default definition.
304         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
305         (MMX_REGISTER_NAMES): New.
306         (ALIGN_MODE_128): New macro.
307         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
308         (DATA_ALIGNMENT): Likewise.
309         (LOCAL_ALIGNMENT): Likewise.
310         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
311         TARGET_MMX/TARGET_SSE.
312         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
313         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
314         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
315         SSE/MMX regs and something else.
316         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
317         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
318         3 if moving between MMX regs and something else.
319
320         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
321         (regclass_map): Add MMX/SSE registers.
322         (print_operand): Add code to print XMMWORD as appropriate.
323         (ix86_split_movdi): Abort for MMX regs.
324         (init_cumulative_args): Also allow SSE_REGS
325         (function_arg_advance, function_arg): Likewise
326         (print_reg): Support 'm'.  Add case for TImode.
327         (override_options): TARGET_SSE implies TARGET_MMX.
328         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
329         New functions.
330
331         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
332         FIRST_SSE_REG.
333         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
334         memory.
335         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
336         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
337
338 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
339
340         * ssa.c (struct rename_set_data): Change the name of field
341         'set_dest' to 'old_reg'.  Add comments.
342         (struct rename_context): Change the name of 'set_data' to
343         'new_renames'.  Add new field 'done_renames'.
344         (create_delayed_rename): New function.
345         (apply_delayed_renames): New function.
346         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
347         SUBREGs and similar by emitting a move.
348         (new_registers_for_updates): Delete, functionality moved to
349         apply_delayed_renames.
350         (rename_block): Handle moves emitted by rename_insn_1 by putting
351         them into a SEQUENCE with the original insn.  Add sanity checks
352         and comments.
353         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
354         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
355
356 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
357             Jason Merrill <jason@redhat.com>
358
359         * dwarf2.h (enum dwarf_call_frame_info): Add
360         DW_CFA_def_cfa_expression.
361         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
362         dw_loc_descr_struct entry.
363         (struct cfa_loc): New structure to track a CFA location.
364         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
365         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
366         offset, plus handle DW_CFA_def_cfa_expression.
367         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
368         cfa_loc record.
369         (dwarf2out_def_cfa): Entry point maintained for compatability.
370         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
371         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
372         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
373         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
374         cfa_reg.
375         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
376         sequences for the new DW_CFA_def_cfa_expression record.
377         (dwarf2out_frame_debug): Use new variables/fields.A
378         (output_cfi): Handle DW_CFA_def_cfa_expression.
379         (output_cfa_loc): New function to generate a CFI record for
380         DW_CFA_def_cfa_expression.
381         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
382         a dw_loc_descr sequeunce.
383         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
384         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
385         size_of_locs, output_loc_operands, output_loc_sequence): Move into
386         unwind info section.
387         * frame.h (frame_state): Add base_offset and indirect fields.
388         * frame-dwarf2.c (decode_stack_op): New function to interpret a
389         dw_loc_descr operation.
390         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
391         (struct frame_state): Add base offset and indirect fields.
392         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
393
394 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
395
396         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
397         Make warnings about implicit int be pedwarns in C99.  Don't warn
398         about duplicate type qualifiers in C99.
399         (start_function): Make warning about implict int return type be a
400         pedwarn in C99.
401         * c-lex.c (yylex): Don't warn about `long long' in C99.
402         * c-typeck.c (c_expand_return): In C99, always pedwarn about
403         `return' with no value in function returning non-void.
404
405 2000-06-26  Richard Henderson  <rth@cygnus.com>
406
407         * c-typeck.c (pedwarn_c99): New.
408         * diagnostic.c (verror, vwarning, vpedwarn): Export.
409         * toplev.h: Prototype them.
410
411 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
412
413         * c-typeck.c (digest_init): Return error_mark_node node when
414         TREE_TYPE (init)  == error_mark_node.
415
416 2000-06-26  Philipp Thomas  <pthomas@suse.de>
417
418         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
419         test for msgfmt without path instead.
420         * configure: Rebuilt.
421
422 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
423
424         * gengenrtl.c (special_rtx): Fix typo in comment.
425
426 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
427
428         * mklibgcc.in (LIB2FUNCS): Add missing space.
429
430 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
431
432         * tree.h (enum tree_index): Add vector type nodes.
433         Add accessor macros for them.
434         (TYPE_REPRESENATION_TYPE): New macro.
435         * tree.c (build_common_tree_nodes_2): Build these nodes.
436         (finish_vector_type): New function.
437         * c-common.c (type_for_mode): Handle vector modes.
438         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
439
440         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
441         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
442         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
443         (gen_type_die): Likewise.
444         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
445         (fundamental_type_code): Likewise.
446         (type_is_fundamental): VECTOR_TYPEs aren't.
447         (output_type): Handle VECTOR_TYPEs.
448
449 2000-06-25  Kazu Hirata  <kazu@hxi.com>
450
451         * config/arm.c: Fix a comment typo.
452         * config/arm.h: Likewise.
453
454 2000-06-25  Philipp Thomas  <pthomas@suse.de>
455
456         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
457         compiler found.
458         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
459         * configure: Rebuilt.
460
461 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
462
463         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
464
465 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
466
467         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
468         libgcc.a.
469
470 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
471
472         * collect2.c (resolve_lib_name): Move '/' check out of loop.
473
474 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
475
476         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
477
478 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
479
480         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
481         last_unconditional_cleanup.
482
483 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
484
485         * tree.def (VECTOR_TYPE): New node type.
486         * tree.h: Adjust some comments to reflect addition of vector types.
487         (TYPE_VECTOR_SUBPARTS): New macro.
488         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
489         * c-convert.c (convert): Likewise.
490         * convert.c (convert_to_integer): Handle vector modes.
491         (convert_to_vector): New function.
492         * convert.h (convert_to_vector): Declare.
493         * expr.c (convert_move): Handle vector modes.
494         * expmed.c (extract_bit_field): Don't abort for vector modes.
495
496 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
497
498         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
499         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
500         New functions, common code moved from function_{prologue,epilogue}
501         and extended to support the -mtiny-stack option.
502         (function_prologue, function_epilogue): Use them.
503         Use lo8/hi8 consistently for asm output readability.
504         (avr_hard_regno_mode_ok): New function.
505         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
506         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
507         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
508         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
509         Write SPH before SPL.
510         (*movqi): No need to disable interrupts for just one "out"
511         in alternative 5.  Change length attribute from 4 to 1.
512         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
513         Write SPH before SPL.
514
515 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
516
517         * rtl.texi (Vector Operations): New node.
518         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
519         (Conversions): Add ss_truncate, us_truncate.
520         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
521         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
522         US_TRUNCATE): New rtx codes.
523         * machmode.def: Add vector modes.
524         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
525         MODE_VECTOR_FLOAT.
526         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
527         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
528         (VECTOR_MODE_P): New.
529
530 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
531
532         * cpp.texi: Clarify #pragma GCC namespace.
533
534 2000-06-24  Philipp Thomas  <pthomas@suse.de>
535
536         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
537         all catalogs specified in ALL_LINGUAS.
538         * configure: Rebuilt.
539
540 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
541
542         * config/sparc/sparc.md (reload_outdi+1): Handle
543         HOST_BITS_PER_WIDE_INT == 64 case correctly.
544         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
545
546 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
547
548         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
549         struct vs. scalar-ness when -fno-strict-aliasing.
550
551 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
552
553         * cpplib.c (struct pragma_entry): New structure.
554         (pragma_dispatch): Pragma dispatcher.
555         (top_pragmas, gcc_pragmas): New static variables.
556         (do_pragma): Use pragma_dispatch.
557         (do_pragma_gcc): New pragma handler.
558         * cpp.texi: Update.
559
560 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
561
562         * calls.c (compute_argument_addresses): Force stack slots into
563         alias set 0.
564         * expr.c (emit_push_insn): Force pushes into alias set 0.
565
566 2000-06-23  Richard Henderson  <rth@cygnus.com>
567
568         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
569         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
570
571 2000-06-22  Jason Merrill  <jason@redhat.com>
572
573         * toplev.c (compile_file): Always call timevar_print.
574         * Makefile.in (calls.o): Depend on TIMEVAR_H.
575
576 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
577
578         * varasm.c (constant_descriptor): Make contents unsigned char.
579         (mark_const_hash_entry): Adjust.
580         (const_hash): Just hash the code of unknown nodes.
581         (compare_constant_1): Adjust for unsigned char.
582         Use language specific expander on unknown nodes.
583         (record_constant_1): Likewise.
584
585 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
586
587         * cppfiles.c (cpp_make_system_header): New function.
588         * cpplib.h: Prototype it.
589         * cpplib.c (do_line, do_pragma_system_header): Use it.
590         * fix-header.c (read_scan_file): Use it.
591
592         * fix-header.c (check_macro_names): Cast second arg of
593         cpp_defined to const unsigned char *.
594         (read_scan_file): Make getchar_call const unsigned char.
595
596 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
597
598         * cppfiles.c: Include splay-tree.h, not hashtab.h.
599         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
600         (destroy_include_file_node): New.
601         (_cpp_init_include_hash): Rename _cpp_init_include_table.
602         Create a splay tree, not a hash table.
603         (open_include_file): Look up the path in the include table,
604         do the multiple include optimization here, etc.
605         (cpp_included): Walk the path.
606         (find_include_file): Just walk the path calling
607         open_include_file, or call it directly for an absolute path.
608         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
609         scheme.
610         (read_include_file): Update for new scheme.  Don't close the
611         file unless reading fails.
612         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
613
614         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
615         (struct include_file): New.
616         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
617         macros.
618         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
619         Update prototypes.
620
621         * cppinit.c: Include splay-tree.h.
622         (cpp_reader_init, cpp_cleanup): Update.
623
624         * cpplib.h (struct cpp_buffer): Change ihash field to
625         'struct include_file *inc'.  Remove system_header_p.
626         (struct cpp_reader): Change all_include_files to a
627         struct splay_tree_s *.
628
629         * cpplex.c: Update all references to cpp_buffer->ihash and/or
630         cpp_buffer->system_header_p.
631         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
632
633         * Makefile.in (SPLAY_TREE_H): New macro.
634         (cppfiles.o, cppinit.o): Update dependencies.
635
636 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
637
638         * invoke.texi (g++): "g++" is not a script anymore.
639
640 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
641
642         * function.c (round_down): Delete obsolete prototype.
643
644         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
645
646 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
647
648         * configure.in: Use 'test a = b' not 'test a == b'.
649         * configure: Regen.
650
651         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
652
653         * Makefile.in: Remove all references to HOST_INTLLIBS.
654
655         * cpplex.c (parse_name): Don't warn about $ in identifiers if
656         skipping.
657
658 2000-06-20  Philipp Thomas  <pthomas@suse.de>
659
660         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
661         for PA 2.0.
662
663 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
664
665         * Take REG_INC notes into account.
666
667 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
668
669         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
670         (primary: IDENTIFIER): Just call build_external_ref.
671         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
672         Regenerate.
673         * c-lex.c (lastiddecl): Remove.
674         (yylex): Replace all instances of lastiddecl with local
675         variables.
676
677         * c-typeck.c (build_external_ref): New function.  Treat decls
678         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
679         Look up the decl from the id here.  Call lookup_objc_ivar.
680         * c-lang.c (lookup_objc_ivar): Stub.
681         * objc/objc-act.c (lookup_objc_ivar): New function.
682
683         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
684         * c-lex.h: Don't declare lastiddecl.
685
686 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
687
688         * c-common.h (IF_COND): Added documentation.
689         (THEN_CLAUSE): Likewise.
690         (ELSE_CLAUSE): Likewise.
691         (WHILE_COND): Likewise.
692         (WHILE_BODY): Likewise.
693         (DO_COND): Likewise.
694         (DO_BODY): Likewise.
695         (RETURN_EXPR): Likewise.
696         (EXPR_STMT_EXPR): Likewise.
697         (FOR_INIT_STMT): Likewise.
698         (FOR_COND): Likewise.
699         (FOR_EXPR): Likewise.
700         (FOR_BODY): Likewise.
701         (SWITCH_COND): Likewise.
702         (SWITCH_BODY): Likewise.
703         (CASE_LOW): Likewise.
704         (CASE_HIGH): Likewise.
705         (GOTO_DESTINATION): Likewise.
706         (COMPOUND_BODY): Likewise.
707         (ASM_CV_QUAL): Likewise.
708         (ASM_STRING): Likewise.
709         (ASM_OUTPUTS): Likewise.
710         (ASM_INPUTS): Likewise.
711         (ASM_CLOBBERS): Likewise.
712         (DECL_STMT_DECL): Likewise.
713         (STMT_EXPR_STMT): Likewise.
714         (LABEL_STMT_LABEL): Likewise.
715
716         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
717         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
718         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
719         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
720
721 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
722
723         * configure.in (--enable-checking): Update --help doc to reflect
724         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
725
726 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
727
728         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
729
730         * function.c (put_var_into_stack): Don't reference DECL_ fields
731         if input is a SAVE_EXPR.
732         Use set_mem_attributes in COMPLEX case.
733
734 2000-06-18  Richard Henderson  <rth@cygnus.com>
735
736         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
737         (ia64_file_start): Declare.
738         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
739         (GR_REGNO_P): Likewise.
740         * config/ia64/ia64.c: Many prototypes.
741         (ia64_reg_numbers): Constify.
742         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
743         (ia64_section_threshold): Make unsigned.
744         (ia64_print_operand): Constify.
745         (fix_range): Constify.
746         (ia64_init_builtins): Don't compare signed vs unsigned.
747         (ia64_expand_builtin): Likewise.
748
749         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
750         (CONSTRAINT_OK_FOR_Q): New.
751         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
752         (movsf_internal, movdf_internal): Likewise.
753         (cmovdi_internal): Rewrite so that constraints and predicates match;
754         simplify splitters.
755         (cmovsi_internal): Likewise.
756
757         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
758         (ASM_FILE_START): New.
759         * config/ia64/ia64.c (ia64_file_start): New.
760         (rtx_needs_barrier): Handle pred.rel.mutex.
761         (emit_predicate_relation_info): New.
762         * config/ia64/ia64.md (pred_rel_mutex): New.
763         * config/ia64/linux.h (ASM_SPEC): Define.
764         * config/ia64/sysv4.h (ASM_FILE_START): Define.
765
766         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
767         filtering global register variables.
768
769 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
770
771         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
772
773 2000-06-17  Michael Meissner  <meissner@redhat.com>
774
775         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
776         not present and there is a field after a '-'.
777
778 2000-06-17  Bruce Korb  <bkorb@gnu.org>
779
780         * fixinc/check.tpl:  finish the implementation of multiple tests
781         for a single fix
782         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
783         (io_quotes_def): add a second test
784         (various): reorder `files' so that "limits.h" is never first
785         * fixinc/tests/base/*: update the testing output
786
787 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
788
789         * gcc.texi: Remove reference to stupid.c.
790
791 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
792
793         * c-common.c (c_tree_code_type): New array.
794         (c_tree_code_length): Likewise.
795         (c_tree_code_name): Likewise.
796         (add_c_tree_codes): New function.
797
798         * c-common.h (add_c_tree_codes): Declare.
799         (enum c_tree_code): New enum.
800
801         * c-lex.c (init_parse): Added call to add_c_tree_codes.
802
803 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
804
805         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
806         select pattern to also match macro defs with only one argument.
807
808 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
809
810         * i386.md: Create new [right,left] rotate and right shift
811         patterns to optimize shift by 1 bit for certain ia32 processors.
812         Update patterns which perform left shifts to optimize shift by
813         1 bit for certain ia32 processors.
814         * i386.c (const_int_1_operand): New predicate.
815         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
816         * i386-protos.h (const_int_1_operand): Prototype.
817
818 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
819
820         * mips.c (machine_dependent_reorg): Fix braces for nested if.
821
822 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
823
824         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
825         LABEL_REFs.
826
827 2000-06-14  Richard Henderson  <rth@cygnus.com>
828
829         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
830
831         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
832         auto-inc code.
833
834         * print-rtl.c (print_rtx): Emit space before mem alias set.
835
836 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
837
838         * rs6000.c (expand_block_move): Fix typo in earlier change.
839         (print_operand): Remove unused variables neg and op.
840         (toc_hash_mark_entry): Fix prototype.
841
842 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
843
844         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
845         (THEN_CLAUSE): Likewise.
846         (ELSE_CLAUSE): Likewise.
847         (WHILE_COND): Likewise.
848         (WHILE_BODY): Likewise.
849         (DO_COND): Likewise.
850         (DO_BODY): Likewise.
851         (RETURN_EXPR): Likewise.
852         (EXPR_STMT_EXPR): Likewise.
853         (FOR_INIT_STMT): Likewise.
854         (FOR_COND): Likewise.
855         (FOR_EXPR): Likewise.
856         (FOR_BODY): Likewise.
857         (SWITCH_COND): Likewise.
858         (SWITCH_BODY): Likewise.
859         (CASE_LOW): Likewise.
860         (CASE_HIGH): Likewise.
861         (GOTO_DESTINATION): Likewise.
862         (COMPOUND_BODY): Likewise.
863         (ASM_CV_QUAL): Likewise.
864         (ASM_STRING): Likewise.
865         (ASM_OUTPUTS): Likewise.
866         (ASM_INPUTS): Likewise.
867         (ASM_CLOBBERS): Likewise.
868         (DECL_STMT_DECL): Likewise.
869         (STMT_EXPR_STMT): Likewise.
870         (LABEL_STMT_LABEL): Likewise.
871         (SCOPE_BEGIN_P): Likewise.
872         (SCOPE_END_P): Likewise.
873         (SCOPE_STMT_BLOCK): Likewise.
874         (SCOPE_NULLIFIED_P): Likewise.
875         (SCOPE_NO_CLEANUPS_P): Likewise.
876         (SCOPE_PARTIAL_P): Likewise.
877         (ASM_VOLATILE_P): Likewise.
878         (STMT_LINENO): Likewise.
879         (STMT_LINENO_FOR_FN_P): Likewise.
880
881         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
882         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
883         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
884         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
885         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
886
887         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
888
889 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
890
891         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
892         writable in parts of the GCC code.
893
894         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
895         specification match cast.
896
897 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
898
899         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
900         * configure, config.in: Rebuilt.
901         * sys-protos.h: Similarly.
902
903 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
904
905         * ifcvt.c (EDGE_COMPLEX): Move definition ...
906         * basic-block.h (EDGE_COMPLEX): ... here.
907
908         * loop.c (check_dbra_loop): Specify the register when
909         generating REG_NONNEG notes and don't generate duplicates.
910
911 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
912
913         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
914         (struct tree_type, struct tree_decl): Add user_align member.
915         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
916         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
917         and DECL_USER_ALIGN 0, cap alignment to this value.
918         (place_field): Likewise.
919         (finalize_type_size): Set TYPE_USER_ALIGN.
920         (layout_type): Likewise.
921         (initialize_sizetypes): Likewise.
922         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
923         DECL_USER_ALIGN to 1.
924         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
925         (xfer_tag): Set TYPE_USER_ALIGN.
926         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
927         (finish_enum): Likewise.
928         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
929         (expand_anon_union_decl): Likewise.
930         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
931         (build_index_type): Set TYPE_USER_ALIGN.
932         (build_range_type): Likewise.
933         (build_common_tree_nodes_2): Likewise.
934         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
935
936 2000-06-13  Andreas Jaeger  <aj@suse.de>
937
938         * configure.in: Use --enable-checking=misc,tree,gc by default if
939         no --enable-checking option is given and for
940         --enable-checking=yes.
941         * configure: Rebuilt.
942
943 2000-06-13  Richard Henderson  <rth@cygnus.com>
944
945         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
946         (__throw): Don't pass the address of a label.
947
948         * config/ia64/ia64.c (ia64_compute_frame_size): Use
949         current_function_is_leaf.
950         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
951         instead of reg_names[RETURN_ADDRESS_REGNUM].
952         (ia64_init_machine_status): Reset return_address_pointer_rtx.
953         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
954         from RETURN_ADDRESS_REGNUM.  Update all uses.
955         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
956         zero instead of null on failure.
957         (ELIMINABLE_REGS): Add ra->b0 elimination.
958         (CAN_ELIMINATE): Update accordingly.
959         (INITIAL_ELIMINATION_OFFSET): Likewise.
960         (REGISTER_NAMES): Use an illegal assembler name for
961         RETURN_ADDRESS_POINTER_REGNUM.
962
963 2000-06-13  Richard Henderson  <rth@cygnus.com>
964
965         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
966         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
967         (REG_CLASS_NAMES): Likewise.
968         (REG_CLASS_CONTENTS): Likewise.
969         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
970         (HARD_REGNO_MODE_OK): Remove references to them.
971         (REGNO_REG_CLASS): Likewise.
972         (REG_CLASS_FROM_LETTER): Likewise.
973         (CLASS_MAX_NREGS): Likewise.
974         (REGISTER_MOVE_COST): Likewise.
975         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
976         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
977         (movqi_internal): Special case moves from zero.
978         (movhi_internal, movsi_internal): Likewise.
979         (movdi_internal): Likewise.  Fill out "f" constraints.
980         (movsf_internal): Fill out "r" constraints.
981         (movdf_internal): Likewise.
982
983 2000-06-13  Richard Henderson  <rth@cygnus.com>
984
985         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
986         alive before reload.
987
988         * haifa-sched.c (struct deps): Add in_post_call_group_p.
989         (add_dependence): Handle notes between SCHED_GROUP_P insns.
990         (remove_dependence): Always define.
991         (set_sched_group_p): New.
992         (sched_analyze_2): Use it.
993         (sched_analyze_insn): Don't special-case naked uses.  Look for
994         and extend in_post_call_group_p.
995         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
996         (init_deps): Clear in_post_call_group_p.
997
998 2000-06-13  Richard Henderson  <rth@cygnus.com>
999
1000         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
1001         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
1002         and hard-coded tests.
1003         (simplify_set): Likewise.
1004         (gen_lowpart_for_combine): Likewise.
1005         * emit-rtl.c (gen_lowpart_common): Likewise.
1006         * global.c (find_reg): Likewise.
1007         * local-alloc.c (find_free_reg): Likewise.
1008         * recog.c (register_operand): Likewise.
1009         * regclass.c (init_reg_sets_1): Likewise.
1010         (record_operand_costs, regclass): Likewise.
1011         * reload.c (push_reload): Likewise.
1012         * reload1.c (choose_reload_regs): Likewise.
1013         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
1014         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
1015         Update all references.
1016         * regs.h (struct reg_info_def): Likewise.
1017         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
1018         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
1019         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
1020
1021         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
1022         (CLASS_CANNOT_CHANGE_MODE_P): New.
1023         * config/mips/mips.h: Likewise.
1024         * config/pa/pa32-regs.h: Likewise.
1025         * config/pa/pa64-regs.h: Likewise.
1026         * config/rs6000/rs6000.h: Likewise.
1027         * config/sh/sh.h: Likewise.
1028         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
1029         (CLASS_CANNOT_CHANGE_MODE_P): New.
1030         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
1031         * config/d30v/d30v.h: Likewise.
1032
1033 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1034
1035         * configure.in: Add AC_TYPE_GETGROUPS test.
1036         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
1037         * configure: Rebuilt.
1038         * config.in: Rebuilt.
1039
1040 2000-06-13  Richard Henderson  <rth@cygnus.com>
1041
1042         * explow.c (set_mem_attributes): Do nothing for NULL type.
1043
1044 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
1045
1046         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
1047         correctly.
1048
1049 2000-06-13  James E. Wilson  <wilson@cygnus.com>
1050
1051         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
1052
1053 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
1054
1055         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
1056
1057 2000-06-13  Philipp Thomas  <pthomas@suse.de>
1058
1059         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
1060         * configure: Rebuilt.
1061
1062 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
1063
1064         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
1065         We now default to ELF for the i386, and a.out is the special case.
1066         * configure:  Rebuilt.
1067
1068 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
1069
1070         * final.c (final_scan_insn): Delete notes between cc0 setter and
1071         user when restarting from setter.
1072
1073 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1074
1075         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
1076         cast to squelch signed/unsigned warnings.
1077
1078 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
1079
1080         * cpplib.c (handle_directive): Print non-NUL-terminated string
1081         with %.*s.
1082
1083 2000-06-12  Michael Meissner  <meissner@redhat.com>
1084
1085         * ifcvt.c (dead_or_predicable): Don't do conditional execution
1086         path if the machine needs extra support to do conditional
1087         execution.
1088
1089 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
1090
1091         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
1092         to print the alias set.
1093         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
1094
1095 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1096
1097         * config/float-vax.h: Add GFLOAT defines.
1098
1099 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
1100
1101         * configure.in: Update tm dependencies for MPE.
1102         * configure: Rebuilt.
1103
1104 2000-06-12  H.J. Lu  <hjl@gnu.org>
1105
1106         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
1107
1108 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
1109
1110         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
1111         (CPP_SPEC): Change mthreads to pthread.
1112         (LIB_SPEC): Likewise.
1113         (STARTFILE_SPEC): Likewise.
1114         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
1115         (CPP_SPEC): Change mthreads to pthread.
1116         (LIB_SPEC): Likewise.
1117         (STARTFILE_SPEC): Likewise.
1118         * rs6000-protos.h (reg_or_arith_cint_operand): New.
1119         * rs6000.c (reg_or_arith_cint_operand): New.
1120         (num_insns_constant_wide): Decorate unsigned constant.
1121         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
1122         * rs6000.md (addsi3): Use new predicate.
1123         (subsi3, adddi3, subdi3): Likewise.
1124
1125 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
1126
1127         * c-common.c (lang_get_alias_set): Fix typo.
1128
1129 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
1130
1131         * flow.c (mark_used_regs): Revert last change.
1132         (life_analysis): Remove PROP_AUTOINC if running after reload.
1133         (propagate_one_insn): PROP_AUTOINC is always off after reload.
1134
1135 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
1136
1137         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
1138         has run.
1139
1140 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1141
1142         * bb-reorder.c (build_scope_forest): Initialize variable
1143         `curr_scope'.
1144
1145         * calls.c (expand_call): Likewise for variables
1146         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
1147
1148         * i386.c (function_arg_advance, function_arg): Cast to avoid
1149         signed/unsigned warnings.
1150
1151         * i386.h (MEMORY_MOVE_COST): Likewise.
1152
1153         * ifcvt.c (cond_exec_process_if_block): Initialize variables
1154         `else_start' and `else_end'.
1155
1156         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
1157
1158         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
1159
1160 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
1161
1162         * Makefile.in (libintl.a): Depend on intl.all.
1163
1164 2000-06-09  H.J. Lu  (hjl@gnu.org)
1165
1166         * Makefile.in (c-parse.o): Also depend on output.h.
1167
1168 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
1169
1170         * mcore-protos.h: discards const warning removal.
1171         * mcore.c: discards const warning removal.
1172
1173 2000-06-09  Kazu Hirata  <kazu@hxi.com>
1174
1175         * config/h8300/lib1funcs.asm: Declare the machine architecture at
1176         the beginning of the file.
1177
1178 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1179
1180         * real.h:  Add prototype for ldexp.
1181
1182 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
1183
1184         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
1185         it ggc_alloc, drop second argument, never clear returned memory.
1186         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
1187         (ggc_alloc_cleared): New.
1188         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
1189         ggc_alloc_obj.  Remove ggc_alloc macro.
1190         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
1191
1192         * rtl.c (rtvec_alloc): Clear the vector always.
1193         (rtx_alloc): Clear the first word always.  Remove dirty
1194         obstack tricks (this routine is no longer a bottleneck).
1195         * tree.c (make_node): Clear the new node always.
1196         (make_tree_vec): Likewise.
1197         (tree_cons): Clear the common structure always.
1198         (build1): Likewise; also, clear TREE_COMPLEXITY.
1199         * gengenrtl.c: Use puts wherever possible.  Remove extra
1200         newlines.
1201         (gendef): Clear the first word of an RTX in the generator
1202         function, irrespective of ggc_p.  Initialize '0' slots to
1203         NULL.
1204         (genlegend): Don't generate obstack_alloc_rtx routine, just a
1205         thin wrapper macro around obstack_alloc.
1206
1207         * stmt.c (expand_fixup): Use ggc_alloc.
1208         * c-typeck.c (add_pending_init): Use ggc_alloc.
1209         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
1210         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
1211         const0_rtx when it is created.
1212         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
1213         we are not in a function.
1214
1215         * tree.c (tree_class_check_failed): Make second arg an int.
1216         * tree.h: Update prototype.
1217
1218 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
1219
1220         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
1221         of an error_mark_node.
1222
1223 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
1224
1225         * config/avr/avr.c (asm_output_section_name): bugfix.
1226
1227 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
1228
1229         * timevar.def: Add TV_EXPAND.
1230         * timevar.c (timevar_print): Update timing information.
1231         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
1232
1233         * stmt.c (expand_return): Check for error_mark_node.
1234
1235 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1236
1237         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
1238
1239         * scan-types.sh (VALUE) Wrap use with double quotes to protect
1240         variable against filename expansion when it contains "char *".
1241
1242         * system.h (SSIZE_MAX): Delete backup definition.
1243
1244         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
1245         instead of SSIZE_MAX.
1246
1247 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
1248
1249         * configure.in: Check whether gas supports -relax.
1250         * configure, config.in: Rebuilt.
1251         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
1252         (EXTRA_SPECS): Add asm_relax.
1253         (ASM_SPEC): Add %(asm_relax).
1254         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
1255         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
1256         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
1257         (ASM_SPEC): Add %(asm_relax).
1258         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
1259         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
1260         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
1261         instead of mov, so that gas can further optimize it.
1262
1263 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
1264
1265         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
1266         size_of_sleb128.
1267         (value_format, case dw_val_class_const): Use sdata format.
1268         (output_die): Call output_sleb128.
1269
1270 2000-06-08  James E. Wilson  <wilson@cygnus.com>
1271
1272         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
1273         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
1274         ASM_OUTPUT_DWARF_CONST_DOUBLE.
1275         (output_die, case dw_val_class_unsigned_const): Correct call to
1276         ASM_OUTPUT_DWARF_DATA8.
1277         (output_die, case dw_val_class_long_long): Use
1278         ASM_OUTPUT_DWARF_CONST_DOUBLE.
1279         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
1280         pos is zero.
1281
1282         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
1283         (output_function_prologue): Fix mispelling.
1284         (output_function_prologue, output_function_epilogue): Reorder to
1285         match ia64.c definition order.
1286         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
1287         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
1288         Use r3 instead of r2 for large stack restores.
1289         (ia64_output_end_prologue): New function.
1290         (process_set): Emit ".restore sp" for epilogue stack restores.
1291         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
1292
1293 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
1294
1295         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
1296         incomplete types.
1297
1298 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1299
1300         * frame.c (end_fde_sort): Remove extraneous erratic array test.
1301
1302 2000-06-08  Denis Perchine <dyp@perchine.com>
1303
1304         * frame.c (start_fde_sort): Don't malloc (0).
1305
1306 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
1307
1308         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
1309         error_mark_node.
1310         * print-tree.c (print_node): The transparent_union_flag means
1311         different things for unions and arrays.  Do not inspect it
1312         with TYPE_TRANSPARENT_UNION.
1313
1314 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
1315
1316         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
1317         returned NULL.
1318
1319 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
1320
1321         * config/avr/avr.c (asm_output_section_name): output section
1322         attributes.
1323         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
1324
1325 2000-06-06  James E. Wilson  <wilson@cygnus.com>
1326
1327         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
1328         fields into header field.
1329         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
1330         macros to access length, flags, and version info from header field.
1331         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
1332         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
1333         (__do_global_ctors_aux): Fix caller.
1334         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
1335         prologue_flag to header.  Pass to read_P_record.
1336         (read_P_record): New argument header.  Implement P4 format.
1337         Multiply P7_T_SIZE by 16.
1338         (execute_one_ia64_descriptor): New static local region_header.  Pass to
1339         get_unwind_record.  Copy r to region_header if r is a header record.
1340         (print_all_records): Likewise.
1341         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
1342         (__get_personality, __get_except_table): Likewise.
1343         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
1344
1345 2000-06-06  Philipp Thomas  <pthomas@suse.de>
1346
1347         * configure.in (AC_C_INLINE): Added.
1348         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
1349         * configure: Regenerate.
1350
1351 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
1352
1353         * c-common.h (c_language_kind): New type.
1354         (c_language): New variab.e
1355         * c-common.c (lang_get_alias_set): Don't put structures in
1356         non-zero alias sets in C++.
1357         * c-decl.c (c_language): Define it.
1358         * c-lex.c (doing_objc_thang): Remove.
1359         * c-tree.h (doing_objc_thang): Make it a macro.
1360         * objc/objc-act.c (lang_decode_option): Set c_language, not
1361         doing_objc_thang.
1362
1363 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
1364
1365         * diagnostic.c (output_maximum_width): Remove.
1366         (doing_line_wrapping): Tweak.
1367         (diagnostic_buffer): New object.
1368         (global_output_buffer): New object.
1369         (output_destroy_prefix): New function.
1370         (default_initialize_buffer): Likewise.
1371         (reshape_diagnostic_buffer): Likewise.
1372         (initialize_diagnostics): Likewise.
1373         (output_clear): Tweak.
1374         (line_wrapper_printf): Adjust call to init_output_buffer.
1375         (vline_wrapper_message_with_location): Likewise.  Use
1376         output_destroy_prefix.
1377         (v_message_with_decl): Likewise.
1378
1379         * diagnostic.h (struct output_buffer): Constify prefix.
1380         (init_output_buffer, output_get_prefix): Constify.
1381         (diagnostic_message_length_per_line): Likewise.
1382         (reshape_diagnostic_buffer): Declare.
1383         (default_initialize_buffer): Declare.
1384         (initialize_diagnostics): Declare.
1385         (diagnostic_buffer): Declare new obbject.
1386
1387         * toplev.c: #include diagnostic.h
1388         (display_help): Document diagnostic formatting options.
1389         (decode_f_option): Handle diagnostic formatting options.
1390         (main): Setup initialization for diagnostic messages outputter.
1391
1392         * toplev.h (set_message_length): Remove.
1393
1394         * Makefile.in (toplev.o): Depends upon diagnostic.h
1395
1396         * invoke.texi : Document diagnostics formatting options.
1397
1398 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
1399
1400         * configure.in (Make the links): Typo fix : the file that must be
1401         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
1402         * configure: File rebuilt.
1403
1404 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
1405
1406         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
1407         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
1408         space.
1409         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
1410         emergency eh_context buffer, if malloc fails.
1411         (__eh_free): Moved from cp/exception.cc. Release to emergency
1412         eh_context buffer, if appropriate.
1413
1414 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
1415
1416         * expr.c (store_expr): Fix typo.
1417
1418 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1419
1420         * m68k.c (legitimize_pic_address): Move prototype ...
1421
1422         * m68k-protos.h (legitimize_pic_address): ... here.
1423
1424         * m68k.md (legitimize_pic_address): Delete prototypes.
1425         (untyped_call): Invoke GEN_CALL(), not gen_call().
1426
1427         * nextstep.c: Include system.h and toplev.h.
1428         (get_directive_line): Don't prototype.
1429         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
1430
1431         * nextstep.h (handle_pragma): Prototype.
1432         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
1433         objc_section_init ...
1434         (EXTRA_SECTION_FUNCTIONS): ... here.
1435
1436 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1437
1438         * sdbout.c (struct sdb_file): NAME now const.
1439         (sdbout_init): input_file_name now const.
1440         (sdbout_start_new_source_file): FILENAME now const.
1441         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
1442
1443 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
1444
1445         * c-typeck.c (build_conditional_expr): Handle complex data types.
1446
1447 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
1448
1449         * explow.c (maybe_set_unchanging): New function, broken out from...
1450         (set_mem_attributes): Here.
1451         * expr.h: Declare it.
1452         * stmt.c (expand_decl): Call it.
1453
1454 2000-06-05  Richard Henderson  <rth@cygnus.com>
1455
1456         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
1457         while looking for a register to inherit from.
1458
1459 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
1460
1461         * Makefile.in (libgcc.ready): Lose.
1462         (libgcc.mk): Just use mv, not move-if-change.
1463         (LIBGCC_DEPS): New macro.
1464         (libgcc.a): Use it.
1465         (stmp-multilib): Likewise.
1466         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
1467         it rather than the directories themselves.
1468         (LIB2ADD): Depend on the list file rather than 'force'.
1469
1470         * fold-const.c (fold, case COND_EXPR): Elide conversion between
1471         cv-qualified versions of types.
1472
1473 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1474
1475         * config/sparc/sparc.c (short_branch): Correct error in range
1476         computation.
1477
1478 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1479
1480         * fixinc/inclhack.def: New include hacks for ultrix.
1481         * (nested_ultrix): Replaced by ultrix_nested_svc.
1482         * (ultrix_atof_param): test_text string added.
1483         * (ultrix_ifdef): Modified select string.
1484
1485 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
1486
1487         * objc/objc-act.c (generate_method_descriptors): Register
1488         objc_method_prototype_template as a GC root.
1489         (comp_method_with_proto): Register function_type as a GC root.
1490         (comp_proto_with_proto): Replace function_type1 and
1491         function_type2 with a two-element array; register it as a GC root.
1492
1493         (generate_protocols, build_protocol_initializer,
1494         generate_protocol_list, build_category_initializer,
1495         build_shared_structure_initializer): Do not cache cast_type
1496         and/or cast_type2.
1497
1498 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1499
1500         * function.c (assign_parms): Add missing argument to set_mem_attributes
1501         call.
1502
1503 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1504
1505         * tree.h (VOID_TYPE_P): New macro.
1506         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
1507         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
1508         (get_parm_info): Likewise.
1509         (store_parm_decls): Likewise.
1510         (combine_parm_decls): Likewise.
1511         (finish_function): Likewise.
1512         * c-typeck.c (build_function_call): Likewise.
1513         (build_binary_op): Likewise.
1514         (build_conditional_expr): Likewise.
1515         (internal_build_compound_expr): Likewise.
1516         (convert_for_assignment): Likewise.
1517         * stmt.c (expend_expr_stmt): Likewise.
1518         (warn_if_unused_value): Likewise.
1519         (expand_return): Likewise.
1520         * c-parse.in (primary): Likewise.
1521         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
1522         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
1523
1524 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1525
1526         * alias.c (get_alias_set): If compnent is addressable, use alias
1527         set of component.
1528         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
1529         (grokdeclarator): Likewise.
1530         * c-typeck.c (common_type): Likewise.
1531
1532 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
1533
1534         * Makefile.in (OBJS): Remove dyn_string.o
1535         (dyn-string.o): Delete rule.
1536         * dyn-string.c: Delete file
1537         * dyn-string.h: Likewise.
1538
1539 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1540
1541         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
1542         subdir.
1543
1544 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
1545
1546         * alias.c (record_component_aliases): Don't inspect
1547         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
1548
1549 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
1550
1551         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
1552         it with the pattern to do machine dependent work.
1553         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
1554         use it to modify the true/false tests used in conditional
1555         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
1556         defined, invoke them if the conversion to conditional execution
1557         was successful or not.
1558
1559         * tm.texi (IFCVT_MODIFY_TESTS): Document.
1560         (IFCVT_MODIFY_INSN): Ditto.
1561         (IFCVT_MODIFY_FINAL): Ditto.
1562         (IFCVT_MODIFY_CANCEL): Ditto.
1563
1564 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
1565
1566         * toplev.c (main): Fix misspellings of possibility and language.
1567
1568 2000-06-03  Richard Henderson  <rth@cygnus.com>
1569
1570         * alias.c (record_alias_subset): Initialize has_zero_child in the
1571         superset.
1572
1573 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
1574
1575         * arm.md (untyped_call): Use GEN_CALL macro.
1576
1577 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
1578
1579         * Makefile.in: Use $(MAKE) not "make"
1580
1581 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1582
1583         * alias.c (struct alias_set_entry): New field has_zero_child.
1584         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
1585         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
1586         do nothing.
1587         Call record_component_aliases for aggregate types.
1588         (record_alias_subset): Set has_zero_child.
1589         (record_component_aliases, case ARRAY_TYPE): Do nothing if
1590         TYPE_NONALIASES_COMPONENT.
1591         (record_component_aliases, case RECORD_TYPE): Test
1592         DECL_NONADDRESSABLE_P.
1593         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
1594         of TREE_ADDRESSABLE.
1595         * calls.c (initialize_argument_information): Only test
1596         TYPE_TRANSPARENT_UNION for UNION_TYPE.
1597         * function.c (assign_parms): Likewise.
1598         * integrate.c (function_cannot_inline_p): Likewise.
1599         * stor-layout.c (finish_record_layout): Don't call
1600         record_component_aliases.
1601         * tree.h (struct tree_int_cst): Use struct tree_common.
1602         (struct tree_real_cst, struct tree_string): Likewise.
1603         (struct tree_complex, struct tree_identifier): Likewise.
1604         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
1605         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
1606         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
1607         (TYPE_NONALIASES_COMPONENT): New macro.
1608         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
1609         (DECL_NONADDRESSABLE_P): New macro.
1610         (struct tree_decl): Reorder bits for clarity of how many left;
1611         add non_adressable.
1612
1613 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
1614
1615         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
1616         * mklibgcc.in (force): New target.
1617         Make LIB2ADD stuff depend on it.
1618
1619 2000-06-02  Richard Henderson  <rth@cygnus.com>
1620
1621         * alias.c (lang_get_alias_set): Remove.
1622         (get_alias_set): Call it directly, not indirectly.
1623         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
1624         * c-common.h (c_get_alias_set): Don't declare.
1625         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
1626         * expr.h (lang_get_alias_set): Declare as function, not pointer.
1627
1628 2000-06-02  Bruce Korb  <bkorb@gnu.org>
1629
1630         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
1631         (server_setup):  define the server's master pid
1632         (close_server):  actually do the deed IFF we are the server's master
1633
1634 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
1635
1636         * c-common.c (c_get_alias_set): Check whether signed_type did not
1637         return its argument before calling get_alias_set on the result.
1638
1639 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
1640
1641         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
1642
1643 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1644
1645         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
1646         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
1647         for TARGET_NOMACSAVE.
1648         (NOMACSAVE_BIT): Define.
1649         (TARGET_NOMACSAVE): Define.
1650         (TARGET_SWITCHES): Add "nomacsave".
1651
1652 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
1653
1654         * sh.md (untyped_call): Remove excess parameters
1655
1656 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
1657
1658         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
1659         match that used before the conversion to c_fix style.
1660         * fixinc/fixincl.x: regenerate
1661
1662 2000-06-01  Stan Cox  <scox@cygnus.com>
1663
1664         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
1665         macro argument typo.
1666
1667 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
1668
1669         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
1670         error message.
1671         * cpplib.c (parse_include): Remove support for VAX-C
1672         "#include starlet" misfeature.
1673
1674 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
1675
1676         * cppfiles.c: conditionally define O_BINARY.
1677         (open_include_file): pass O_BINARY to open().
1678
1679 2000-06-01  Richard Henderson  <rth@cygnus.com>
1680
1681         * i960.c (i960_br_predict_opcode): Remove.
1682         (i960_print_operand) [+]: Emit branch prediction hints.
1683         (i960_function_arg): Return early for VOIDmode.
1684         (i960_round_align): Return early for incomplete types.
1685         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
1686         * i960.md (all conditional branches): Add "%+".
1687
1688 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1689
1690         * alias.c (get_alias_set): Don't call language-specific routine more
1691         than is needed and clean up code a bit.
1692         * c-common.c (c_get_alias_set): All references whose type
1693         is char get alias set 0, but character types need not.
1694         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
1695         (make_decl_rtl): Don't call it for FUNCTION_DECL.
1696
1697 2000-06-01  Bruce Korb  <bkorb@gnu.org>
1698
1699         * fixinc/tests/base/...: new base result files
1700
1701 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
1702
1703         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
1704         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
1705         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
1706         will use FCOMI.
1707
1708 2000-06-01  Richard Henderson  <rth@cygnus.com>
1709
1710         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
1711
1712         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
1713
1714 2000-05-31  Richard Henderson  <rth@cygnus.com>
1715
1716         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
1717         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
1718         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
1719
1720 2000-05-31  Richard Henderson  <rth@cygnus.com>
1721
1722         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
1723         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
1724         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
1725         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
1726         * config/ia64/ia64.md (all branch/call patterns): Use %+.
1727
1728 2000-05-31  Richard Henderson  <rth@cygnus.com>
1729
1730         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
1731
1732 2000-05-31  Richard Henderson  <rth@cygnus.com>
1733
1734         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
1735         remaining edges.
1736         (find_if_block): Allow THEN with no outgoing edges.
1737         * flow.c (merge_blocks_nomove): Remove a barrier not following
1738         a jump as well.
1739
1740 2000-05-31  Richard Henderson  <rth@cygnus.com>
1741
1742         * flow.c (propagate_block): Move initialization of mem_set_list ...
1743         (init_propagate_block_info): ... here.  Also track blocks with
1744         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
1745
1746 2000-05-31  Richard Henderson  <rth@cygnus.com>
1747
1748         * jump.c (jump_optimize_1): Revert 05-18 change.
1749
1750 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
1751
1752         * invoke.texi: Remove documentation for -fguiding-decls.
1753
1754 2000-05-31  Richard Henderson  <rth@cygnus.com>
1755
1756         * configure.in: Fix typo last change.
1757
1758 2000-05-31  Philipp Thomas  <pthomas@suse.de>
1759
1760         * configure.in (enable-nls): Enable if build == host, i.e. when
1761         not building a canadian cross compiler.
1762         (enable-maintainer-mode): Added for use with i18n.
1763         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
1764         cross section of ALL_LINGUAS and LINGUAS.
1765         * configure: Rebuild.
1766
1767 2000-05-31  Bruce Korb  <bkorb@gnu.org>
1768
1769         * fixinc/check.tpl: rework to use test result tree
1770         * fixinc/Makefile.in: change invocation of check script
1771         * fixinc/check.diff: No longer needed
1772         * fixinc/fixincl.x: regenerate
1773         * fixinc/inclhack.def:  add new tests
1774         * fixinc/tests/base/arch/i960/archI960.h:  New test result
1775         * fixinc/tests/base/curses.h: modified test result
1776         * fixinc/tests/base/stdio.h: ditto
1777         * fixinc/tests/base/time.h: ditto
1778         * fixinc/tests/base/sys/asm.h: ditto
1779         * fixinc/tests/base/sys/stat.h: ditto
1780         * fixinc/tests/base/sys/wait.h: ditto
1781
1782 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
1783
1784         * except.c (clear_function_eh_region): Do not free NULL.
1785
1786 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1787
1788         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
1789         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
1790         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
1791         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
1792         (find_base_decl): New function, from c_find_base_decl in c-common.c.
1793         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
1794         (get_alias_set): Likewise.
1795         Major rework to do more things and allow language-specific code
1796         to just handle special-cases.
1797         (record_alias_subset): Args are HOST_WIDE_INT.
1798         (record_component_alias): Local vars are HOST_WIDE_INT.
1799         Don't handle COMPLEX_EXPR.
1800         (get_varargs_alias_set): Moved from builtins.c.
1801         (get_frame_alias_set): New function.
1802         * builtins.c (expand_builtin_return_address): Use frame alias set.
1803         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
1804         for setjmp buffer.
1805         (get_memory_rtx): Rework to use set_mem_attributes.
1806         (get_varargs_alias_set): Deleted from here.
1807         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
1808         (c_find_base_decl): Deleted from here.
1809         (c_get_alias_set): Remove many cases and rework to just handle
1810         C-specific cases.
1811         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
1812         * c-decl.c (rtl.h, expr.h): Now included.
1813         (init_decl_processing): Call record_component_aliases on array types.
1814         (grokdeclarator): Likewise.
1815         Set TREE_ADDRESSABLE for all fields that are not bitfields.
1816         * c-typeck.c (common_type): Call record_component_aliases for array.
1817         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
1818         Set all save areas to the frame alias set.
1819         * calls.c (initialie_argument_information): Call set_mem_attributes.
1820         (compute_argument_addresses, expand_call): Likewise.
1821         * explow.c (set_mem_attributes): New function.
1822         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
1823         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
1824         LEN and OFFSET now HOST_WIDE_INT.
1825         (clear_by_pieces): Similar changes.
1826         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
1827         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
1828         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
1829         (clear_by_pieces_1): Likewise.
1830         (emit_push_insn): Call set_mem_attributes.
1831         (expand_expr, case INDIRECT_REF): Likewise.
1832         (expand_expr, case VAR_DECL): Call change_address.
1833         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
1834         tree_low_cst.
1835         (get_varargs_alias_set, get_frame_alias_set): New decls.
1836         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
1837         (new_alias_set, set_mem_attributes): Likewse.
1838         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
1839         (assign_stack_temp_for_type): Likewise.
1840         Can split slot even if alias set since can copy.
1841         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
1842         (assign_temp): Use host_integerp and tree_low_cst.
1843         (put_var_into_stack): Properly handle SAVE_EXPR.
1844         (put_addressof_into_stack): Likewise.
1845         (assign_parms): Call set_mem_attributes.
1846         Delete #if 0 code.
1847         (fix_lexical_address): Put reference to chain into frame alias set.
1848         (expand_function_start): Call set_mem_attributes.
1849         * integrate.c (expand_inline_function): Likewise.
1850         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
1851         * regmove.c (try_apply_stack_adjustment): Likewise.
1852         * reload.c (push_reload, make_memloc): Likewise.
1853         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
1854         * rtl.def (MEM): Update comment.
1855         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
1856         (move_by_pieces): Change length to HOST_WIDE_INT.
1857         (record_base_value, record_alias_subset): Delete from here.
1858         * stmt.c (expand_decl): Call set_mem_attributes.
1859         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
1860         * toplev.c (compile_file): Call init_alias_once earlier.
1861         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
1862         from here: now in alias.c.
1863         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
1864         (struct tree_decl): Likewise.
1865         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
1866         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
1867         (output_constant_def, force_const_mem): Likewise.
1868
1869         * flow.c (propagate_block): If block has no successors, stores to
1870         frame are dead if not used.
1871
1872 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
1873
1874         * stmt (expand_end_case): Reorder conversion sequence for jump
1875         table to avoid extra truncations.
1876
1877 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
1878
1879         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
1880         in the block is more than just a simple conditional branch.
1881         (noce_process_if_block): Similarly.
1882
1883 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
1884
1885         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
1886         queue.
1887
1888 2000-05-30  Michael Meissner  <meissner@redhat.com>
1889
1890         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
1891         instructions.  Treat LO_SUM operations as loading the full integer
1892         constant.
1893
1894 2000-05-30  Richard Henderson  <rth@cygnus.com>
1895
1896         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
1897
1898 2000-05-30  Richard Henderson  <rth@cygnus.com>
1899
1900         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
1901
1902 2000-05-30  Bruce Korb  <bkorb@gnu.org>
1903
1904         * fixinc/tests/*:  Added expected result files for fixinc's make check
1905         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
1906
1907 2000-05-30  Richard Henderson  <rth@cygnus.com>
1908
1909         * config/alpha/alpha.md (*setne_internal): Use match_operator
1910         instead of working down from insn.
1911
1912 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1913
1914         * invoke.texi (-Wtraditional): Update WRT function macros.
1915
1916 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
1917
1918         * except.c (free_exception_table): Do not free NULL.
1919
1920 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
1921
1922         * cpplib.c (do_if): Don't save and restore only_seen_white here.
1923         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
1924         and skipping here.
1925
1926 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
1927
1928         * flow.c (mark_used_reg): If a register is unconditionally live,
1929         remove any conditional death information.
1930
1931 2000-05-29  Richard Henderson  <rth@cygnus.com>
1932
1933         * final.c (current_output_insn): New.
1934         (final_scan_insn): Set it.
1935         * output.h: Declare it.
1936
1937 2000-05-29  Richard Henderson  <rth@cygnus.com>
1938
1939         * stor-layout.c (finalize_record_size): Fix typo.
1940
1941         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
1942         if nlabel is null.
1943
1944 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
1945
1946         * cpplib.h (cpp_reader): Remove if_stack.  Change
1947         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
1948         * cpphash.h (struct ihash): Change control_macro to a
1949         cpp_hashnode * and shorten name to cmacro.
1950         Add NEVER_REINCLUDE constant.
1951
1952         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
1953         Examine the cmacro node directly, no need to call cpp_defined.
1954         (_cpp_execute_include, read_include_file): Set cmacro to
1955         NEVER_REINCLUDE, not U"".
1956         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
1957         (cpp_get_token): If pfile->skipping is true, discard text and
1958         keep scanning until we hit a directive; don't expand macros.
1959
1960         * cpplib.c (struct if_stack): Remove if_succeeded, add
1961         was_skipping. Change control_macro to a cpp_hashnode * and
1962         shorten name to cmacro.  Remove typedef IF_STACK.
1963         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
1964         (conditional_skip, skip_if_group,
1965         consider_directive_while_skipping): Delete.
1966         (push_conditional): New.
1967         (_cpp_handle_directive): Don't process directives other than
1968         conditionals if we are skipping.
1969
1970         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
1971         Update to new scheme.
1972         (validate_else): Skip rest of line here, unconditionally.
1973         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
1974         pfile->skipping off.
1975
1976         (all): Remove `scare quotes' from error messages.
1977
1978 2000-05-29  Richard Henderson  <rth@cygnus.com>
1979
1980         * function.c (emit_return_into_block): New line_note arg; emit it.
1981         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
1982         for the close brace to accompany HAVE_return.  Move all line notes
1983         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
1984
1985 2000-05-29  Richard Henderson  <rth@cygnus.com>
1986
1987         * longlong.h [__alpha] (count_leading_zeros): New.
1988         (count_trailing_zeros): New.
1989         (COUNT_LEADING_ZEROS_0): New.
1990
1991         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
1992         (alpha_split_conditional_move): New.
1993         * config/alpha/alpha-protos.h: Prototype them.
1994         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1995         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
1996         * config/alpha/alpha.md: Update ffs cix commentary.
1997         (*ze_and_ne): New.
1998         (*nabssf2, *nabsdf2): New.
1999         (*mov[qhsd]icc_internal): Use add_operand.
2000         (if_then_else constant splitters): New.
2001         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
2002         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
2003
2004 2000-05-29  Richard Henderson  <rth@cygnus.com>
2005
2006         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
2007         a constant to NEG or NOT when conditions allow.
2008
2009         * combine.c (combine_simplify_rtx): Don't create an if_then_else
2010         unless both args are general_operand.  Don't canonicalize plus
2011         to ior unless it helps.
2012
2013         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
2014         instead track register_life_up_to_date.  Toggle no_new_pseudos
2015         around if_convert.
2016
2017 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
2018
2019         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
2020         so output_operand doesn't see them.
2021
2022 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
2023
2024         * lcm.c (make_preds_opaque): Fix comment.
2025         (optimize_mode_switching): Use NORMAL_MODE instead of
2026         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
2027         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
2028         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
2029         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
2030         (MODE_USES_IN_EXIT_BLOCK): Delete.
2031         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
2032         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
2033         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
2034         (MODE_NEEDED): Don't look for USE.
2035         (EPILOGUE_USES): Define.
2036
2037 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
2038
2039         * mklibgcc.in (all): Variable initialised to `libgcc'.
2040
2041 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
2042
2043         * toplev.h (skip_leading_substring): New macro.
2044         * toplev.c (decode_f_option): Use skip_leading_substring instead
2045         of strncmp.
2046         (decode_W_option): Likewise.
2047
2048 2000-05-28  Nick Clifton  <nickc@cygnus.com>
2049
2050         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
2051         modify reg_names.
2052
2053 2000-05-28  Richard Henderson  <rth@cygnus.com>
2054
2055         * regclass.c (record_operand_costs): Protect reg_changes_size
2056         with CLASS_CANNOT_CHANGE_SIZE.
2057
2058         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
2059
2060 2000-05-28  Richard Henderson  <rth@cygnus.com>
2061
2062         * function.c (diddle_return_value): A pcc-style struct return
2063         returns a pointer.
2064
2065 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
2066
2067         * cppfiles.c: Read files in, using mmap if possible, then
2068         prescan them separately.
2069         (read_file, read_with_read): New functions.
2070         * cpplex.c: Don't define UCHAR_MAX.
2071         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
2072         the file here.
2073
2074         * cppinit.c (handle_option): Automatically define __cplusplus,
2075         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
2076         the respective -lang switch.
2077
2078         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
2079         prototype): Move to...
2080         * cpplib.h: ... here.  Rename struct hashnode to struct
2081         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
2082         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
2083
2084 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
2085
2086         * config/rs6000/rs6000.md (movsi): Constify 'name'.
2087
2088         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
2089         (class_can_change_size): New variable.
2090         (reg_changes_size): New variable.
2091         (init_reg_sets_1): Initialise class_can_change_size.
2092         (record_operand_costs): Remove subreg_changes_size.
2093         Don't pass it around.  Instead update reg_changes_size.
2094         (regclass): Initialise and free reg_changes_size.  If a register
2095         changes size, don't preference it to a class that contains
2096         registers that can't change size.
2097         (record_reg_classes): Don't look at subreg_changes_size.
2098
2099 2000-05-27  Richard Henderson  <rth@cygnus.com>
2100
2101         * print-rtl.c (reg_names): Remove const.
2102         * regclass.c (reg_names): Likewise.
2103         * regs.h (reg_names): Likewise.
2104         * hard-reg-set.h (reg_names): Likewise.
2105
2106 2000-05-27  Richard Henderson  <rth@cygnus.com>
2107
2108         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
2109
2110 2000-05-27  Richard Henderson  <rth@cygnus.com>
2111
2112         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
2113         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
2114         (alpha_expand_prologue): Emit prologue_mcount if needed.
2115         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
2116         * config/alpha/alpha.md (prologue_mcount): New.
2117         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
2118         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
2119         * config/alpha/netbsd.h: Likewise.
2120
2121 2000-05-27  Richard Henderson  <rth@cygnus.com>
2122
2123         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
2124         change to config/elfos.h.
2125
2126 2000-05-27  Richard Henderson  <rth@cygnus.com>
2127
2128         * Makefile.in (resource.o): Depend on except.h.
2129         * except.h (output_exception_table_data): Prototype.
2130         * genconfig.c (gen_peephole2): Prototype.
2131         * genemit.c (main): Include ggc.h.
2132         * genoutput.c: Revert parts of last change: include errors.h
2133         (main): Set progname.
2134         * recog.c: Include hard-reg-set.h before recog.h.
2135         * resource.c: Include except.h.
2136
2137         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
2138         with RTX_CODE.
2139         (alpha_write_linkage): Protect with BUFSIZ.
2140         (alpha_need_linkage): Update prototype.
2141         * config/alpha/alpha.c (function_arg): Move VMS code here.
2142         (alpha_links_base): Remove.
2143         (alpha_links): New.
2144         (mark_alpha_links_node, mark_alpha_links): New.
2145         (alpha_write_one_linkage): New.
2146         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
2147         (alpha_write_linkage): Use splay_tree_foreach.
2148         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
2149         to get the linkage symbol.
2150         (call_value_vms): Likewise.
2151         * config/alpha/elf.h (output_file_directive): Remove decl.
2152         (ctors_section, dtors_section): Prototype.
2153         (sbss_section, sdata_section): Prototype.
2154         * config/alpha/vms.h (FUNCTION_ARG): Remove.
2155         (readonly_section, link_section, literals_section): Prototype.
2156         (ctors_section, dtors_section): Prototype.
2157         (vms_valid_decl_attribute_p): Remove decl.
2158         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
2159
2160 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
2161
2162         * reload.c (get_secondary_mem): Don't widen floating-point modes.
2163
2164         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
2165         substituting the REG in a (subreg:X (reg:Y ...)).
2166
2167 2000-05-28  Neil Booth  <NeilB@earthling.net>
2168
2169         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
2170         first token of a line BOL.  Update EOF code for this.
2171         Remove illegal directive check - it appears in the (not
2172         yet committed) caller.
2173         * cpplib.h (BOL): New flag.
2174
2175 2000-05-28  Neil Booth  <NeilB@earthling.net>
2176
2177         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
2178         (_cpp_free_toklist): No comment space to free.
2179         (expand_comment_space): Remove.
2180         (save_comment_space): Place the comment in the current token and
2181         not in a separate comment space.
2182         (_cpp_lex_line): Save comments during plain code and #define
2183         directives only.
2184         * cpplib.h (struct _cpp_toklist): Remove comment space.
2185
2186 2000-05-28  Neil Booth  <NeilB@earthling.net>
2187
2188         * cppexp.c (parse_assertion): Supply extra argument to
2189         _cpp_init_toklist.
2190         * cpplib.c (do_assert, do_unassert): Similarly.
2191         * cpphash.h (_cpp_init_toklist) Update.
2192         (_cpp_expand_token_space): New.
2193         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
2194         * cpplex.c (_cpp_init_toklist): New argument.
2195         (parse_string2): New argument multiline_ok.
2196         (spell_token): Take a const cpp_token *.
2197         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
2198         (SPELL_ macros): Replace with enum.
2199         (expand_token_space): Replace with _cpp_expand_token_space.
2200         Take COUNT argument.
2201         (IS_DIRECTIVE): Update.
2202         (_cpp_lex_line): Update token structure before parsing number.
2203         Don't assume start at beginning of token list.
2204         (save_comment): Use INIT_TOKEN_NAME.
2205
2206 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
2207
2208         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
2209         -Wmissing-prototypes.
2210         * configure: Regenerate.
2211         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
2212
2213         * builtins.c, calls.c: Change all instances of gen_call_* or
2214         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
2215         * calls.c (struct_value_size_rtx): Separate definition from
2216         initialization to avoid unused variable warning.
2217
2218         * genflags.c (gen_macro): New function.
2219         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
2220         (gen_nonproto): Delete.
2221         (gen_insn): Put all insns on the same obstack.
2222         (main): Generate prototypes for everything unconditionally.
2223
2224         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
2225         out check for wchar_t.
2226         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
2227         * system.h: Add infrastructure for defining missing
2228         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
2229         definitions of UCHAR_MAX and SSIZE_MAX.
2230         * configure: Regenerate.
2231         * config.in: Regenerate.
2232
2233         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
2234         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
2235         headers.
2236         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
2237         libgcc2.a, or libgcc1.null.
2238
2239 2000-05-27  Richard Henderson  <rth@cygnus.com>
2240
2241         * Makefile.in (recog.o): Don't depend on resource.h.
2242         * recog.c: Don't include resource.h.
2243         (recog_last_allowed_insn): Remove.
2244         (recog_next_insn): Remove.
2245         (struct peep2_insn_data): New.
2246         (peep2_insn_data, peep2_current): New.
2247         (peep2_next_insn): New.
2248         (peep2_regno_dead_p, peep2_reg_dead_p): New.
2249         (peep2_find_free_register): New.
2250         (peephole2_optimize): Track life information by insn as we go.
2251         * recog.h: Update declarations.
2252         * resource.c (find_free_register, reg_dead_p): Remove.
2253         * resource.h: Remove their declarations.
2254         * toplev.c: Include hard-reg-set.h before recog.h.
2255
2256         * genconfig.c (max_insns_per_peep2): New.
2257         (gen_peephole2): New.
2258         (main): Call it.
2259         * genemit.c (output_peephole2_scratches): Generate calls to
2260         peep2_find_free_register; adjust surrounding code.
2261         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
2262         * genrecog.c (change_state): Don't track last_insn.
2263         (write_action): Write into *_pmatch_len before accepting.
2264         (write_tree): Adjust peephole2_insns and subroutines to match.
2265
2266         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
2267
2268         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
2269         (hard_int_register_operand): New.
2270         * config/alpha/alpha-protos.h: Declare it.
2271         * config/alpha/alpha.h (PREDICATE_CODES): Update.
2272         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
2273         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
2274
2275 2000-05-27  Richard Henderson  <rth@cygnus.com>
2276
2277         * function.c (thread_prologue_epilogue_insns): Don't move the
2278         line note at the head of the chain.  Only force a lineno note
2279         before the end of block 0.
2280
2281 2000-05-27  Richard Henderson  <rth@cygnus.com>
2282
2283         * gensupport.c (collect_insn_data): Record the maximum number
2284         of alternatives, not the last seen.
2285
2286         * genoutput.c: Don't include errors.h.
2287         (struct data): Add lineno member.
2288         (have_error): New.
2289         (scan_operands): Use message_with_line instead of error.
2290         (validate_insn_alternatives): Likewise.
2291         (gen_insn): Accept and store the pattern's line number.
2292         (gen_peephole, gen_expand, gen_split): Likewise.
2293         (main): Don't set progname.  Pass line_no to gen_foo.
2294
2295 2000-05-27  Richard Henderson  <rth@cygnus.com>
2296
2297         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
2298         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
2299         * config/d30v/d30v.md (attr predicable): New.
2300         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
2301         (andsi3*): Unify into one pattern.
2302         (iorsi3*, xorsi3*): Likewise.
2303         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
2304         conditional return.
2305         (old cond_exec patterns): Remove.
2306         (define_cond_exec): New.
2307
2308 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2309
2310         * tree.h (TREE_CODE_LENGTH): New macro.
2311         * c-common.c (c_find_base_decl): Use it.
2312         * expr.c (safe_from_p): Likewise.
2313         * print-tree.c (print_node): Likewise.
2314         * tree.c (make_node, copy_node, get_identifier): Likewie.
2315         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
2316         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
2317         * fold-const.c (make_range): Likewise.
2318         (fold): Likewise; also use first_rtl_op.
2319         * c-iterate.c (collect_iterators): Use first_rtl_op.
2320         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
2321         Use IS_EXPR_CODE_CLASS.
2322         (preexpand_calls): Likewise.
2323         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
2324         and TREE_CODE_LENGTH.
2325         * stmt.c (warn_if_unused_value): If no operands, no unused value.
2326
2327 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
2328
2329         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
2330         than '%1(%*)'.
2331         (movdi_internal64): Likewise.
2332
2333         * config/rs6000/rs6000.md: Correct order of operands for DImode
2334         boolean patterns.
2335
2336         * config/rs6000/rs6000.c (boolean_or_operator): New function.
2337         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
2338         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
2339         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
2340         boolean_operator for the boolean patterns without NOTs.
2341
2342         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
2343         from reg_or_u_cint_operand.  Change comment and behaviour.
2344         (logical_operand): Clean up, add assertion.
2345         (non_logical_cint_operand): Also check for
2346         reg_or_logical_cint_operand.
2347         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
2348         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
2349         in the expander.
2350         (xorsi3): Likewise.
2351         (iordi3): Likewise.
2352         (xordi3): Likewise.
2353
2354 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
2355
2356         * tree.h (struct record_layout_info): Rename to (struct
2357         record_layout_info_s).
2358         * stor-layout.c (start_record_layout): Replace
2359         `record_layout_info' with `record_layout_info_s'.
2360
2361 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
2362
2363         * flow.c (find_label_refs): New function.
2364         (find_basic_blocks_1): Call it for each alternative of a call
2365         placeholder.
2366
2367 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
2368
2369         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
2370         of get_pc.
2371
2372 2000-05-25  Richard Henderson  <rth@cygnus.com>
2373
2374         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
2375         so strict about DImode.
2376         (alpha_swapped_comparison_operator): Likewise.
2377         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
2378         any integer output mode.
2379         (*setcc_internal): Likewise.
2380         (*setcc_swapped_internal): Likewise.
2381         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
2382         (*mov[qhs]icc_internal): New.
2383         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
2384
2385 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2386
2387         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
2388
2389 2000-05-25  Richard Henderson  <rth@cygnus.com>
2390
2391         * bb-reorder.c (reorder_block_def): Reorder elements for size.
2392         Remove add_jump; add next; replace flags with visited.
2393         (rbd_init): Remove.
2394         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
2395         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
2396         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
2397         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
2398         (RBI): New.
2399         (reorder_index, reorder_last_visited): Remove.
2400         (skip_insns_after_block): Rewrite to use a switch.
2401         (get_common_dest): Remove.
2402         (chain_reorder_blocks): Remove.
2403         (record_effective_endpoints): Split out from reorder_basic_blocks.
2404         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
2405         (make_reorder_chain_1): Renamed from old make_reorder_chain.
2406         Only construct the reorder chain, do not move insns.  Try harder
2407         to tail recurse.
2408         (label_for_bb, emit_jump_to_block_after): New.
2409         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
2410         and adjust the jump insns appropriately.  Fixup basic_block_info.
2411         (verify_insn_chain): Always define.
2412         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
2413         in allocation size.
2414         (make_new_scope): Don't write zeros to calloc'd space.
2415         (build_scope_forest): Rely on xrealloc to DTRT.
2416         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
2417         profile_arc_flag.  Streamline EH test.
2418
2419         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
2420         * basic-block.h: Declare them.
2421
2422 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
2423
2424         * emit-rtl.c (reset_used_decls): New function.
2425         (unshare_all_rtl_again): Call it.
2426
2427 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
2428
2429         * cpplex.c (maybe_macroexpand): Warn about function-like
2430         macros used in non-function context, if -Wtraditional.
2431
2432 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
2433
2434         * recog.c (peephole2_optimize): Use INSN_P.
2435
2436 2000-05-25  Richard Henderson  <rth@cygnus.com>
2437
2438         * ifcvt.c (seq_contains_jump): New.
2439         (noce_try_store_flag_constants): Use it to fail conversion.
2440         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
2441
2442 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
2443
2444         * except.h (can_throw): Declare it.
2445         * except.c (can_throw): Give it external linkage.
2446         * resource.c (find_dead_or_set_registers): Use can_throw.
2447
2448 2000-05-25  Richard Henderson  <rth@cygnus.com>
2449
2450         * flow.c (mark_set_1): Don't record conditionally dead memory.
2451
2452 2000-05-25  Jan Hubicka  <jh@suse.cz>
2453
2454         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
2455         and pc_set at the place of simplejump_p and condjump_p.
2456         * cse.c (record_jump_equiv): Likewise.
2457         * emit-rtl.c (emit): Likewise.
2458         * explow.c (find_next_ref): Likewise.
2459         * flow.c (tidy_fallthru_edge): Likewise.
2460         (init_propagate_block_info): Likewise.
2461         * gcse.c (delete_null_pointer_checks): Likewise.
2462         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
2463         dead_or_predicable): Likewise.
2464         * integrate.c (copy_insn_list): Likewise.
2465         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
2466         for_each_insn_in_loop, check_dbra_loop, get_condition,
2467         insert_bct, load_mems): Likewise.
2468         * resource.c (find_dead_or_set_registers): Likewise.
2469         * sibcalls.c (simplejump_p): Likewise.
2470         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
2471
2472 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
2473
2474         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
2475         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
2476         when unaligned.
2477         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
2478         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
2479         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
2480         * rs6000.md: Name various internal patterns.
2481
2482 2000-05-25  Jan Hubicka  <jh@suse.cz>
2483
2484         * jump.c (invert_exp_1): Remove first argument, use pc_set
2485         to get the expression.
2486         (redirect_exp): Make static; redirect only the pc_set expression,
2487         remove first argument.
2488         (invert_exp): Remove first argument, make static.
2489         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
2490         any_onlyjump at most places where we originaly did condjump_p
2491         and simplejump_p.
2492         (jump_back_p, follow_jumps, thread_jumps): Likewise.
2493         (delete_barrier_succesors): Use pc_set.
2494         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
2495         calls of invert_exp and redirect_exp.
2496         * rtl.h (redirect_exp, invert_exp): Remove.
2497         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
2498
2499 2000-05-25  Richard Henderson  <rth@cygnus.com>
2500
2501         * stmt.c (expand_end_bindings): Fix thinko last change.
2502
2503 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
2504             Andrew Haley  <aph@cygnus.com>
2505
2506         * except.c  (func_eh_entry): Add emitted field.
2507         (new_eh_region_entry): Set emitted field to 0;
2508         (output_exception_table_entry): Only emit previously un-emitted data,
2509         and send it to the eh_data section.
2510         (output_exception_table): Break out common parts. Output
2511         exception table for entire compilation unit to eh_data section.
2512         (output_exception_table_data): Common parts of output_exception_table.
2513         Send output to eh_data section.
2514         (output_function_exception_table): Output exception table data for
2515         a single function to eh_data section.
2516         (free_exception_table): New external to free the table.
2517         * except.h (free_exception_table): Add prototype.
2518         (output_function_exception_table): Add prototype.
2519         * final.c (final_end_function): Output function exception table
2520         for IA64_UNWIND_INFO.
2521         (final_scan_insn): Emit any unwind directives for an insn.
2522
2523         * frame-dwarf2.c: New file containing all DWARF 2 specific code
2524         from frame.c.
2525         * frame.c: Remove all DWARF 2 specific code.
2526         * config/ia64/frame-ia64.c: New file.
2527         (gthread_stuff): Make all gthread available with
2528         IA64_UNWIND_INFO.
2529         (dwarf_fde): Define an IA64 struct for dwarf_fde.
2530         (__register_frame_info, __register_frame): Move to common area of file.
2531         (__register_frame_info_table, __register_frame_table): Move to common i
2532         area.
2533         (__deregister_frame_info, __deregister_frame): Move to common area.
2534         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
2535         (read_uleb128): New version for ia64.
2536         (get_unwind_record): Read the next IA-64 unwind record.
2537         (read_R_record): Read a region header record.
2538         (process_a_b_reg_code): X record helper.
2539         (read_X_record): Read an X format record.
2540         (read_B_record): Read a B format record.
2541         (P3_record_types): List of record types matching the P3 format.
2542         (P7_record_types): List of record types matching the P7 format.
2543         (P8_record_types): List of record types matching the P8 format.
2544         (read_P_record): Read a P format record.
2545         (init_ia64_reg_loc): Set default fields for a register.
2546         (init_ia64_unwind_frame): Set defaults for all register records.
2547         (execute_one_ia64_descriptor): Execute one descriptor record.
2548         (rse_address_add): Calculate the position of a local reg in memory.
2549         (normalize_reg_loc): Turn a location descriptor into a memory address.
2550         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
2551         within a specified PC offset range.
2552         (get_real_reg_value): Given a register location, retrieve its value.
2553         (set_real_reg_value): Change the value of a register location.
2554         (copy_reg_value): Copy reg values, if needed.
2555         (copy_saved_reg_state): Copy all registers that need to be copied.
2556         (process_state_between): Normalize all frame register records that
2557         fall within the specified PC range.
2558         (frame_translate): Take a processed frame description, and turn
2559         everything into addresses.
2560         (build_ia64_frame_state ): Find and create frame state record for a PC.
2561         (get_personality): Get the personality routine for a given frame.
2562         (get_except_table): Get the exception table for a given frame.
2563         (record_name): Unwind record names for debugging.
2564         (print_record): Print and unwind record.
2565         (print_all_records): Print an entire unwind image.
2566         (__ia64_backtrace): Print a backtrace.
2567         (ia64_backtrace_helper): New function.
2568         (__register_frame_info_aux): New function.
2569         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
2570
2571         * frame.h (enum unw_record_type): New unwind record types.
2572         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
2573         (struct unw_r_record, unwind_record): New unwind record structs.
2574         (struct unwind_info_ptr): Unwind information layout.
2575         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
2576         descriptors.
2577         (struct ia64_reg_loc): Register location description.
2578         (struct ia64_frame_state): Location of all registers in a frame.
2579         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
2580         * libgcc2.c (__ia64_personality_v1): Personality routine.
2581         (__calc_caller_bsp): Calculate the bsp register for the caller's
2582         frame.
2583         (ia64_throw_helper): Figure out who to return to and set up the
2584         registers.
2585         (__throw): Throw routine.
2586
2587         * output.h (assemble_eh_align, assemble_eh_label): New functions
2588         to generate EH info where we want it.
2589         (assemble_eh_integer): New function.
2590         * toplev.c (compile_file): Output module level exception table for
2591         non-ia64 targets.
2592         (main): Set exceptions_via_longjump and flag_new_exceptions based
2593         on IA64_UNWIND_INFO too.
2594
2595         * varasm.c (assemble_eh_label): Generate a label via
2596         ASM_OUTPUT_EH_LABEL if it has been specified.
2597         (assemble_eh_align): Generate an alignment directive via
2598         ASM_OUTPUT_EH_ALIGN if it has been specified.
2599         (assemble_eh_label): Generate an integer value via
2600         ASM_OUTPUT_EH_type if they have been specified.
2601         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
2602         (ia64_init_builtins): Add __builtin_ia64_bsp
2603         and __builtin_ia64_flushrs.
2604         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
2605         IA64_BUILTIN_FLUSHRS.
2606         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
2607         IA64_BUILTIN_FLUSHRS.
2608
2609         * config/ia64/ia64.md (flushrs): New insn to flush the register
2610         stack.  Add to unspec list.
2611
2612         * config/ia64/crtbegin.asm (frame_object): Change size.
2613         (__do_frame_setup_aux): New function.
2614         * config/ia64/crtend.asm: call __do_frame_setup_aux.
2615         * config/ia64/t-ia64 (LIB2ADDEH): Add.
2616         * Makefile.in (LIB2ADDEH): Add.
2617         (LIB2ADD): Use LIB2ADDEH.
2618
2619 2000-05-24  Richard Henderson  <rth@cygnus.com>
2620
2621         * recog.c (offsettable_address_p): If mode size is zero, assume
2622         BIGGEST_ALIGNMENT.
2623
2624 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
2625
2626         * configure.in: Check for -Wno-long-long option support and improve
2627         handling of warning CFLAGS for stages 1 and 2.
2628         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
2629         * configure: Regenerate.
2630
2631 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
2632
2633         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
2634         * contrib.texi: New file.
2635
2636 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2637
2638         * loop.c (basic_induction_var): Avoid double recording of an increment.
2639
2640 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2641
2642         * Back out this patch:
2643         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
2644           * loop.h (struct induction): Add multi_insn_incr.
2645           * loop.c (basic_induction_var): New multi_insn_incr argument.
2646           Set it if we search back through previous insns for the biv.
2647           (record_biv): New multi_insn_incr argument; fill in struct induction.
2648           (strength_reduce): Discard an iv with multiple bivs, any of
2649           which require multiple insns to increment.
2650
2651         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
2652
2653 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2654
2655         * rtl.h (loc_mentioned_in_p): Declare.
2656         * reload.c (loc_mentioned_in_p): Moved from here...
2657         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
2658         Fix loop increment for 'E' handling.
2659         * loop.c (strength_reduce): When doing biv->giv conversion,
2660         take multi-insn biv increments into account.
2661
2662 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
2663
2664         * stmt.c (expand_end_bindings): Look through NOTEs to find a
2665         BARRIER.
2666
2667 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
2668
2669         * calls.c (expand_call): Handle cleanups in tail-recursion
2670         arguments analagously to cleanups in sibling calls.
2671
2672 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2673
2674         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
2675         All callers changed.
2676
2677 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
2678
2679         * expr.c (expand_assignment, store_expr, expand_expr,
2680         expand_expr_unaligned): Set in_check_memory_usage while emitting
2681         chkr_check_addr libcall.
2682
2683 2000-05-24  Nick Clifton  <nickc@cygnus.com>
2684
2685         * fold-const.c (extract_muldiv): When constructing a
2686         multiplier/divisor, do not expect const_binop to correctly
2687         determine if overflow has occured, so check explicitly.
2688
2689 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
2690
2691         * c-decl.c (build_enumerator): Don't modify the value's type,
2692         convert it.
2693
2694 2000-05-24  Andreas Jaeger  <aj@suse.de>
2695
2696         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
2697
2698 2000-05-24  Eric Christopher <echristo@cygnus.com>
2699
2700         * configure.in: Redefine inhibit_libc conditions.
2701         * libgcc2.c: Remove inhibit_libc conditional define.
2702         * configure: Regenerate.
2703
2704 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
2705
2706         * configure.in:  For --enable-languages=LIST, check for empty LIST.
2707         * configure:  Regenerate.
2708
2709 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
2710
2711         * pdp11.h (STACK_BOUNDARY): Define.
2712
2713 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
2714
2715         * ifcvt.c (if_convert): Update life info globally.
2716
2717 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2718
2719         * emit-rtl.c (unshare_all_decls): New function.
2720         (unshare_all_rtl): Call it.
2721
2722 2000-05-23  Nick Clifton  <nickc@cygnus.com>
2723
2724         * configure.in: Treat 'strongarm' as if it were 'arm' when
2725         determining cpu type.
2726
2727         * configure: Regenerate.
2728
2729         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
2730         where constant strings are involved.
2731
2732         * config/arm/arm.h (arm_condition_codes): Change type to 'const
2733         char *'.
2734
2735         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
2736         cases where constant strings are involved.
2737
2738 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
2739
2740         * config/sh/sh.c (gen_far_branch, split_branches): Update
2741         to reflect new prototypes for redirect_jump and invert_jump.
2742         (sh_insn_length_adjustment): Get rid of const warnings.
2743
2744 2000-05-23  Kazu Hirata  <kazu@hxi.com>
2745
2746         * invoke.texi (Options for Debugging Your Program or GCC): Update
2747         the names of dump files.
2748
2749 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
2750
2751         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
2752         * configure: Regenerated.
2753
2754 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
2755
2756         * simplify-rtx.c (SIGN_EXTEND): New macro.
2757         (simplify_unary_operation, simplify_binary_operation,
2758         simplify_relational_operation): Use SIGN_EXTEND.  Make low
2759         halves of (low, high) pairs unsigned if they weren't already.
2760         (simplify_ternary_operation): Cast INTVAL to unsigned before
2761         comparing to a MODE_BITSIZE.
2762
2763 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2764
2765         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
2766         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
2767
2768         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
2769         gcc_AC_NEED_DECLARATIONS.
2770
2771         * dwarfout.c: Don't prototype time().
2772
2773         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
2774
2775         * system.h: Likewise.
2776
2777         * toplev.c: Likewise.
2778
2779 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
2780
2781         * c-decl.c (pushdecl): Invert sense of test for non-global types.
2782
2783 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2784
2785         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
2786
2787 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
2788
2789         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
2790
2791 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2792
2793         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
2794         (alpha_start_function): Never write ..ng label if VMS or NT.
2795         (alpha_align_insns): Remove GP_IN_USE arg.
2796         Alignment now unsigned.
2797         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
2798         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
2799         and two define_insn's.
2800
2801 2000-05-22  Richard Henderson  <rth@cygnus.com>
2802
2803         * combine.c (simplify_comparison): Use trunc_int_for_mode.
2804
2805 2000-05-22  Richard Henderson  <rth@cygnus.com>
2806
2807         * stor-layout.c (place_field): Change rli->size to rli->offset.
2808
2809 2000-05-22  Richard Henderson  <rth@cygnus.com>
2810
2811         * function.c (thread_prologue_and_epilogue_insns): Make sure
2812         existing line number notes appear after the prologue.
2813
2814 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2815
2816         * config/alpha/alpha.c (alpha_fnname): New static variable.
2817         (print_operand, case '~'): New case.
2818         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
2819         (alpha_start_function): Set alpha_fnname.
2820         Write "ng" label if no ldgp; don't write ldgp insn.
2821         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
2822         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
2823
2824 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
2825
2826         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
2827         on deleted labels.
2828
2829 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
2830
2831         * varasm.c (eh_frame_section): Revert change to argument list.
2832
2833 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2834
2835         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
2836         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
2837
2838         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
2839         dangling "else" that causes "break" to be conditional.
2840         Also remove unneeded code at start.
2841
2842 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
2843
2844         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
2845         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
2846         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
2847
2848 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
2849
2850         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
2851         just one argument.
2852
2853 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2854
2855         * alias.c (record_component_aliases): New function.
2856         * tree.h: Clean up some declarations and comments.
2857         (record_component_aliases): New declaration.
2858         * tree.c (get_alias_set): If type and has alias set, use it.
2859
2860 2000-05-22  Richard Henderson  <rth@cygnus.com>
2861
2862         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
2863         IF_THEN_ELSE to a setcc form.
2864         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
2865
2866 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2867
2868         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
2869         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
2870
2871 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2872
2873         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
2874         not a PARALLEL.
2875
2876 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
2877
2878         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
2879         * config/mn10300/mn10300.c (print_operand): Likewise.
2880
2881         * final.c (split_double): Right shift of negative values is not
2882         portable.
2883
2884         * ifcvt.c (if_convert): Scan and kill dead code.
2885
2886         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
2887
2888 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
2889
2890         * diagnostic.c: Eliminate implicit int.
2891         * except.c, gcc.c: Add static prototypes.
2892         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
2893         * gensupport.c (process_rtx): Use XVEC to initialize vector
2894         slot of 'split'.
2895
2896         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
2897         debug_reg_names instead of static reg_names.  If not, define
2898         global reg_names.
2899         * regclass.c: Don't define global reg_names unless
2900         DEBUG_REGISTER_NAMES is defined.
2901
2902         * reload1.c (order_regs_for_reload): Remove unused variable.
2903         * varasm.c: Include output.h after defaults.h.  Define
2904         eh_frame_section as function of no args, not of unspecified args.
2905
2906         * gcc.c: Constify argbuf; arguments to store_arg,
2907         process_command, main; elements of struct command and struct
2908         switchstr; local variables in execute, process_command, main.
2909
2910 2000-05-20  Bruce Korb  <bkorb@gnu.org>
2911
2912         * fixinc/inclhack.def:  many applications of c_fix=format + tests
2913         * fixinc/check.diff:  regenerated
2914         * fixinc/fixincl.x:  regenerated
2915
2916 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2917
2918         * alias.c: Clarify some comments.
2919         (record_base_value): REGNO is unsigned.
2920         * rtl.h (record_base_value): Likewise.
2921
2922         * alias.c (aliases_everything_p): Don't special-case QImode here.
2923         * c-common.c (c_get_alias_set): Do it here.
2924         Handle BIT_FIELD_REF by getting alias info for arg.
2925         Use POINTER_TYPE_P.
2926
2927 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
2928
2929         * mklibgcc.in: Restore rule to create ${dir}.
2930
2931 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
2932
2933         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
2934         GCC_FOR_TARGET used by MULTILIBS.
2935         * mklibgcc.in: Make sure each .o file depends on the
2936         directory it will be in.
2937         Make the multilib directory depends libgcc.
2938
2939 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
2940
2941         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
2942
2943 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
2944
2945         * fold-const.c (make_range): Handle degenerated intervals.
2946         Fixes c-torture/execute/991221-1.c
2947
2948 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2949
2950         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
2951         * reload.c (find_equiv_reg): Likewise.
2952         * alias.c (init_alias_analysis): Likewise.
2953         Only call prologue_epilogue_contains on insns.
2954         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
2955         * bb-reorder.c (hard-reg-set.h): Include earlier.
2956         * haifa-sched.c (hard-reg-set.h): Likewise.
2957         * ifcvt.c (hard-reg-set.h): Likewise.
2958         * local-alloc.c (hard-reg-set.h): Likewise.
2959         * loop.c (hard-reg-set.h): Likewise.
2960         * predict.c (hard-reg-set.h): Likewise.
2961         * regrename.c (hard-reg-set.h): Likewise.
2962         * flow.c (hard-reg-set.h): Likewise.
2963         (reg_set_to_hard_reg_set): New function.
2964         * bitmap.c (regs.h, basic-block.h): No longer include.
2965         (bitmap.h): Now include.
2966         * conflict.c (hard-reg-set.h): Include.
2967         * profile.c (hard-reg-set.h): Likewise.
2968         * print-rtl.c (hard-reg-set.h): Likewise.
2969         * sbitmap.c (hard-reg-set.h): Likewise.
2970         * toplev.c (hard-reg-set.h): Likewise.
2971         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
2972         * hard-reg-set.h (reg_names): Now constant.
2973         * regs.h (reg_names): Likewise.
2974         * regclass.c (reg_names): Likewise.
2975         * loop.h (basic-block.h): No longer include.
2976         (bitmap.h): Now include.
2977         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
2978         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
2979         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
2980
2981 2000-05-19  Jan Hubicka  <jh@suse.cz>
2982             Richard Henderson  <rth@cygnus.com>
2983
2984         * basic-block.h (struct edge_def): New field "count".
2985         (struct basic_block_def): Likewise.
2986         * flow.c (entry_exit_blocks): Add count fileds.
2987         (split_edge): Keep count information up-to-date.
2988         (dump_edge_info, dump_flow_info): Dump count fields.
2989
2990         * final.c (count_instrumented_edges): Rename to edge from arc.
2991         (end_final): Update users.
2992         * profile.c: Include expr.h, basic-block.h.
2993         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
2994         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
2995         (ignore_next_note, return_label_execution_count): Kill.
2996         (bbg_file_name, da_file_name): Kill.
2997         (edge_info, bb_info): New structures.
2998         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
2999         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
3000         (total_num_edges_instrumented): Likewise.
3001         (init_arc, expand_spanning_tree): Kill.
3002         (fill_spanning_tree, tablejump_entry_p): Kill.
3003         (instrument_edges):  Rewrite from instrument_arcs to use
3004         commit_edge_insertions infrastructure.
3005         (compute_branch_probabilities): Remove arguments; rewrite for
3006         CFG infrastructure; use rtl_dump_file directly.
3007         (branch_prob, find_spanning_tree): Likewise.
3008         (union_groups, find_group): New.
3009         (init_branch_prob): Make bbg_file_name and da_file_name local.
3010         (end_branch_prob): Use rtl_dump_file directly.
3011         (init_edge_profiler): Rename to edge from arc.
3012         (output_arc_profiler): Kill.
3013         (gen_edge_profiler): New.
3014         (output_func_start_profiler): Turn off profiling.  Make the
3015         constructor static when we can.
3016         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
3017
3018         * toplev.c (DFI_flow): Remove.
3019         (DFI_cfg, DFI_life): New.
3020         (dump_file): Update accordingly.
3021         (compile_file): Call end_branch_prob if profile_arc_flag too.
3022         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
3023         profiling after the CFG is built.  Move flow1 life analysis to
3024         DFI_life.  Always estimate remaining probabilities.
3025
3026 2000-05-19  Richard Henderson  <rth@cygnus.com>
3027
3028         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
3029
3030         * flow.c (make_edges): The sibling call edge to exit is abnormal.
3031
3032 2000-05-19  Richard Henderson  <rth@cygnus.com>
3033
3034         * jump.c (redirect_jump): Add delete_unused argument.  Don't
3035         remove labels and code following when LABEL_NUSES goes to zero.
3036         (invert_jump): Likewise.
3037         (jump_optimize_1): Fix redirect/invert arguments.
3038         (do_cross_jump, thread_jumps): Likewise.
3039         * flow.c (split_edge): Likewise.
3040         * reorg.c (optimize_skip): Likewise.
3041         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
3042         * profile.c (instrument_arcs): Likewise.
3043         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
3044         * rtl.h: Update prototypes.
3045
3046 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
3047
3048         * ssa.c (convert_from_ssa): Tell life_analysis we need death
3049         notes.
3050         (make_regs_equivalent_over_bad_edges): Only look at abnormal
3051         critical edges.
3052
3053 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
3054
3055         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
3056         past l1 when deleting whitespace and markers.
3057
3058         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
3059         * cpplib.c (do_unassert): Put the list to compare against on
3060         the stack.
3061
3062 2000-05-19  Bruce Korb  <bkorb@gnu.org>
3063
3064         * fixinc/README:  cleaned up old documentation
3065         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
3066         * fixinc/check.tpl: compute the list of needed directories
3067         emit "#if defined(name)" because of conflict
3068         omit machine name differences from output differences
3069         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
3070         (machine_name): change test text to use `sed' markers
3071         * fixinc/fixincl.x: regen
3072
3073 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3074
3075         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
3076         a CONSTRUCTOR.
3077
3078 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
3079
3080         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
3081         it to match the current practice.
3082
3083 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
3084
3085         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
3086
3087 2000-05-18  Richard Henderson  <rth@cygnus.com>
3088
3089         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
3090         * rtl.h (insn_dependant_p): Declare it.
3091         * loop.c (strength_reduce): Use it.
3092
3093 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
3094
3095         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
3096         16-bit and 64-bit clean-up.
3097
3098 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
3099
3100         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
3101         * configure: Rebuilt.
3102
3103 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
3104
3105         * genopinit.c: Use $ for escape sequences in optab patterns.
3106         Remove backslashes from optab patterns.  Change $A, $B, $C to
3107         expand to (int) whatever instead of just whatever; remove
3108         explicit (int) from all optab patterns.
3109
3110         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
3111         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
3112         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
3113         genrecog.c: Remove private copies of xmalloc, xrealloc, and
3114         xstrdup.
3115
3116 2000-05-18  Richard Henderson  <rth@cygnus.com>
3117
3118         * jump.c (jump_optimize_1): Base minimum insn count during
3119         find_cross_jump on BRANCH_COST.
3120
3121 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
3122
3123         * print-rtl.c (print_rtx): Only print note line number as string
3124         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
3125         * final.c (final_scan_insn): Do nothing for note line number 0.
3126
3127 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
3128
3129         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
3130         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
3131         NOTE_INSN_DELETED_LABEL.
3132
3133 2000-05-18  Nick Clifton  <nickc@cygnus.com>
3134
3135         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
3136         uninitialised data in .rodata not .bss, and do not interpret an
3137         error in the initialisation value as meaning that the variable
3138         should be placed in the .bss section.
3139
3140 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
3141
3142         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
3143         not `$ac_cv_prog_cc_cc_c_o'.
3144         * configure: Regenerated.
3145
3146 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
3147             Richard Henderson  <rth@cygnus.com>
3148
3149         * c-common.h (enum c_tree_index): Add g77 type entries.
3150         (g77_integer_type_node, g77_uinteger_type_node): New.
3151         (g77_longint_type_node, g77_ulongint_type_node): New.
3152         * c-decl.c (init_decl_processing): Initialize them.
3153
3154 2000-05-18  Richard Henderson  <rth@cygnus.com>
3155
3156         * config/h8300/h8300.md (subs patterns): Use %G to negate.
3157
3158         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
3159         (small_power_of_two): Likewise; use exact_log2.
3160         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
3161         (output_adds_subs): Remove.
3162         (two_insn_adds_subs_operand): New.
3163         (split_adds_subs): New.
3164         * config/h8300/h8300-protos.h: Update.
3165         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
3166         (CONST_OK_FOR_L): Match strict adds operands.
3167         (CONST_OK_FOR_N): Match struct subs operands.
3168         * config/h8300/h8300.md (adds_subs insns): Remove.
3169         (addhi patterns): Output adds/subs directly.
3170         (addsi_h8300h): Likewise.
3171         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
3172
3173 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
3174
3175         * cppexp.c (parse_assertion): New.
3176         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
3177         (_cpp_parse_expr): Remove case '#'.  Don't set
3178         parsing_if_directive.
3179         * cpphash.c (collect_objlike_expansion,
3180         collect_funlike_expansion, collect_params,
3181         _cpp_create_definition): The list no longer has a trailing
3182         VSPACE token.
3183         * cpphash.h (enum node_type): Add T_ASSERTION.
3184         (struct hashnode): Remove aschain, add pred.
3185         (struct predicate): New.
3186         Update prototypes.
3187
3188         * cpplex.c (expand_token_space): Handle both offset and
3189         nonoffset lists.
3190         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
3191         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
3192         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
3193         _cpp_equiv_toklists): New.
3194         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
3195         stop at any single-character token, not just newline.
3196         (_cpp_lex_token): Remove special cases for #define and #if.
3197         (cpp_get_token): Expect # as a separate token type.  Remove
3198         DIRECTIVE case.
3199         (_cpp_get_directive_token): Remove DIRECTIVE case.
3200         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
3201
3202         * cpplib.c (_cpp_check_directive): Set dirno and
3203         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
3204         (_cpp_handle_directive): Run # <number> through the same logic
3205         as normal directives.
3206         (do_define): Don't set parsing_define_directive.  Use
3207         _cpp_scan_until.  The list does not have a VSPACE at the end.
3208         (do_if): Save, clear, and restore only_seen_white around
3209         _cpp_parse_expr.
3210         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
3211         (do_assert, do_unassert): Rewrite.
3212
3213         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
3214         (LIST_OFFSET): New flag.
3215         (struct cpp_toklist): Replace dir_handler and dir_flags with
3216         dirno and flags.
3217         (struct cpp_reader): Remove parsing_if_directive and
3218         parsing_define_directive.
3219
3220 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3221
3222         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
3223         following the cabs decl which terminate on the following line.
3224         Add the corresponding test_text case.
3225
3226 2000-05-18  Neil Booth  <NeilB@earthling.net>
3227
3228         * cppinit.c (cpp_reader_init): Initialise col_adjust and
3229         default tab stop size.
3230         (no_num, OPT_ftabstop): New.
3231         (handle_option): Handle "ftabstop=" command-line option.
3232         (print_help): Document it.
3233         * cpplex.c (COLUMN): Remove.
3234         (handle_newline): Reset col_adjust.
3235         (skip_whitespace): Update col_adjust as tabs encountered.
3236         (_cpp_lex_line): Update to use col_adjust.  Call
3237         skip_whitespace for all whitespace.
3238         * cpplib.h (struct cpp_options): New member tabstop.
3239         (struct cpp_reader): New member col_adjust.
3240         (CPP_BUF_COL): Update.
3241         (CPP_BUF_COLUMN): New.
3242         * cpp.texi: Document "-ftabstop=" command line option.
3243
3244 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
3245
3246         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
3247         files.
3248         * configure: Rebuilt.
3249
3250 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
3251
3252         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
3253
3254         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
3255         HOST_BITS_PER_WIDE_INT is >= 64.
3256
3257 2000-05-17  Richard Henderson  <rth@cygnus.com>
3258
3259         * jump.c (jump_optimize_1): Remove inactive but real insns
3260         in jump-to-next-insn optimization.
3261
3262 2000-05-17  Richard Henderson  <rth@cygnus.com>
3263
3264         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
3265         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
3266         Don't call recompute_reg_usage if no_new_pseudos is true.
3267         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
3268         Return true if we did work; update global life information.
3269         * basic-block.h (optimize_mode_switching): Update decl.
3270
3271 2000-05-17  Neil Booth  <neilb@earthling.net>
3272
3273         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
3274
3275 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
3276
3277         * cpplib.c: New feature, #pragma system_header.
3278         * cpp.texi: Document special treatment of system headers, and
3279         the various mechanisms to get a header that special treatment.
3280
3281 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3282
3283         * system.h (offsetof): Define at the very end, to ensure we prefer
3284         the platform's definition if available.
3285
3286 2000-05-16  Bruce Korb  <bkorb@gnu.org>
3287
3288         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
3289         * fixinc/server.c: likewise
3290         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
3291         + #ifdef debugging code + use #def constant for
3292         sub-pattern count
3293         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
3294         on C++ math namespace
3295
3296 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3297
3298         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
3299         Don't check the return value of sprintf.  Use asprintf to avoid
3300         buffer overflows.
3301
3302 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
3303
3304         * flags.h (warn_unused_function, warn_unused_label,
3305         warn_unused_parameter, warn_unused_variable, warn_unused_value):
3306         Replace ``warn_unused''.
3307         (set_Wunused): Add declaration.
3308         * toplev.c (set_Wunused): New function.
3309         (warn_unused_function, warn_unused_label, warn_unused_parameter,
3310         warn_unused_variable, warn_unused_value): New variables.
3311         (W_options): Add -Wunused-function, -Wunused-function,
3312         -Wunused-label, -Wunused-parameter, -Wunused-variable and
3313         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
3314
3315         * toplev.c (decode_W_option): Update -Wunused flags by calling
3316         set_Wunused.
3317         * c-decl.c (c_decode_option): Ditto for -Wall.
3318
3319         * stmt.c (expand_expr_stmt, expand_expr_stmt,
3320         warn_about_unused_variables): Replace warn_unused with more
3321         explicit warn_unused_value et.al.
3322         * function.c (expand_function_end): Ditto.
3323         * c-typeck.c (internal_build_compound_expr,
3324         internal_build_compound_expr): Ditto.
3325         * c-decl.c (poplevel, pop_label_level): Ditto.
3326         * toplev.c (check_global_declarations): Replace warn_unused with
3327         check for either warn_unused_function or warn_unused_variable.
3328
3329         * gcc.1, invoke.texi (Warning Options): Document
3330         -Wunused-function, -Wunused-function, -Wunused-label,
3331         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
3332
3333 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
3334
3335         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
3336         $(srcdir), not in the current directory.
3337
3338 2000-05-16  Richard Henderson  <rth@cygnus.com>
3339
3340         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
3341         assembler supports it.
3342         (.fini, .init): Use a gp-relative indirect call.
3343         (__do_global_dtors_aux): Preserve the gp; rebundle.
3344         (__do_frame_setup): Likewise.
3345         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
3346         (.init): Use a gp-relative indirect call.
3347         (__do_global_ctors_aux): Preserve the gp.
3348
3349 2000-05-16  Richard Henderson  <rth@cygnus.com>
3350
3351         * flow.c (commit_one_edge_insertion): Be prepared for a return
3352         insn to be inserted on the edge with a normal jump.
3353         * jump.c (jump_optimize_1): Don't look to create return isns.
3354
3355         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
3356         * jump.c (jump_optimize_1): Likewise.
3357         (returnjump_p): Verify the argument is a JUMP_INSN.
3358         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
3359
3360 2000-05-16  Nick Clifton  <nickc@cygnus.com>
3361
3362         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
3363         GET_RTX_CLASS (GET_CODE ()) == 'i'.
3364         (large_insn_p): Ditto.
3365         (m32r_is_insn): New function: Return true if the insn contains
3366         an executable instruction.
3367         (m32r_adjust_insn): Use m32r_is_insn.
3368         (m32r_sched_reorder): Use m32r_is_insn.
3369         (m32r_sched_variable_issue): Use m32r_is_insn.
3370
3371 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3372
3373         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
3374         VAR_DECL.
3375
3376         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
3377
3378         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
3379         according to given options.
3380
3381 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
3382
3383         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
3384         if X has VOIDmode either.
3385         (LIMIT_RELOAD_CLASS): Similarly.
3386
3387         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
3388         not "general_operand" to match the processor's capabilities.
3389
3390 2000-05-16  Bruce Korb  <bkorb@gnu.org>
3391
3392         * fixinc/README:  corrected return address
3393         * fixinc/check.diff:  regenerate, now that test works
3394         * fixinc/fixfixes.c(format_fix,format_write): reformatted
3395         (char_macro_def_fix,char_macro_use_fix): corrected and
3396         rewrote to use regex to parse the text
3397         * fixinc/inclhack.def: more testing
3398         * fixinc/fixincl.x:  regenerated
3399
3400         * fixinc/inclhack.def: added several "test_text" attributes
3401         changed several fixes to use `c_fix = format'
3402         re-alphabetized the fixes
3403
3404         * fixinc/check.diff: regenerate
3405         * fixinc/fixincl.x: regenerate
3406         * fixinc/check.tpl: added `sparc' and `netinet' to the list
3407         of created dirs
3408
3409
3410 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
3411
3412         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
3413
3414 2000-05-15  Richard Henderson  <rth@cygnus.com>
3415
3416         * toplev.c (rest_of_compilation): Run full jump pass before
3417         find_basic_blocks of flow2.
3418
3419 2000-05-15  Richard Henderson  <rth@cygnus.com>
3420
3421         * jump.c: Fix typos and clarify commentary from last change.
3422         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
3423         (safe_to_remove_jump_p): Remove.
3424         (condjump_label): Use pc_set.
3425